FileDocCategorySizeDatePackage
CookieManager.javaAPI DocAndroid 5.1 API10932Thu Mar 12 22:22:10 GMT 2015android.webkit

CookieManager

public abstract class CookieManager extends Object
Manages the cookies used by an application's {@link WebView} instances. Cookies are manipulated according to RFC2109.

Fields Summary
Constructors Summary
Methods Summary
public abstract booleanacceptCookie()
Gets whether the application's {@link WebView} instances send and accept cookies.

return
true if {@link WebView} instances send and accept cookies

public abstract booleanacceptThirdPartyCookies(WebView webview)
Gets whether the {@link WebView} should allow third party cookies to be set.

param
webview the {@link WebView} instance to get the cookie policy for
return
true if the {@link WebView} accepts third party cookies

public static booleanallowFileSchemeCookies()
Gets whether the application's {@link WebView} instances send and accept cookies for file scheme URLs.

return
true if {@link WebView} instances send and accept cookies for file scheme URLs

        return getInstance().allowFileSchemeCookiesImpl();
    
protected abstract booleanallowFileSchemeCookiesImpl()
Implements {@link #allowFileSchemeCookies()}.

hide
Only for use by WebViewProvider implementations

protected java.lang.Objectclone()

        throw new CloneNotSupportedException("doesn't implement Cloneable");
    
public abstract voidflush()
Ensures all cookies currently accessible through the getCookie API are written to persistent storage. This call will block the caller until it is done and may perform I/O.

public abstract java.lang.StringgetCookie(java.lang.String url, boolean privateBrowsing)
See {@link #getCookie(String)}.

param
url the URL for which the cookies are requested
param
privateBrowsing whether to use the private browsing cookie jar
return
value the cookies as a string, using the format of the 'Cookie' HTTP request header
hide
Used by Browser and by WebViewProvider implementations.

public synchronized java.lang.StringgetCookie(android.net.WebAddress uri)
Gets cookie(s) for a given uri so that it can be set to "cookie:" in http request header.

param
uri the WebAddress for which the cookies are requested
return
value the cookies as a string, using the format of the 'Cookie' HTTP request header
hide
Used by RequestHandle and by WebViewProvider implementations.

        return getCookie(uri.toString());
    
public abstract java.lang.StringgetCookie(java.lang.String url)
Gets the cookies for the given URL.

param
url the URL for which the cookies are requested
return
value the cookies as a string, using the format of the 'Cookie' HTTP request header

public static synchronized android.webkit.CookieManagergetInstance()
Gets the singleton CookieManager instance. If this method is used before the application instantiates a {@link WebView} instance, {@link CookieSyncManager#createInstance CookieSyncManager.createInstance(Context)} must be called first.

return
the singleton CookieManager instance

        return WebViewFactory.getProvider().getCookieManager();
    
public abstract booleanhasCookies()
Gets whether there are stored cookies.

return
true if there are stored cookies

public abstract booleanhasCookies(boolean privateBrowsing)
See {@link #hasCookies()}.

param
privateBrowsing whether to use the private browsing cookie jar
hide
Used by Browser and WebViewProvider implementations.

public abstract voidremoveAllCookie()
Removes all cookies.

deprecated
Use {@link #removeAllCookies(ValueCallback)} instead.

public abstract voidremoveAllCookies(ValueCallback callback)
Removes all cookies.

This method is asynchronous. If a {@link ValueCallback} is provided, {@link ValueCallback#onReceiveValue(T) onReceiveValue()} will be called on the current thread's {@link android.os.Looper} once the operation is complete. The value provided to the callback indicates whether any cookies were removed. You can pass {@code null} as the callback if you don't need to know when the operation completes or whether any cookies were removed, and in this case it is safe to call the method from a thread without a Looper.

param
callback a callback which is executed when the cookies have been removed

public abstract voidremoveExpiredCookie()
Removes all expired cookies.

deprecated
The WebView handles removing expired cookies automatically.

public abstract voidremoveSessionCookie()
Removes all session cookies, which are cookies without an expiration date.

deprecated
use {@link #removeSessionCookies(ValueCallback)} instead.

public abstract voidremoveSessionCookies(ValueCallback callback)
Removes all session cookies, which are cookies without an expiration date.

This method is asynchronous. If a {@link ValueCallback} is provided, {@link ValueCallback#onReceiveValue(T) onReceiveValue()} will be called on the current thread's {@link android.os.Looper} once the operation is complete. The value provided to the callback indicates whether any cookies were removed. You can pass {@code null} as the callback if you don't need to know when the operation completes or whether any cookie were removed, and in this case it is safe to call the method from a thread without a Looper.

param
callback a callback which is executed when the session cookies have been removed

public abstract voidsetAcceptCookie(boolean accept)
Sets whether the application's {@link WebView} instances should send and accept cookies. By default this is set to true and the WebView accepts cookies.

When this is true {@link CookieManager#setAcceptThirdPartyCookies setAcceptThirdPartyCookies} and {@link CookieManager#setAcceptFileSchemeCookies setAcceptFileSchemeCookies} can be used to control the policy for those specific types of cookie.

param
accept whether {@link WebView} instances should send and accept cookies

public static voidsetAcceptFileSchemeCookies(boolean accept)
Sets whether the application's {@link WebView} instances should send and accept cookies for file scheme URLs. Use of cookies with file scheme URLs is potentially insecure and turned off by default. Do not use this feature unless you can be sure that no unintentional sharing of cookie data can take place.

Note that calls to this method will have no effect if made after a {@link WebView} or CookieManager instance has been created.

        getInstance().setAcceptFileSchemeCookiesImpl(accept);
    
protected abstract voidsetAcceptFileSchemeCookiesImpl(boolean accept)
Implements {@link #setAcceptFileSchemeCookies(boolean)}.

hide
Only for use by WebViewProvider implementations

public abstract voidsetAcceptThirdPartyCookies(WebView webview, boolean accept)
Sets whether the {@link WebView} should allow third party cookies to be set. Allowing third party cookies is a per WebView policy and can be set differently on different WebView instances.

Apps that target {@link android.os.Build.VERSION_CODES#KITKAT} or below default to allowing third party cookies. Apps targeting {@link android.os.Build.VERSION_CODES#LOLLIPOP} or later default to disallowing third party cookies.

param
webview the {@link WebView} instance to set the cookie policy on
param
accept whether the {@link WebView} instance should accept third party cookies

public abstract voidsetCookie(java.lang.String url, java.lang.String value)
Sets a cookie for the given URL. Any existing cookie with the same host, path and name will be replaced with the new cookie. The cookie being set will be ignored if it is expired.

param
url the URL for which the cookie is to be set
param
value the cookie as a string, using the format of the 'Set-Cookie' HTTP response header

public abstract voidsetCookie(java.lang.String url, java.lang.String value, ValueCallback callback)
Sets a cookie for the given URL. Any existing cookie with the same host, path and name will be replaced with the new cookie. The cookie being set will be ignored if it is expired.

This method is asynchronous. If a {@link ValueCallback} is provided, {@link ValueCallback#onReceiveValue(T) onReceiveValue()} will be called on the current thread's {@link android.os.Looper} once the operation is complete. The value provided to the callback indicates whether the cookie was set successfully. You can pass {@code null} as the callback if you don't need to know when the operation completes or whether it succeeded, and in this case it is safe to call the method from a thread without a Looper.

param
url the URL for which the cookie is to be set
param
value the cookie as a string, using the format of the 'Set-Cookie' HTTP response header
param
callback a callback to be executed when the cookie has been set