summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2012-06-01 14:00:39 +0100
committerBen Murdoch <benm@google.com>2012-06-01 14:07:20 +0100
commit078b5913799610c3853675508e7ccc02c45f56ba (patch)
treec61f5121c68112e60f86a1d7468f2ee2ee6de0a9 /core
parentd53710ce644e7f1df417a8fe42ec26233a751b2e (diff)
downloadframeworks_base-078b5913799610c3853675508e7ccc02c45f56ba.zip
frameworks_base-078b5913799610c3853675508e7ccc02c45f56ba.tar.gz
frameworks_base-078b5913799610c3853675508e7ccc02c45f56ba.tar.bz2
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
Diffstat (limited to 'core')
-rw-r--r--core/java/android/webkit/BrowserFrame.java17
-rw-r--r--core/java/android/webkit/WebSyncManager.java4
2 files changed, 12 insertions, 9 deletions
diff --git a/core/java/android/webkit/BrowserFrame.java b/core/java/android/webkit/BrowserFrame.java
index fe812af..5108990 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
diff --git a/core/java/android/webkit/WebSyncManager.java b/core/java/android/webkit/WebSyncManager.java
index d3ec603..38b5e5c 100644
--- a/core/java/android/webkit/WebSyncManager.java
+++ b/core/java/android/webkit/WebSyncManager.java
@@ -37,6 +37,9 @@ abstract class WebSyncManager implements Runnable {
// handler of the sync thread
protected Handler mHandler;
// database for the persistent storage
+ // Note that this remains uninitialised as it is unused. We cannot remove
+ // the member as it leaked into the public API via CookieSyncManager.
+ // TODO: hide this member, ditto for mHandler.
protected WebViewDatabase mDataBase;
// Ref count for calls to start/stop sync
private int mStartSyncRefCount;
@@ -62,7 +65,6 @@ abstract class WebSyncManager implements Runnable {
protected WebSyncManager(Context context, String name) {
mThreadName = name;
if (context != null) {
- mDataBase = WebViewDatabase.getInstance(context);
mSyncThread = new Thread(this);
mSyncThread.setName(mThreadName);
mSyncThread.start();