| Index: android_webview/java/src/org/chromium/android_webview/AwQuotaManagerBridge.java
|
| diff --git a/android_webview/java/src/org/chromium/android_webview/AwQuotaManagerBridge.java b/android_webview/java/src/org/chromium/android_webview/AwQuotaManagerBridge.java
|
| index a1bcc352cc9b44ba3e339a301699ad457ab95f4e..6eee70b0c387bd46720dbf7dd2a5625e05320913 100644
|
| --- a/android_webview/java/src/org/chromium/android_webview/AwQuotaManagerBridge.java
|
| +++ b/android_webview/java/src/org/chromium/android_webview/AwQuotaManagerBridge.java
|
| @@ -4,15 +4,13 @@
|
|
|
| package org.chromium.android_webview;
|
|
|
| +import android.util.SparseArray;
|
| import android.webkit.ValueCallback;
|
|
|
| import org.chromium.base.CalledByNative;
|
| import org.chromium.base.JNINamespace;
|
| import org.chromium.base.ThreadUtils;
|
|
|
| -import java.util.HashMap;
|
| -import java.util.Map;
|
| -
|
| /**
|
| * Bridge between android.webview.WebStorage and native QuotaManager. This object is owned by Java
|
| * AwBrowserContext and the native side is owned by the native AwBrowserContext.
|
| @@ -57,16 +55,16 @@ public class AwQuotaManagerBridge {
|
| // The Java callbacks are saved here. An incrementing callback id is generated for each saved
|
| // callback and is passed to the native side to identify callback.
|
| private int mNextId;
|
| - private Map<Integer, ValueCallback<Origins>> mPendingGetOriginCallbacks;
|
| - private Map<Integer, ValueCallback<Long>> mPendingGetQuotaForOriginCallbacks;
|
| - private Map<Integer, ValueCallback<Long>> mPendingGetUsageForOriginCallbacks;
|
| + private SparseArray<ValueCallback<Origins>> mPendingGetOriginCallbacks;
|
| + private SparseArray<ValueCallback<Long>> mPendingGetQuotaForOriginCallbacks;
|
| + private SparseArray<ValueCallback<Long>> mPendingGetUsageForOriginCallbacks;
|
|
|
| private AwQuotaManagerBridge(long nativeAwQuotaManagerBridgeImpl) {
|
| mNativeAwQuotaManagerBridgeImpl = nativeAwQuotaManagerBridgeImpl;
|
| mPendingGetOriginCallbacks =
|
| - new HashMap<Integer, ValueCallback<Origins>>();
|
| - mPendingGetQuotaForOriginCallbacks = new HashMap<Integer, ValueCallback<Long>>();
|
| - mPendingGetUsageForOriginCallbacks = new HashMap<Integer, ValueCallback<Long>>();
|
| + new SparseArray<ValueCallback<Origins>>();
|
| + mPendingGetQuotaForOriginCallbacks = new SparseArray<ValueCallback<Long>>();
|
| + mPendingGetUsageForOriginCallbacks = new SparseArray<ValueCallback<Long>>();
|
| nativeInit(mNativeAwQuotaManagerBridgeImpl);
|
| }
|
|
|
| @@ -106,7 +104,7 @@ public class AwQuotaManagerBridge {
|
| */
|
| public void getOrigins(ValueCallback<Origins> callback) {
|
| int callbackId = getNextId();
|
| - assert !mPendingGetOriginCallbacks.containsKey(callbackId);
|
| + assert mPendingGetOriginCallbacks.get(callbackId) == null;
|
| mPendingGetOriginCallbacks.put(callbackId, callback);
|
| nativeGetOrigins(mNativeAwQuotaManagerBridgeImpl, callbackId);
|
| }
|
| @@ -117,7 +115,7 @@ public class AwQuotaManagerBridge {
|
| */
|
| public void getQuotaForOrigin(String origin, ValueCallback<Long> callback) {
|
| int callbackId = getNextId();
|
| - assert !mPendingGetQuotaForOriginCallbacks.containsKey(callbackId);
|
| + assert mPendingGetQuotaForOriginCallbacks.get(callbackId) == null;
|
| mPendingGetQuotaForOriginCallbacks.put(callbackId, callback);
|
| nativeGetUsageAndQuotaForOrigin(mNativeAwQuotaManagerBridgeImpl, origin, callbackId, true);
|
| }
|
| @@ -128,7 +126,7 @@ public class AwQuotaManagerBridge {
|
| */
|
| public void getUsageForOrigin(String origin, ValueCallback<Long> callback) {
|
| int callbackId = getNextId();
|
| - assert !mPendingGetUsageForOriginCallbacks.containsKey(callbackId);
|
| + assert mPendingGetUsageForOriginCallbacks.get(callbackId) == null;
|
| mPendingGetUsageForOriginCallbacks.put(callbackId, callback);
|
| nativeGetUsageAndQuotaForOrigin(mNativeAwQuotaManagerBridgeImpl, origin, callbackId, false);
|
| }
|
| @@ -136,20 +134,23 @@ public class AwQuotaManagerBridge {
|
| @CalledByNative
|
| private void onGetOriginsCallback(int callbackId, String[] origin, long[] usages,
|
| long[] quotas) {
|
| - assert mPendingGetOriginCallbacks.containsKey(callbackId);
|
| - mPendingGetOriginCallbacks.remove(callbackId).onReceiveValue(
|
| + assert mPendingGetOriginCallbacks.get(callbackId) != null;
|
| + mPendingGetOriginCallbacks.get(callbackId).onReceiveValue(
|
| new Origins(origin, usages, quotas));
|
| + mPendingGetOriginCallbacks.remove(callbackId);
|
| }
|
|
|
| @CalledByNative
|
| private void onGetUsageAndQuotaForOriginCallback(
|
| int callbackId, boolean isQuota, long usage, long quota) {
|
| if (isQuota) {
|
| - assert mPendingGetQuotaForOriginCallbacks.containsKey(callbackId);
|
| - mPendingGetQuotaForOriginCallbacks.remove(callbackId).onReceiveValue(quota);
|
| + assert mPendingGetQuotaForOriginCallbacks.get(callbackId) != null;
|
| + mPendingGetQuotaForOriginCallbacks.get(callbackId).onReceiveValue(quota);
|
| + mPendingGetQuotaForOriginCallbacks.remove(callbackId);
|
| } else {
|
| - assert mPendingGetUsageForOriginCallbacks.containsKey(callbackId);
|
| - mPendingGetUsageForOriginCallbacks.remove(callbackId).onReceiveValue(usage);
|
| + assert mPendingGetUsageForOriginCallbacks.get(callbackId) != null;
|
| + mPendingGetUsageForOriginCallbacks.get(callbackId).onReceiveValue(usage);
|
| + mPendingGetUsageForOriginCallbacks.remove(callbackId);
|
| }
|
| }
|
|
|
|
|