diff options
author | Selim Gurun <sgurun@google.com> | 2013-11-07 15:14:33 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-11-07 15:14:33 -0800 |
commit | 9dcac6f1a74b5d6a99b832818efb0a202a88dfe7 (patch) | |
tree | 999b8b85c1e7bb21f7011af02a5615bbdf31bebc /core/java | |
parent | 18ffec8582b7fed897db12358b464ccfb56808df (diff) | |
parent | 0fed12396a12fd69b22c1b4ee4e27a93517eb6e2 (diff) | |
download | frameworks_base-9dcac6f1a74b5d6a99b832818efb0a202a88dfe7.zip frameworks_base-9dcac6f1a74b5d6a99b832818efb0a202a88dfe7.tar.gz frameworks_base-9dcac6f1a74b5d6a99b832818efb0a202a88dfe7.tar.bz2 |
am 0fed1239: am de38b23d: DO NOT MERGE Add a delimiter between scheme and host
* commit '0fed12396a12fd69b22c1b4ee4e27a93517eb6e2':
DO NOT MERGE Add a delimiter between scheme and host
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/webkit/BrowserFrame.java | 16 | ||||
-rw-r--r-- | core/java/android/webkit/WebView.java | 3 | ||||
-rw-r--r-- | core/java/android/webkit/WebViewDatabaseClassic.java | 15 |
3 files changed, 27 insertions, 7 deletions
diff --git a/core/java/android/webkit/BrowserFrame.java b/core/java/android/webkit/BrowserFrame.java index 6955d14..b881301 100644 --- a/core/java/android/webkit/BrowserFrame.java +++ b/core/java/android/webkit/BrowserFrame.java @@ -69,6 +69,7 @@ class BrowserFrame extends Handler { * request's LoadListener */ private final static int MAX_OUTSTANDING_REQUESTS = 300; + private final static String SCHEME_HOST_DELIMITER = "://"; private final CallbackProxy mCallbackProxy; private final WebSettingsClassic mSettings; @@ -497,10 +498,15 @@ class BrowserFrame extends Handler { .getCurrentItem(); if (item != null) { WebAddress uri = new WebAddress(item.getUrl()); - String schemePlusHost = uri.getScheme() + uri.getHost(); - String[] up = - WebViewDatabaseClassic.getInstance(mContext) - .getUsernamePassword(schemePlusHost); + String schemePlusHost = uri.getScheme() + SCHEME_HOST_DELIMITER + + uri.getHost(); + WebViewDatabaseClassic database = + WebViewDatabaseClassic.getInstance(mContext); + String[] up = database.getUsernamePassword(schemePlusHost); + if (up == null) { // no row found, try again using the legacy method + schemePlusHost = uri.getScheme() + uri.getHost(); + up = database.getUsernamePassword(schemePlusHost); + } if (up != null && up[0] != null) { setUsernamePassword(up[0], up[1]); } @@ -818,7 +824,7 @@ class BrowserFrame extends Handler { } WebAddress uri = new WebAddress(mCallbackProxy .getBackForwardList().getCurrentItem().getUrl()); - String schemePlusHost = uri.getScheme() + uri.getHost(); + String schemePlusHost = uri.getScheme() + SCHEME_HOST_DELIMITER + uri.getHost(); // Check to see if the username & password appear in // the post data (there could be another form on the // page and that was posted instead. diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 4998742..afa4894 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -581,7 +581,8 @@ public class WebView extends AbsoluteLayout * forms. Note that this is unrelated to the credentials used for HTTP * authentication. * - * @param host the host that required the credentials + * @param host the host that required the credentials. It is recommended that + * the host is given using scheme://hostname format. * @param username the username for the given host * @param password the password for the given host * @see WebViewDatabase#clearUsernamePassword diff --git a/core/java/android/webkit/WebViewDatabaseClassic.java b/core/java/android/webkit/WebViewDatabaseClassic.java index be01028..5ad4fa5 100644 --- a/core/java/android/webkit/WebViewDatabaseClassic.java +++ b/core/java/android/webkit/WebViewDatabaseClassic.java @@ -37,7 +37,7 @@ final class WebViewDatabaseClassic extends WebViewDatabase { private static final String DATABASE_FILE = "webview.db"; private static final String CACHE_DATABASE_FILE = "webviewCache.db"; - private static final int DATABASE_VERSION = 11; + private static final int DATABASE_VERSION = 12; // 2 -> 3 Modified Cache table to allow cache of redirects // 3 -> 4 Added Oma-Downloads table // 4 -> 5 Modified Cache table to support persistent contentLength @@ -50,6 +50,7 @@ final class WebViewDatabaseClassic extends WebViewDatabase { // 10 -> 11 Drop cookies and cache now managed by the chromium stack, // and update the form data table to use the new format // implemented for b/5265606. + // 11 -> 12 Add a delimiter between scheme and host when storing passwords private static WebViewDatabaseClassic sInstance = null; private static final Object sInstanceLock = new Object(); @@ -169,11 +170,23 @@ final class WebViewDatabaseClassic extends WebViewDatabase { private static void upgradeDatabase() { upgradeDatabaseToV10(); upgradeDatabaseFromV10ToV11(); + upgradeDatabaseFromV11ToV12(); // Add future database upgrade functions here, one version at a // time. sDatabase.setVersion(DATABASE_VERSION); } + private static void upgradeDatabaseFromV11ToV12() { + int oldVersion = sDatabase.getVersion(); + + if (oldVersion >= 12) { + // Nothing to do. + return; + } + // delete the rows in the database. + sDatabase.delete(mTableNames[TABLE_PASSWORD_ID], null, null); + } + private static void upgradeDatabaseFromV10ToV11() { int oldVersion = sDatabase.getVersion(); |