diff --git a/build/patches/Add-a-flag-to-always-view-desktop-site-for-all-websites.patch b/build/patches/Add-a-flag-to-always-view-desktop-site-for-all-websites.patch index 3cf6b9a9..9de951a9 100644 --- a/build/patches/Add-a-flag-to-always-view-desktop-site-for-all-websites.patch +++ b/build/patches/Add-a-flag-to-always-view-desktop-site-for-all-websites.patch @@ -6,20 +6,20 @@ Subject: Add flag to always view the desktop site for all websites chrome/android/chrome_java_resources.gni | 1 + chrome/android/chrome_java_sources.gni | 1 + .../android/java/res/xml/main_preferences.xml | 5 ++ - .../java/res/xml/useragent_preferences.xml | 35 +++++++++ - .../chrome/browser/app/ChromeActivity.java | 17 ++++- - .../settings/UserAgentPreferences.java | 76 +++++++++++++++++++ - .../chromium/chrome/browser/tab/TabImpl.java | 72 +++++++++++++++++- + .../java/res/xml/useragent_preferences.xml | 35 ++++++++ + .../chrome/browser/app/ChromeActivity.java | 17 +++- + .../settings/UserAgentPreferences.java | 76 +++++++++++++++++ + .../chromium/chrome/browser/tab/TabImpl.java | 83 ++++++++++++++++++- .../browser/tabmodel/TabWindowManager.java | 20 +++++ chrome/browser/android/tab_android.cc | 5 +- chrome/browser/android/tab_android.h | 3 +- - .../preferences/ChromePreferenceKeys.java | 9 ++- + .../preferences/ChromePreferenceKeys.java | 9 +- .../org/chromium/chrome/browser/tab/Tab.java | 2 + - .../strings/android_chrome_strings.grd | 17 +++++ + .../strings/android_chrome_strings.grd | 17 ++++ .../navigation_controller_android.cc | 6 +- .../navigation_controller_android.h | 3 +- .../framehost/NavigationControllerImpl.java | 6 +- - 16 files changed, 266 insertions(+), 12 deletions(-) + 16 files changed, 277 insertions(+), 12 deletions(-) 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 @@ -231,21 +231,32 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav /** * Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. -@@ -446,6 +452,23 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { +@@ -446,6 +452,34 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { throw new RuntimeException("Tab.loadUrl called when no native side exists"); } + final boolean stickyDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean( + ChromePreferenceKeys.USERAGENT_STICKY_DESKTOP_MODE, false); + if (stickyDesktopModeEnabled) { -+ final boolean alwaysDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean( ++ boolean alwaysDesktopModeEnabled = SharedPreferencesManager.getInstance().readBoolean( + ChromePreferenceKeys.USERAGENT_ALWAYS_DESKTOP_MODE, false); -+ boolean isInternalScheme = false; + final boolean alwaysADMExcludeInternalScheme = SharedPreferencesManager.getInstance().readBoolean( + ChromePreferenceKeys.USERAGENT_ADM_EXCLUDE_INTERNAL_SCHEME, false); -+ if(alwaysADMExcludeInternalScheme) -+ isInternalScheme = UrlUtilities.isInternalScheme(UrlFormatter.fixupUrl(params.getUrl())); -+ if (alwaysDesktopModeEnabled && isInternalScheme == false) { ++ ++ if (alwaysADMExcludeInternalScheme && ++ UrlUtilities.isInternalScheme(UrlFormatter.fixupUrl(params.getUrl()))) { ++ alwaysDesktopModeEnabled = false; ++ } ++ ++ WebContents webContents = this.getWebContents(); ++ if (webContents != null) { ++ NavigationController navigationController = webContents.getNavigationController(); ++ boolean currentUseDesktopUserAgent = navigationController.getUseDesktopUserAgent(); ++ if (currentUseDesktopUserAgent != alwaysDesktopModeEnabled) ++ navigationController.setUseDesktopUserAgent(alwaysDesktopModeEnabled, false); ++ } ++ ++ if (alwaysDesktopModeEnabled) { + params.setOverrideUserAgent((int)UserAgentOverrideOption.TRUE); + } else { + params.setOverrideUserAgent((int)UserAgentOverrideOption.FALSE); @@ -255,7 +266,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav // We load the URL from the tab rather than directly from the ContentView so the tab has // a chance of using a prerenderer page is any. int loadType = TabImplJni.get().loadUrl(mNativeTabAndroid, TabImpl.this, -@@ -458,7 +481,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { +@@ -458,7 +492,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { params.getReferrer() != null ? params.getReferrer().getPolicy() : 0, params.getIsRendererInitiated(), params.getShouldReplaceCurrentEntry(), params.getHasUserGesture(), params.getShouldClearHistoryList(), @@ -265,7 +276,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav for (TabObserver observer : mObservers) { observer.onLoadUrl(this, params, loadType); -@@ -1380,6 +1404,10 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { +@@ -1380,6 +1415,10 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { if (mWebContents != null) mWebContents.getNavigationController().loadIfNecessary(); mIsBeingRestored = true; for (TabObserver observer : mObservers) observer.onRestoreStarted(this); @@ -276,7 +287,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav } finally { TraceEvent.end("Tab.restoreIfNeeded"); } -@@ -1497,6 +1525,45 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { +@@ -1497,6 +1536,45 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { } } @@ -322,7 +333,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav @NativeMethods interface Natives { void init(TabImpl caller); -@@ -1517,7 +1584,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { +@@ -1517,7 +1595,8 @@ public class TabImpl implements Tab, TabObscuringHandler.Observer { String referrerUrl, int referrerPolicy, boolean isRendererInitiated, boolean shoulReplaceCurrentEntry, boolean hasUserGesture, boolean shouldClearHistoryList, long inputStartTimestamp, @@ -517,6 +528,3 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh void clearHistory(long nativeNavigationControllerAndroid, NavigationControllerImpl caller); int getNavigationHistory(long nativeNavigationControllerAndroid, NavigationControllerImpl caller, Object history); --- -2.17.1 -