diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index 1170e4c6..0231ae21 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../init/ChromeBrowserInitializer.java | 3 + .../PrivacyPreferencesManagerImpl.java | 42 ++++ .../settings/UserAgentPreferences.java | 188 ++++++++++++++++++ - .../chromium/chrome/browser/tab/TabImpl.java | 70 +++++++ + .../chromium/chrome/browser/tab/TabImpl.java | 79 +++++++- .../chromium/chrome/browser/tab/TabUtils.java | 25 +-- .../browser/android/content/content_utils.cc | 28 +++ .../preferences/browser_prefs_android.cc | 7 + @@ -41,7 +41,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/web_contents/web_contents_impl.cc | 4 + .../framehost/NavigationControllerImpl.java | 3 +- content/renderer/render_thread_impl.cc | 1 - - 31 files changed, 746 insertions(+), 14 deletions(-) + 31 files changed, 753 insertions(+), 16 deletions(-) create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java @@ -574,7 +574,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav @TabLoadStatus int result = loadUrlInternal(params); -@@ -1549,6 +1578,10 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { +@@ -1390,8 +1419,11 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { + + mWebContents.setImportance(mImportance); + +- ContentUtils.setUserAgentOverride(mWebContents, +- calculateUserAgentOverrideOption() == UserAgentOverrideOption.TRUE); ++ if (!SharedPreferencesManager.getInstance().readBoolean( ++ ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false)) { ++ ContentUtils.setUserAgentOverride(mWebContents, ++ calculateUserAgentOverrideOption() == UserAgentOverrideOption.TRUE); ++ } + + mContentView.addOnAttachStateChangeListener(mAttachStateChangeListener); + updateInteractableState(); +@@ -1549,6 +1581,10 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { if (mWebContents != null) mWebContents.getNavigationController().loadIfNecessary(); mIsBeingRestored = true; for (TabObserver observer : mObservers) observer.onRestoreStarted(this); @@ -585,7 +599,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav } finally { TraceEvent.end("Tab.restoreIfNeeded"); } -@@ -1751,6 +1784,43 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { +@@ -1741,6 +1777,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { + } + + private void switchUserAgentIfNeeded() { ++ if (SharedPreferencesManager.getInstance().readBoolean( ++ ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false)) return; + if (calculateUserAgentOverrideOption() == UserAgentOverrideOption.INHERIT + || getWebContents() == null) { + return; +@@ -1751,6 +1789,43 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { /* forcedByUser */ false); }