AP9-1799: Desktop mode is not set as default for Chromium

This ensures that the default mode is the desktop mode, Desktop site is checked and the web page will be loaded in desktop mode.
This commit is contained in:
Yifeng Wu 2021-11-19 15:49:25 +08:00
parent c76fe1c1fc
commit 9471e2aa49
2 changed files with 139 additions and 0 deletions

View file

@ -168,3 +168,4 @@ Turn-AdBlock-off-by-default.patch
Force-tablet-mode.patch
Set-default-page-url.patch
change-Android-userAgent-to-deskmode-userAgent.patch
Force-desktop-mode.patch

View file

@ -0,0 +1,138 @@
From: Yifeng <wuyifeng@nd.com.cn>
Date: Fri, 5 Nov 2021 07:23:00 +0000
Subject: Force desktop mode.
This ensures that the default mode is the desktop mode, Desktop site is checked and the web page will be loaded in desktop mode.
---
chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java | 4 ++--
chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java | 4 ++--
chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java | 2 +-
content/browser/renderer_host/navigation_controller_android.cc | 5 ++++-
content/public/browser/navigation_controller.h | 2 +-
content/browser/renderer_host/navigation_entry_impl.cc | 2 +-
weblayer/browser/tab_impl.cc | 2 +-
7 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java
@@ -67,16 +67,16 @@
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
getActivity().setTitle(R.string.useragent_settings_title);
SettingsUtils.addPreferencesFromResource(this, R.xml.useragent_preferences);
ChromeSwitchPreference alwaysDesktopModeSwitch =
(ChromeSwitchPreference) findPreference(PREF_STICK_DESKTOP_MODE_SWITCH);
boolean enabled = SharedPreferencesManager.getInstance().readBoolean(
- ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false);
+ ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, true);
alwaysDesktopModeSwitch.setChecked(enabled);
alwaysDesktopModeSwitch.setOnPreferenceChangeListener((preference, newValue) -> {
SharedPreferencesManager.getInstance().writeBoolean(
ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, (boolean) newValue);
UpdateAllTabs();
return true;
});
}
@@ -160,4 +160,4 @@
private void UpdateAllTabs() {
final boolean alwaysDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean(
- ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, false);
+ ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, true);
TabWindowManagerSingleton.getInstance().SetOverrideUserAgentForAllTabs(alwaysDesktopModeEnabled);
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
@@ -514,11 +514,11 @@
params.setOverrideUserAgent(calculateUserAgentOverrideOption());
final boolean stickyDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean(
- ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false);
+ ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, true);
if (stickyDesktopModeEnabled) {
boolean alwaysDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean(
- ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, false);
+ ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, true);
if (UrlUtilities.isInternalScheme(UrlFormatter.fixupUrl(params.getUrl()))) {
alwaysDesktopModeEnabled = false;
}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java
@@ -89,12 +89,12 @@
public static void switchUserAgent(Tab tab, boolean switchToDesktop, boolean forcedByUser) {
SharedPreferencesManager.getInstance().writeBoolean(
ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, switchToDesktop);
final boolean stickyDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean(
- ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false);
+ ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, true);
if (stickyDesktopModeEnabled) {
TabWindowManagerSingleton.getInstance().SetOverrideUserAgentForAllTabs(switchToDesktop);
} else {
tab.SetOverrideUserAgent(switchToDesktop, forcedByUser);
}
}
diff a/content/browser/renderer_host/navigation_controller_android.cc b/content/browser/renderer_host/navigation_controller_android.cc
--- a/content/browser/renderer_host/navigation_controller_android.cc
+++ b/content/browser/renderer_host/navigation_controller_android.cc
@@ -393,6 +393,9 @@
bool NavigationControllerAndroid::GetUseDesktopUserAgent(
JNIEnv* env,
const JavaParamRef<jobject>& obj) {
NavigationEntry* entry = navigation_controller_->GetLastCommittedEntry();
- return entry && entry->GetIsOverridingUserAgent();
+ if (!entry) {
+ return true;
+ }
+ return entry->GetIsOverridingUserAgent();
}
diff a/content/public/browser/navigation_controller.h b/content/public/browser/navigation_controller.h
--- a/content/public/browser/navigation_controller.h
+++ b/content/public/browser/navigation_controller.h
@@ -206,6 +206,6 @@
// User agent override for this load. See comments in
// UserAgentOverrideOption definition.
- UserAgentOverrideOption override_user_agent = UA_OVERRIDE_INHERIT;
+ UserAgentOverrideOption override_user_agent = UA_OVERRIDE_TRUE;
// Used in LOAD_TYPE_DATA loads only. Used for specifying a base URL
// for pages loaded via data URLs.
diff a/content/browser/renderer_host/navigation_entry_impl.cc b/content/browser/renderer_host/navigation_entry_impl.cc
--- a/content/browser/renderer_host/navigation_entry_impl.cc
+++ b/content/browser/renderer_host/navigation_entry_impl.cc
@@ -396,10 +396,10 @@
update_virtual_url_with_url_(false),
title_(title),
transition_type_(transition_type),
restore_type_(RestoreType::kNotRestored),
- is_overriding_user_agent_(false),
+ is_overriding_user_agent_(true),
http_status_code_(0),
is_renderer_initiated_(is_renderer_initiated),
should_clear_history_list_(false),
can_load_local_resources_(false),
frame_tree_node_id_(FrameTreeNode::kFrameTreeNodeInvalidId),
diff a/weblayer/browser/tab_impl.cc b/weblayer/browser/tab_impl.cc
--- a/weblayer/browser/tab_impl.cc
+++ b/weblayer/browser/tab_impl.cc
@@ -884,14 +884,14 @@
jboolean TabImpl::IsDesktopUserAgentEnabled(JNIEnv* env) {
auto* entry = web_contents_->GetController().GetLastCommittedEntry();
if (!entry)
- return false;
+ return true;
// The same user agent override mechanism is used for per-navigation user
// agent and desktop mode. Make sure not to return desktop mode for
// navigation entries which used a per-navigation user agent.
auto* entry_data = NavigationEntryData::Get(entry);
if (entry_data && entry_data->per_navigation_user_agent_override())
return false;
return entry->GetIsOverridingUserAgent();
}
--