From bb08abc0b9fddc160d345de9479923bef5414015 Mon Sep 17 00:00:00 2001 From: Andrew Grieve Date: Thu, 24 Oct 2013 11:08:02 -0400 Subject: [PATCH] CB-5193 Fix Android WebSQL sometime throwing SECURITY_ERR. Turns out our Quota logic has been wrong all along. If we were to actually track the quota needed, we'd need to store a map of dbName->quota for all dbNames. Instead, we just set a really high quota since we don't ever want to decline storage. I *think* this fixes all of the SECURITY_ERR exceptions we've been seeing. Even those on Honeycomb / ICS. (cherry picked from commit 6e4ef508e8f9f2d396515bd1d7465481d2f1285c) --- .../apache/cordova/CordovaChromeClient.java | 22 +------------------ 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/framework/src/org/apache/cordova/CordovaChromeClient.java b/framework/src/org/apache/cordova/CordovaChromeClient.java index 3c0abd18..d71ee048 100755 --- a/framework/src/org/apache/cordova/CordovaChromeClient.java +++ b/framework/src/org/apache/cordova/CordovaChromeClient.java @@ -275,33 +275,13 @@ public class CordovaChromeClient extends WebChromeClient { /** * Handle database quota exceeded notification. - * - * @param url - * @param databaseIdentifier - * @param currentQuota - * @param estimatedSize - * @param totalUsedQuota - * @param quotaUpdater */ @Override public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize, long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) { LOG.d(TAG, "onExceededDatabaseQuota estimatedSize: %d currentQuota: %d totalUsedQuota: %d", estimatedSize, currentQuota, totalUsedQuota); - - if (estimatedSize < MAX_QUOTA) - { - //increase for 1Mb - long newQuota = estimatedSize; - LOG.d(TAG, "calling quotaUpdater.updateQuota newQuota: %d", newQuota); - quotaUpdater.updateQuota(newQuota); - } - else - { - // Set the quota to whatever it is and force an error - // TODO: get docs on how to handle this properly - quotaUpdater.updateQuota(currentQuota); - } + quotaUpdater.updateQuota(MAX_QUOTA); } // console.log in api level 7: http://developer.android.com/guide/developing/debug-tasks.html