Pull request #15: AP9-1799: Desktop mode is not set as default for Chromium

Merge in AP/chromiumpatches from AP9-1799 to master

* commit '9471e2aa4995b908a8b58e572ac64c2ac165583c':
  AP9-1799: Desktop mode is not set as default for Chromium
This commit is contained in:
Yifeng Wu 2021-11-22 08:55:26 +00:00
commit 53f5138269
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();
}
--