From bbd0f8c531952474f6c1c55709a2d30477e1ef63 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 6 Nov 2020 17:10:22 +0100 Subject: [PATCH 1/3] add a option to exclude internal schemes --- ...s-view-desktop-site-for-all-websites.patch | 118 ++++++++++++------ 1 file changed, 83 insertions(+), 35 deletions(-) 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 56c2f1d7..3cf6b9a9 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 | 30 ++++++++++ - .../chrome/browser/app/ChromeActivity.java | 17 +++++- - .../settings/UserAgentPreferences.java | 59 +++++++++++++++++++ - .../chromium/chrome/browser/tab/TabImpl.java | 51 +++++++++++++++- - .../browser/tabmodel/TabWindowManager.java | 20 +++++++ + .../java/res/xml/useragent_preferences.xml | 35 +++++++++ + .../chrome/browser/app/ChromeActivity.java | 17 ++++- + .../settings/UserAgentPreferences.java | 76 +++++++++++++++++++ + .../chromium/chrome/browser/tab/TabImpl.java | 72 +++++++++++++++++- + .../browser/tabmodel/TabWindowManager.java | 20 +++++ chrome/browser/android/tab_android.cc | 5 +- chrome/browser/android/tab_android.h | 3 +- - .../preferences/ChromePreferenceKeys.java | 7 ++- + .../preferences/ChromePreferenceKeys.java | 9 ++- .../org/chromium/chrome/browser/tab/Tab.java | 2 + - .../strings/android_chrome_strings.grd | 14 +++++ + .../strings/android_chrome_strings.grd | 17 +++++ .../navigation_controller_android.cc | 6 +- .../navigation_controller_android.h | 3 +- .../framehost/NavigationControllerImpl.java | 6 +- - 16 files changed, 218 insertions(+), 12 deletions(-) + 16 files changed, 266 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 @@ -62,7 +62,7 @@ diff --git a/chrome/android/java/res/xml/useragent_preferences.xml b/chrome/andr new file mode 100644 --- /dev/null +++ b/chrome/android/java/res/xml/useragent_preferences.xml -@@ -0,0 +1,30 @@ +@@ -0,0 +1,35 @@ + + From 66cded0cd76557963cd8664d2b010a7369f16384 Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Fri, 6 Nov 2020 21:44:09 +0100 Subject: [PATCH 2/3] fix transition from and to webui with new flag enabled --- ...s-view-desktop-site-for-all-websites.patch | 48 +++++++++++-------- 1 file changed, 28 insertions(+), 20 deletions(-) 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 - From b886ead2953b95b8a26eeb76f6c9622fe566800a Mon Sep 17 00:00:00 2001 From: Carmelo Messina Date: Sat, 7 Nov 2020 15:13:34 +0100 Subject: [PATCH 3/3] removed useless flag --- ...s-view-desktop-site-for-all-websites.patch | 84 ++++++------------- 1 file changed, 25 insertions(+), 59 deletions(-) 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 9de951a9..47950a04 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 | 83 ++++++++++++++++++- + .../java/res/xml/useragent_preferences.xml | 30 ++++++++ + .../chrome/browser/app/ChromeActivity.java | 17 ++++- + .../settings/UserAgentPreferences.java | 60 +++++++++++++++ + .../chromium/chrome/browser/tab/TabImpl.java | 75 ++++++++++++++++++- .../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 | 7 +- .../org/chromium/chrome/browser/tab/Tab.java | 2 + - .../strings/android_chrome_strings.grd | 17 ++++ + .../strings/android_chrome_strings.grd | 14 ++++ .../navigation_controller_android.cc | 6 +- .../navigation_controller_android.h | 3 +- .../framehost/NavigationControllerImpl.java | 6 +- - 16 files changed, 277 insertions(+), 12 deletions(-) + 16 files changed, 243 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 @@ -62,7 +62,7 @@ diff --git a/chrome/android/java/res/xml/useragent_preferences.xml b/chrome/andr new file mode 100644 --- /dev/null +++ b/chrome/android/java/res/xml/useragent_preferences.xml -@@ -0,0 +1,35 @@ +@@ -0,0 +1,30 @@ + +