Loading core/java/android/webkit/CookieManager.java +30 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.webkit; import android.net.ParseException; import android.net.WebAddress; import android.net.http.AndroidHttpClient; import android.os.AsyncTask; import android.util.Log; Loading Loading @@ -102,6 +103,8 @@ public final class CookieManager { // http:/b/3118772 private static Boolean sUseChromiumHttpStack; private int pendingCookieOperations = 0; /** * This contains a list of 2nd-level domains that aren't allowed to have * wildcards when combined with country-codes. For example: [.co.uk]. Loading Loading @@ -523,12 +526,37 @@ public final class CookieManager { } } synchronized void waitForCookieOperationsToComplete() { while (pendingCookieOperations > 0) { try { wait(); } catch (InterruptedException e) { } } } private synchronized void signalCookieOperationsComplete() { pendingCookieOperations--; assert pendingCookieOperations > -1; notify(); } private synchronized void signalCookieOperationsStart() { pendingCookieOperations++; } /** * Remove all session cookies, which are cookies without expiration date */ public void removeSessionCookie() { signalCookieOperationsStart(); if (useChromiumHttpStack()) { new AsyncTask<Void, Void, Void>() { protected Void doInBackground(Void... none) { nativeRemoveSessionCookie(); signalCookieOperationsComplete(); return null; } }.execute(); return; } Loading @@ -548,6 +576,7 @@ public final class CookieManager { } } CookieSyncManager.getInstance().clearSessionCookies(); signalCookieOperationsComplete(); } } }; Loading core/java/android/webkit/WebViewCore.java +3 −0 Original line number Diff line number Diff line Loading @@ -1056,17 +1056,20 @@ final class WebViewCore { break; case LOAD_URL: { CookieManager.getInstance().waitForCookieOperationsToComplete(); GetUrlData param = (GetUrlData) msg.obj; loadUrl(param.mUrl, param.mExtraHeaders); break; } case POST_URL: { CookieManager.getInstance().waitForCookieOperationsToComplete(); PostUrlData param = (PostUrlData) msg.obj; mBrowserFrame.postUrl(param.mUrl, param.mPostData); break; } case LOAD_DATA: CookieManager.getInstance().waitForCookieOperationsToComplete(); BaseUrlData loadParams = (BaseUrlData) msg.obj; String baseUrl = loadParams.mBaseUrl; if (baseUrl != null) { Loading Loading
core/java/android/webkit/CookieManager.java +30 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.webkit; import android.net.ParseException; import android.net.WebAddress; import android.net.http.AndroidHttpClient; import android.os.AsyncTask; import android.util.Log; Loading Loading @@ -102,6 +103,8 @@ public final class CookieManager { // http:/b/3118772 private static Boolean sUseChromiumHttpStack; private int pendingCookieOperations = 0; /** * This contains a list of 2nd-level domains that aren't allowed to have * wildcards when combined with country-codes. For example: [.co.uk]. Loading Loading @@ -523,12 +526,37 @@ public final class CookieManager { } } synchronized void waitForCookieOperationsToComplete() { while (pendingCookieOperations > 0) { try { wait(); } catch (InterruptedException e) { } } } private synchronized void signalCookieOperationsComplete() { pendingCookieOperations--; assert pendingCookieOperations > -1; notify(); } private synchronized void signalCookieOperationsStart() { pendingCookieOperations++; } /** * Remove all session cookies, which are cookies without expiration date */ public void removeSessionCookie() { signalCookieOperationsStart(); if (useChromiumHttpStack()) { new AsyncTask<Void, Void, Void>() { protected Void doInBackground(Void... none) { nativeRemoveSessionCookie(); signalCookieOperationsComplete(); return null; } }.execute(); return; } Loading @@ -548,6 +576,7 @@ public final class CookieManager { } } CookieSyncManager.getInstance().clearSessionCookies(); signalCookieOperationsComplete(); } } }; Loading
core/java/android/webkit/WebViewCore.java +3 −0 Original line number Diff line number Diff line Loading @@ -1056,17 +1056,20 @@ final class WebViewCore { break; case LOAD_URL: { CookieManager.getInstance().waitForCookieOperationsToComplete(); GetUrlData param = (GetUrlData) msg.obj; loadUrl(param.mUrl, param.mExtraHeaders); break; } case POST_URL: { CookieManager.getInstance().waitForCookieOperationsToComplete(); PostUrlData param = (PostUrlData) msg.obj; mBrowserFrame.postUrl(param.mUrl, param.mPostData); break; } case LOAD_DATA: CookieManager.getInstance().waitForCookieOperationsToComplete(); BaseUrlData loadParams = (BaseUrlData) msg.obj; String baseUrl = loadParams.mBaseUrl; if (baseUrl != null) { Loading