am 30504327: am 62588d79: am 8f87c5d8: am ed1e5a87: am b7787a31: DO NOT MERGE Merge commit \'8225df00\' into bp

* commit '30504327364a7ad641c09a227f7930b9fba91614':
  Add a delimiter between scheme and host
This commit is contained in:
Geremy Condra
2013-04-19 23:19:20 -07:00
committed by Android Git Automerger
3 changed files with 24 additions and 4 deletions

View File

@@ -70,6 +70,7 @@ class BrowserFrame extends Handler {
* request's LoadListener * request's LoadListener
*/ */
private final static int MAX_OUTSTANDING_REQUESTS = 300; private final static int MAX_OUTSTANDING_REQUESTS = 300;
private final static String SCHEME_HOST_DELIMITER = "://";
private final CallbackProxy mCallbackProxy; private final CallbackProxy mCallbackProxy;
private final WebSettingsClassic mSettings; private final WebSettingsClassic mSettings;
@@ -500,9 +501,14 @@ class BrowserFrame extends Handler {
.getCurrentItem(); .getCurrentItem();
if (item != null) { if (item != null) {
WebAddress uri = new WebAddress(item.getUrl()); WebAddress uri = new WebAddress(item.getUrl());
String schemePlusHost = uri.getScheme() + uri.getHost(); String schemePlusHost = uri.getScheme() + SCHEME_HOST_DELIMITER +
uri.getHost();
String[] up = mDatabase.getUsernamePassword( String[] up = mDatabase.getUsernamePassword(
schemePlusHost); schemePlusHost);
if (up == null) { // no row found, try again using the legacy method
schemePlusHost = uri.getScheme() + uri.getHost();
up = mDatabase.getUsernamePassword(schemePlusHost);
}
if (up != null && up[0] != null) { if (up != null && up[0] != null) {
setUsernamePassword(up[0], up[1]); setUsernamePassword(up[0], up[1]);
} }
@@ -817,7 +823,7 @@ class BrowserFrame extends Handler {
} }
WebAddress uri = new WebAddress(mCallbackProxy WebAddress uri = new WebAddress(mCallbackProxy
.getBackForwardList().getCurrentItem().getUrl()); .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 // Check to see if the username & password appear in
// the post data (there could be another form on the // the post data (there could be another form on the
// page and that was posted instead. // page and that was posted instead.

View File

@@ -595,7 +595,8 @@ public class WebView extends AbsoluteLayout
* forms. Note that this is unrelated to the credentials used for HTTP * forms. Note that this is unrelated to the credentials used for HTTP
* authentication. * 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 username the username for the given host
* @param password the password for the given host * @param password the password for the given host
* @see WebViewDatabase#clearUsernamePassword * @see WebViewDatabase#clearUsernamePassword

View File

@@ -37,7 +37,7 @@ final class WebViewDatabaseClassic extends WebViewDatabase {
private static final String DATABASE_FILE = "webview.db"; private static final String DATABASE_FILE = "webview.db";
private static final String CACHE_DATABASE_FILE = "webviewCache.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 // 2 -> 3 Modified Cache table to allow cache of redirects
// 3 -> 4 Added Oma-Downloads table // 3 -> 4 Added Oma-Downloads table
// 4 -> 5 Modified Cache table to support persistent contentLength // 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, // 10 -> 11 Drop cookies and cache now managed by the chromium stack,
// and update the form data table to use the new format // and update the form data table to use the new format
// implemented for b/5265606. // implemented for b/5265606.
// 11 -> 12 Add a delimiter between scheme and host when storing passwords
private static WebViewDatabaseClassic sInstance = null; private static WebViewDatabaseClassic sInstance = null;
private static final Object sInstanceLock = new Object(); private static final Object sInstanceLock = new Object();
@@ -169,11 +170,23 @@ final class WebViewDatabaseClassic extends WebViewDatabase {
private static void upgradeDatabase() { private static void upgradeDatabase() {
upgradeDatabaseToV10(); upgradeDatabaseToV10();
upgradeDatabaseFromV10ToV11(); upgradeDatabaseFromV10ToV11();
upgradeDatabaseFromV11ToV12();
// Add future database upgrade functions here, one version at a // Add future database upgrade functions here, one version at a
// time. // time.
sDatabase.setVersion(DATABASE_VERSION); 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() { private static void upgradeDatabaseFromV10ToV11() {
int oldVersion = sDatabase.getVersion(); int oldVersion = sDatabase.getVersion();