summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/browser/BrowserSettings.java3
-rw-r--r--src/com/android/browser/Tab.java13
2 files changed, 16 insertions, 0 deletions
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index dd4631484..46d47b0d5 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -399,6 +399,9 @@ public class BrowserSettings implements OnSharedPreferenceChangeListener,
}
public void toggleDesktopUseragent(WebView view) {
+ if (view == null) {
+ return;
+ }
WebSettings settings = view.getSettings();
if (mCustomUserAgents.get(settings) != null) {
mCustomUserAgents.remove(settings);
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index e1dd1ca0b..896247594 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -191,6 +191,7 @@ class Tab {
static final String APPID = "appid";
static final String INCOGNITO = "privateBrowsingEnabled";
static final String SCREENSHOT = "screenshot";
+ static final String USERAGENT = "useragent";
// -------------------------------------------------------------------------
@@ -1449,6 +1450,12 @@ class Tab {
mSavedState.putLong(PARENTTAB, parent.getId());
}
}
+
+ // Sync the WebView useragent with the parent
+ if (parent != null && mSettings.hasDesktopUseragent(parent.getWebView())
+ != mSettings.hasDesktopUseragent(getWebView())) {
+ mSettings.toggleDesktopUseragent(getWebView());
+ }
}
/**
@@ -1739,6 +1746,8 @@ class Tab {
if (mScreenshot != null) {
mSavedState.putParcelable(SCREENSHOT, mScreenshot);
}
+ mSavedState.putBoolean(USERAGENT,
+ mSettings.hasDesktopUseragent(getWebView()));
return true;
}
@@ -1755,6 +1764,10 @@ class Tab {
mId = b.getLong(ID);
mAppId = b.getString(APPID);
mScreenshot = b.getParcelable(SCREENSHOT);
+ if (b.getBoolean(USERAGENT)
+ != mSettings.hasDesktopUseragent(getWebView())) {
+ mSettings.toggleDesktopUseragent(getWebView());
+ }
final WebBackForwardList list = mMainView.restoreState(b);
if (list == null) {