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:
commit
53f5138269
2 changed files with 139 additions and 0 deletions
|
@ -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
|
||||
|
|
138
build/patches/Force-desktop-mode.patch
Normal file
138
build/patches/Force-desktop-mode.patch
Normal 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();
|
||||
}
|
||||
--
|
Loading…
Add table
Reference in a new issue