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:
parent
c76fe1c1fc
commit
9471e2aa49
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