123 lines
3.7 KiB
Java
Executable File
123 lines
3.7 KiB
Java
Executable File
// Copyright 2012 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
package org.chromium.android_webview;
|
|
|
|
import org.chromium.base.JNINamespace;
|
|
|
|
/**
|
|
* AwCookieManager manages cookies according to RFC2109 spec.
|
|
*
|
|
* Methods in this class are thread safe.
|
|
*/
|
|
@JNINamespace("android_webview")
|
|
public final class AwCookieManager {
|
|
/**
|
|
* Control whether cookie is enabled or disabled
|
|
* @param accept TRUE if accept cookie
|
|
*/
|
|
public void setAcceptCookie(boolean accept) {
|
|
nativeSetAcceptCookie(accept);
|
|
}
|
|
|
|
/**
|
|
* Return whether cookie is enabled
|
|
* @return TRUE if accept cookie
|
|
*/
|
|
public boolean acceptCookie() {
|
|
return nativeAcceptCookie();
|
|
}
|
|
|
|
/**
|
|
* Set cookie for a given url. The old cookie with same host/path/name will
|
|
* be removed. The new cookie will be added if it is not expired or it does
|
|
* not have expiration which implies it is session cookie.
|
|
* @param url The url which cookie is set for
|
|
* @param value The value for set-cookie: in http response header
|
|
*/
|
|
public void setCookie(final String url, final String value) {
|
|
nativeSetCookie(url, value);
|
|
}
|
|
|
|
/**
|
|
* Get cookie(s) for a given url so that it can be set to "cookie:" in http
|
|
* request header.
|
|
* @param url The url needs cookie
|
|
* @return The cookies in the format of NAME=VALUE [; NAME=VALUE]
|
|
*/
|
|
public String getCookie(final String url) {
|
|
String cookie = nativeGetCookie(url.toString());
|
|
// Return null if the string is empty to match legacy behavior
|
|
return cookie == null || cookie.trim().isEmpty() ? null : cookie;
|
|
}
|
|
|
|
/**
|
|
* Remove all session cookies, which are cookies without expiration date
|
|
*/
|
|
public void removeSessionCookie() {
|
|
nativeRemoveSessionCookie();
|
|
}
|
|
|
|
/**
|
|
* Remove all cookies
|
|
*/
|
|
public void removeAllCookie() {
|
|
nativeRemoveAllCookie();
|
|
}
|
|
|
|
/**
|
|
* Return true if there are stored cookies.
|
|
*/
|
|
public boolean hasCookies() {
|
|
return nativeHasCookies();
|
|
}
|
|
|
|
/**
|
|
* Remove all expired cookies
|
|
*/
|
|
public void removeExpiredCookie() {
|
|
nativeRemoveExpiredCookie();
|
|
}
|
|
|
|
public void flushCookieStore() {
|
|
nativeFlushCookieStore();
|
|
}
|
|
|
|
/**
|
|
* Whether cookies are accepted for file scheme URLs.
|
|
*/
|
|
public boolean allowFileSchemeCookies() {
|
|
return nativeAllowFileSchemeCookies();
|
|
}
|
|
|
|
/**
|
|
* Sets whether cookies are accepted for file scheme URLs.
|
|
*
|
|
* Use of cookies with file scheme URLs is potentially insecure. Do not use this feature unless
|
|
* you can be sure that no unintentional sharing of cookie data can take place.
|
|
* <p>
|
|
* Note that calls to this method will have no effect if made after a WebView or CookieManager
|
|
* instance has been created.
|
|
*/
|
|
public void setAcceptFileSchemeCookies(boolean accept) {
|
|
nativeSetAcceptFileSchemeCookies(accept);
|
|
}
|
|
|
|
private native void nativeSetAcceptCookie(boolean accept);
|
|
private native boolean nativeAcceptCookie();
|
|
|
|
private native void nativeSetCookie(String url, String value);
|
|
private native String nativeGetCookie(String url);
|
|
|
|
private native void nativeRemoveSessionCookie();
|
|
private native void nativeRemoveAllCookie();
|
|
private native void nativeRemoveExpiredCookie();
|
|
private native void nativeFlushCookieStore();
|
|
|
|
private native boolean nativeHasCookies();
|
|
|
|
private native boolean nativeAllowFileSchemeCookies();
|
|
private native void nativeSetAcceptFileSchemeCookies(boolean accept);
|
|
}
|