summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/webkit/CookieManager.java22
1 files changed, 17 insertions, 5 deletions
diff --git a/core/java/android/webkit/CookieManager.java b/core/java/android/webkit/CookieManager.java
index 61a8cda..3010178 100644
--- a/core/java/android/webkit/CookieManager.java
+++ b/core/java/android/webkit/CookieManager.java
@@ -98,6 +98,10 @@ public final class CookieManager {
private boolean mAcceptCookie = true;
+ // TODO: Remove this if/when we permanently switch to the Chromium HTTP stack
+ // http:/b/3118772
+ private static Boolean sUseChromiumHttpStack;
+
/**
* This contains a list of 2nd-level domains that aren't allowed to have
* wildcards when combined with country-codes. For example: [.co.uk].
@@ -257,6 +261,13 @@ public final class CookieManager {
return sRef;
}
+ private static boolean useChromiumHttpStack() {
+ if (sUseChromiumHttpStack == null) {
+ sUseChromiumHttpStack = nativeUseChromiumHttpStack();
+ }
+ return sUseChromiumHttpStack;
+ }
+
/**
* Control whether cookie is enabled or disabled
* @param accept TRUE if accept cookie
@@ -524,11 +535,11 @@ public final class CookieManager {
* Remove all cookies
*/
public void removeAllCookie() {
- // Clear cookies for the Chromium HTTP stack
- nativeRemoveAllCookie();
- // Clear cookies for the Android HTTP stack
- // TODO: Remove this if/when we permanently switch to the Chromium HTTP stack
- // http:/b/3118772
+ if (useChromiumHttpStack()) {
+ nativeRemoveAllCookie();
+ return;
+ }
+
final Runnable clearCache = new Runnable() {
public void run() {
synchronized(CookieManager.this) {
@@ -1023,5 +1034,6 @@ public final class CookieManager {
}
// Native functions
+ private static native boolean nativeUseChromiumHttpStack();
private static native void nativeRemoveAllCookie();
}