fix transition from and to webui with new flag enabled

This commit is contained in:
Carmelo Messina 2020-11-06 21:44:09 +01:00
parent bbd0f8c531
commit 66cded0cd7

View file

@ -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