Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6dfef1b8 authored by Steve Block's avatar Steve Block Committed by Android (Google) Code Review
Browse files

Merge "Adds CookieManager methods to configure policy for cookies for file scheme URLs"

parents 72f0224f 16d041cc
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -236370,6 +236370,17 @@
 visibility="public"
>
</method>
<method name="allowFileSchemeCookies"
 return="boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getCookie"
 return="java.lang.String"
 abstract="false"
@@ -236451,6 +236462,19 @@
<parameter name="accept" type="boolean">
</parameter>
</method>
<method name="setAcceptFileSchemeCookies"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="accept" type="boolean">
</parameter>
</method>
<method name="setCookie"
 return="void"
 abstract="false"
+28 −0
Original line number Diff line number Diff line
@@ -656,6 +656,32 @@ public final class CookieManager {
        }
    }

    /**
     * Whether cookies are accepted for file scheme URLs.
     */
    public static boolean allowFileSchemeCookies() {
        if (JniUtil.useChromiumHttpStack()) {
            return nativeAcceptFileSchemeCookies();
        } else {
            return true;
        }
    }

    /**
     * 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 static void setAcceptFileSchemeCookies(boolean accept) {
        if (JniUtil.useChromiumHttpStack()) {
            nativeSetAcceptFileSchemeCookies(accept);
        }
    }

    /**
     * Package level api, called from CookieSyncManager
     *
@@ -1114,4 +1140,6 @@ public final class CookieManager {
    private static native void nativeSetAcceptCookie(boolean accept);
    private static native void nativeSetCookie(String url, String value);
    private static native void nativeFlushCookieStore();
    private static native boolean nativeAcceptFileSchemeCookies();
    private static native void nativeSetAcceptFileSchemeCookies(boolean accept);
}
+2 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import android.os.Message;
import android.util.Log;
import android.view.ViewGroup;
import android.view.Window;
import android.webkit.CookieManager;
import android.webkit.ConsoleMessage;
import android.webkit.CookieManager;
import android.webkit.GeolocationPermissions;
@@ -141,6 +142,7 @@ public class TestShellActivity extends Activity implements LayoutTestController
        contentView.setOrientation(LinearLayout.VERTICAL);
        setContentView(contentView);

        CookieManager.setAcceptFileSchemeCookies(true);
        mWebView = new WebView(this);
        mEventSender = new WebViewEventSender(mWebView);
        mCallbackProxy = new CallbackProxy(mEventSender, this);