diff options
author | Ben Murdoch <benm@google.com> | 2009-08-25 19:32:54 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2009-08-26 12:39:55 +0100 |
commit | d497d87650dd79f7d6a4751d79598d68ceb4b789 (patch) | |
tree | e1bb8e0f192139b0ab2ebb19d5d16a24428a894e | |
parent | 97f870956a37d441f82e21135a5e68d3ecdd0bf5 (diff) | |
download | frameworks_base-d497d87650dd79f7d6a4751d79598d68ceb4b789.zip frameworks_base-d497d87650dd79f7d6a4751d79598d68ceb4b789.tar.gz frameworks_base-d497d87650dd79f7d6a4751d79598d68ceb4b789.tar.bz2 |
Pass the estimated size of new HTML 5 databases to the ChromeClient so it can use that amount to figure an initial default quota.
Change-Id:Ic9372b0c86472b42ba5d0b964aaff1e2bbfe3efa
-rw-r--r-- | api/current.xml | 4 | ||||
-rw-r--r-- | core/java/android/webkit/CallbackProxy.java | 11 | ||||
-rw-r--r-- | core/java/android/webkit/WebChromeClient.java | 3 | ||||
-rw-r--r-- | core/java/android/webkit/WebViewCore.java | 15 | ||||
-rw-r--r-- | tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java | 3 |
5 files changed, 25 insertions, 11 deletions
diff --git a/api/current.xml b/api/current.xml index bb209c6..ea70922 100644 --- a/api/current.xml +++ b/api/current.xml @@ -162447,6 +162447,8 @@ </parameter> <parameter name="currentQuota" type="long"> </parameter> +<parameter name="estimatedSize" type="long"> +</parameter> <parameter name="totalUsedQuota" type="long"> </parameter> <parameter name="quotaUpdater" type="android.webkit.WebStorage.QuotaUpdater"> @@ -164109,6 +164111,8 @@ </parameter> <parameter name="currentQuota" type="long"> </parameter> +<parameter name="estimatedSize" type="long"> +</parameter> <parameter name="totalUsedQuota" type="long"> </parameter> <parameter name="quotaUpdater" type="android.webkit.WebStorage.QuotaUpdater"> diff --git a/core/java/android/webkit/CallbackProxy.java b/core/java/android/webkit/CallbackProxy.java index 6abf4c1..41e604d 100644 --- a/core/java/android/webkit/CallbackProxy.java +++ b/core/java/android/webkit/CallbackProxy.java @@ -434,12 +434,14 @@ class CallbackProxy extends Handler { ((Long) map.get("currentQuota")).longValue(); long totalUsedQuota = ((Long) map.get("totalUsedQuota")).longValue(); + long estimatedSize = + ((Long) map.get("estimatedSize")).longValue(); WebStorage.QuotaUpdater quotaUpdater = (WebStorage.QuotaUpdater) map.get("quotaUpdater"); mWebChromeClient.onExceededDatabaseQuota(url, - databaseIdentifier, currentQuota, totalUsedQuota, - quotaUpdater); + databaseIdentifier, currentQuota, estimatedSize, + totalUsedQuota, quotaUpdater); } break; @@ -1195,6 +1197,7 @@ class CallbackProxy extends Handler { * @param databaseIdentifier The identifier of the database that the * transaction that caused the overflow was running on. * @param currentQuota The current quota the origin is allowed. + * @param estimatedSize The estimated size of the database. * @param totalUsedQuota is the sum of all origins' quota. * @param quotaUpdater An instance of a class encapsulating a callback * to WebViewCore to run when the decision to allow or deny more @@ -1202,7 +1205,8 @@ class CallbackProxy extends Handler { */ public void onExceededDatabaseQuota( String url, String databaseIdentifier, long currentQuota, - long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) { + long estimatedSize, long totalUsedQuota, + WebStorage.QuotaUpdater quotaUpdater) { if (mWebChromeClient == null) { quotaUpdater.updateQuota(currentQuota); return; @@ -1213,6 +1217,7 @@ class CallbackProxy extends Handler { map.put("databaseIdentifier", databaseIdentifier); map.put("url", url); map.put("currentQuota", currentQuota); + map.put("estimatedSize", estimatedSize); map.put("totalUsedQuota", totalUsedQuota); map.put("quotaUpdater", quotaUpdater); exceededQuota.obj = map; diff --git a/core/java/android/webkit/WebChromeClient.java b/core/java/android/webkit/WebChromeClient.java index e2d5d24..ad4ba05 100644 --- a/core/java/android/webkit/WebChromeClient.java +++ b/core/java/android/webkit/WebChromeClient.java @@ -215,13 +215,14 @@ public class WebChromeClient { * @param databaseIdentifier The identifier of the database that caused the * quota overflow. * @param currentQuota The current quota for the origin. + * @param estimatedSize The estimated size of the database. * @param totalUsedQuota is the sum of all origins' quota. * @param quotaUpdater A callback to inform the WebCore thread that a new * quota is available. This callback must always be executed at some * point to ensure that the sleeping WebCore thread is woken up. */ public void onExceededDatabaseQuota(String url, String databaseIdentifier, - long currentQuota, long totalUsedQuota, + long currentQuota, long estimatedSize, long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) { // This default implementation passes the current quota back to WebCore. // WebCore will interpret this that new quota was declined. diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index d6a9cff..25cb249 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -258,20 +258,23 @@ final class WebViewCore { * @param url The URL that caused the overflow. * @param databaseIdentifier The identifier of the database. * @param currentQuota The current quota for the origin. + * @param estimatedSize The estimated size of the database. */ protected void exceededDatabaseQuota(String url, String databaseIdentifier, - long currentQuota) { + long currentQuota, + long estimatedSize) { // Inform the callback proxy of the quota overflow. Send an object // that encapsulates a call to the nativeSetDatabaseQuota method to // awaken the sleeping webcore thread when a decision from the // client to allow or deny quota is available. mCallbackProxy.onExceededDatabaseQuota(url, databaseIdentifier, - currentQuota, getUsedQuota(), new WebStorage.QuotaUpdater() { - public void updateQuota(long quota) { - nativeSetNewStorageLimit(quota); - } - }); + currentQuota, estimatedSize, getUsedQuota(), + new WebStorage.QuotaUpdater() { + public void updateQuota(long quota) { + nativeSetNewStorageLimit(quota); + } + }); } /** diff --git a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java b/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java index 96b34b3..e342efb 100644 --- a/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java +++ b/tests/DumpRenderTree/src/com/android/dumprendertree/TestShellActivity.java @@ -552,7 +552,8 @@ public class TestShellActivity extends Activity implements LayoutTestController @Override public void onExceededDatabaseQuota(String url_str, - String databaseIdentifier, long currentQuota, long totalUsedQuota, + String databaseIdentifier, long currentQuota, + long estimatedSize, long totalUsedQuota, WebStorage.QuotaUpdater callback) { if (mDumpDatabaseCallbacks) { if (mDatabaseCallbackStrings == null) { |