From 078b5913799610c3853675508e7ccc02c45f56ba Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Fri, 1 Jun 2012 14:00:39 +0100 Subject: Get a WebViewDatabaseClassic instance lazily. Do not merge. Rather than caching the WebViewDatabaseClassic instance in a member, grab the instance when we need it. In the case of WebSyncManager - neither it or it's subclass uses the WebViewDatabaseClassic (and it's subclass is final) so remove it's initialisation. We must leave the member declared however to satisfy the published API. Bug: 6482144 Change-Id: Ibf5186a2851d17f5ad62b35ad543aeadff5618d9 --- core/java/android/webkit/BrowserFrame.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'core/java/android/webkit/BrowserFrame.java') diff --git a/core/java/android/webkit/BrowserFrame.java b/core/java/android/webkit/BrowserFrame.java index fe812af3f451..510899093558 100644 --- a/core/java/android/webkit/BrowserFrame.java +++ b/core/java/android/webkit/BrowserFrame.java @@ -74,7 +74,6 @@ class BrowserFrame extends Handler { private final CallbackProxy mCallbackProxy; private final WebSettingsClassic mSettings; private final Context mContext; - private final WebViewDatabaseClassic mDatabase; private final WebViewCore mWebViewCore; /* package */ boolean mLoadInitFromJava; private int mLoadType; @@ -243,7 +242,6 @@ class BrowserFrame extends Handler { mSettings = settings; mContext = context; mCallbackProxy = proxy; - mDatabase = WebViewDatabaseClassic.getInstance(appContext); mWebViewCore = w; mSearchBox = new SearchBoxImpl(mWebViewCore, mCallbackProxy); @@ -426,7 +424,8 @@ class BrowserFrame extends Handler { if (h != null) { String url = WebTextView.urlForAutoCompleteData(h.getUrl()); if (url != null) { - mDatabase.setFormData(url, data); + WebViewDatabaseClassic.getInstance(mContext).setFormData( + url, data); } } } @@ -498,8 +497,9 @@ class BrowserFrame extends Handler { if (item != null) { WebAddress uri = new WebAddress(item.getUrl()); String schemePlusHost = uri.getScheme() + uri.getHost(); - String[] up = mDatabase.getUsernamePassword( - schemePlusHost); + String[] up = + WebViewDatabaseClassic.getInstance(mContext) + .getUsernamePassword(schemePlusHost); if (up != null && up[0] != null) { setUsernamePassword(up[0], up[1]); } @@ -800,10 +800,10 @@ class BrowserFrame extends Handler { // the post data (there could be another form on the // page and that was posted instead. String postString = new String(postData); + WebViewDatabaseClassic db = WebViewDatabaseClassic.getInstance(mContext); if (postString.contains(URLEncoder.encode(username)) && postString.contains(URLEncoder.encode(password))) { - String[] saved = mDatabase.getUsernamePassword( - schemePlusHost); + String[] saved = db.getUsernamePassword(schemePlusHost); if (saved != null) { // null username implies that user has chosen not to // save password @@ -811,7 +811,8 @@ class BrowserFrame extends Handler { // non-null username implies that user has // chosen to save password, so update the // recorded password - mDatabase.setUsernamePassword(schemePlusHost, username, password); + db.setUsernamePassword(schemePlusHost, username, + password); } } else { // CallbackProxy will handle creating the resume -- cgit v1.2.3