Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit de38b23d authored by Selim Gurun's avatar Selim Gurun
Browse files

DO NOT MERGE Add a delimiter between scheme and host

Bug: 6923539

Change-Id: Ia78e185f00184c53babe00df3c852114ffd721f0
parent a49c3585
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -70,6 +70,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;
@@ -498,10 +499,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]);
                        }
@@ -819,7 +825,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.
+2 −1
Original line number Diff line number Diff line
@@ -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
+14 −1
Original line number Diff line number Diff line
@@ -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();