Loading core/java/android/webkit/CookieSyncManager.java +20 −11 Original line number Diff line number Diff line Loading @@ -59,8 +59,10 @@ public final class CookieSyncManager extends WebSyncManager { private static CookieSyncManager sRef; private CookieSyncManager(Context context) { super(context, "CookieSyncManager"); private static boolean sGetInstanceAllowed = false; private CookieSyncManager() { super("CookieSyncManager"); } /** Loading @@ -71,7 +73,10 @@ public final class CookieSyncManager extends WebSyncManager { * @return CookieSyncManager */ public static synchronized CookieSyncManager getInstance() { checkInstanceIsCreated(); checkInstanceIsAllowed(); if (sRef == null) { sRef = new CookieSyncManager(); } return sRef; } Loading @@ -80,16 +85,13 @@ public final class CookieSyncManager extends WebSyncManager { * @param context * @return CookieSyncManager */ public static synchronized CookieSyncManager createInstance( Context context) { public static synchronized CookieSyncManager createInstance(Context context) { if (context == null) { throw new IllegalArgumentException("Invalid context argument"); } if (sRef == null) { sRef = new CookieSyncManager(context); } return sRef; setGetInstanceIsAllowed(); return getInstance(); } protected void syncFromRamToFlash() { Loading @@ -110,8 +112,15 @@ public final class CookieSyncManager extends WebSyncManager { } } private static void checkInstanceIsCreated() { if (sRef == null) { static void setGetInstanceIsAllowed() { sGetInstanceAllowed = true; } private static void checkInstanceIsAllowed() { // Prior to Android KK, calling createInstance() or constructing a WebView is // a hard pre-condition for calling getInstance(). We retain that contract to aid // developers targeting a range of SDK levels. if (!sGetInstanceAllowed) { throw new IllegalStateException( "CookieSyncManager::createInstance() needs to be called " + "before CookieSyncManager::getInstance()"); Loading core/java/android/webkit/WebSyncManager.java +10 −11 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ abstract class WebSyncManager implements Runnable { private String mThreadName; // handler of the sync thread protected Handler mHandler; // database for the persistent storage // database for the persistent storage. Always null. protected WebViewDatabase mDataBase; // Ref count for calls to start/stop sync private int mStartSyncRefCount; Loading @@ -60,16 +60,15 @@ abstract class WebSyncManager implements Runnable { } protected WebSyncManager(Context context, String name) { this(name); } /** @hide */ WebSyncManager(String name) { mThreadName = name; if (context != null) { mDataBase = WebViewDatabase.getInstance(context); mSyncThread = new Thread(this); mSyncThread.setName(mThreadName); mSyncThread.start(); } else { throw new IllegalStateException( "WebSyncManager can't be created without context"); } } protected Object clone() throws CloneNotSupportedException { Loading core/java/android/webkit/WebView.java +2 −2 Original line number Diff line number Diff line Loading @@ -506,8 +506,8 @@ public class WebView extends AbsoluteLayout ensureProviderCreated(); mProvider.init(javaScriptInterfaces, privateBrowsing); // Post condition of creating a webview is the CookieSyncManager instance exists. CookieSyncManager.createInstance(getContext()); // Post condition of creating a webview is the CookieSyncManager.getInstance() is allowed. CookieSyncManager.setGetInstanceIsAllowed(); } /** Loading Loading
core/java/android/webkit/CookieSyncManager.java +20 −11 Original line number Diff line number Diff line Loading @@ -59,8 +59,10 @@ public final class CookieSyncManager extends WebSyncManager { private static CookieSyncManager sRef; private CookieSyncManager(Context context) { super(context, "CookieSyncManager"); private static boolean sGetInstanceAllowed = false; private CookieSyncManager() { super("CookieSyncManager"); } /** Loading @@ -71,7 +73,10 @@ public final class CookieSyncManager extends WebSyncManager { * @return CookieSyncManager */ public static synchronized CookieSyncManager getInstance() { checkInstanceIsCreated(); checkInstanceIsAllowed(); if (sRef == null) { sRef = new CookieSyncManager(); } return sRef; } Loading @@ -80,16 +85,13 @@ public final class CookieSyncManager extends WebSyncManager { * @param context * @return CookieSyncManager */ public static synchronized CookieSyncManager createInstance( Context context) { public static synchronized CookieSyncManager createInstance(Context context) { if (context == null) { throw new IllegalArgumentException("Invalid context argument"); } if (sRef == null) { sRef = new CookieSyncManager(context); } return sRef; setGetInstanceIsAllowed(); return getInstance(); } protected void syncFromRamToFlash() { Loading @@ -110,8 +112,15 @@ public final class CookieSyncManager extends WebSyncManager { } } private static void checkInstanceIsCreated() { if (sRef == null) { static void setGetInstanceIsAllowed() { sGetInstanceAllowed = true; } private static void checkInstanceIsAllowed() { // Prior to Android KK, calling createInstance() or constructing a WebView is // a hard pre-condition for calling getInstance(). We retain that contract to aid // developers targeting a range of SDK levels. if (!sGetInstanceAllowed) { throw new IllegalStateException( "CookieSyncManager::createInstance() needs to be called " + "before CookieSyncManager::getInstance()"); Loading
core/java/android/webkit/WebSyncManager.java +10 −11 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ abstract class WebSyncManager implements Runnable { private String mThreadName; // handler of the sync thread protected Handler mHandler; // database for the persistent storage // database for the persistent storage. Always null. protected WebViewDatabase mDataBase; // Ref count for calls to start/stop sync private int mStartSyncRefCount; Loading @@ -60,16 +60,15 @@ abstract class WebSyncManager implements Runnable { } protected WebSyncManager(Context context, String name) { this(name); } /** @hide */ WebSyncManager(String name) { mThreadName = name; if (context != null) { mDataBase = WebViewDatabase.getInstance(context); mSyncThread = new Thread(this); mSyncThread.setName(mThreadName); mSyncThread.start(); } else { throw new IllegalStateException( "WebSyncManager can't be created without context"); } } protected Object clone() throws CloneNotSupportedException { Loading
core/java/android/webkit/WebView.java +2 −2 Original line number Diff line number Diff line Loading @@ -506,8 +506,8 @@ public class WebView extends AbsoluteLayout ensureProviderCreated(); mProvider.init(javaScriptInterfaces, privateBrowsing); // Post condition of creating a webview is the CookieSyncManager instance exists. CookieSyncManager.createInstance(getContext()); // Post condition of creating a webview is the CookieSyncManager.getInstance() is allowed. CookieSyncManager.setGetInstanceIsAllowed(); } /** Loading