From d62847997be926991424e4fba30ff3f5ef71258b Mon Sep 17 00:00:00 2001 From: Elliott Slaughter Date: Wed, 18 Aug 2010 18:17:52 -0700 Subject: [PATCH] Fix WebView saveState and restoreState for private browsing mode. Change-Id: Ia254ee853d73e56c6f0a5b7762a1cefc1dad0894 --- core/java/android/webkit/WebView.java | 18 ++++++------------ .../webkit}/incognito_mode_start_page.html | 0 2 files changed, 6 insertions(+), 12 deletions(-) rename core/res/{res/raw => assets/webkit}/incognito_mode_start_page.html (100%) diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index d01dd345578b7..4823407d2fbd8 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -1278,6 +1278,7 @@ public class WebView extends AbsoluteLayout outState.putBundle("certificate", SslCertificate.saveState(mCertificate)); } + outState.putBoolean("privateBrowsingEnabled", isPrivateBrowsingEnabled()); return list; } @@ -1440,6 +1441,10 @@ public class WebView extends AbsoluteLayout // Update the copy to have the correct index. returnList.setCurrentIndex(index); } + // Restore private browsing setting. + if (inState.getBoolean("privateBrowsingEnabled")) { + getSettings().setPrivateBrowsingEnabled(true); + } // Remove all pending messages because we are restoring previous // state. mWebViewCore.removeMessages(); @@ -1702,18 +1707,7 @@ public class WebView extends AbsoluteLayout getSettings().setPrivateBrowsingEnabled(true); if (!wasPrivateBrowsingEnabled) { - StringBuilder data = new StringBuilder(1024); - try { - InputStreamReader file = new InputStreamReader(mContext.getResources().openRawResource(com.android.internal.R.raw.incognito_mode_start_page)); - int size; - char[] buffer = new char[1024]; - while ((size = file.read(buffer)) != -1) { - data.append(buffer, 0, size); - } - } catch (IOException e) { - // This should never happen since this is a static resource. - } - loadDataWithBaseURL(null, data.toString(), "text/html", "utf-8", null); + loadUrl("browser:incognito"); } } diff --git a/core/res/res/raw/incognito_mode_start_page.html b/core/res/assets/webkit/incognito_mode_start_page.html similarity index 100% rename from core/res/res/raw/incognito_mode_start_page.html rename to core/res/assets/webkit/incognito_mode_start_page.html