| // 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.android_webview.AwContentsClient; |
| import org.chromium.base.CalledByNative; |
| import org.chromium.base.JNINamespace; |
| |
| import java.util.HashMap; |
| |
| /** |
| * Delegate for handling callbacks. All methods are called on the IO thread. |
| * |
| * You should create a separate instance for every WebContents that requires the |
| * provided functionality. |
| */ |
| @JNINamespace("android_webview") |
| public abstract class AwContentsIoThreadClient { |
| @CalledByNative |
| public abstract int getCacheMode(); |
| |
| @CalledByNative |
| public abstract boolean shouldBlockContentUrls(); |
| |
| @CalledByNative |
| public abstract boolean shouldBlockFileUrls(); |
| |
| @CalledByNative |
| public abstract boolean shouldBlockNetworkLoads(); |
| |
| @CalledByNative |
| public abstract boolean shouldAcceptThirdPartyCookies(); |
| |
| @CalledByNative |
| public abstract void onDownloadStart(String url, String userAgent, |
| String contentDisposition, String mimeType, long contentLength); |
| |
| @CalledByNative |
| public abstract void newLoginRequest(String realm, String account, String args); |
| |
| public abstract AwWebResourceResponse shouldInterceptRequest( |
| AwContentsClient.ShouldInterceptRequestParams params); |
| |
| // Protected methods --------------------------------------------------------------------------- |
| |
| @CalledByNative |
| protected AwWebResourceResponse shouldInterceptRequest(String url, boolean isMainFrame, |
| boolean hasUserGesture, String method, String[] requestHeaderNames, |
| String[] requestHeaderValues) { |
| AwContentsClient.ShouldInterceptRequestParams params = |
| new AwContentsClient.ShouldInterceptRequestParams(); |
| params.url = url; |
| params.isMainFrame = isMainFrame; |
| params.hasUserGesture = hasUserGesture; |
| params.method = method; |
| params.requestHeaders = new HashMap<String, String>(requestHeaderNames.length); |
| for (int i = 0; i < requestHeaderNames.length; ++i) { |
| params.requestHeaders.put(requestHeaderNames[i], requestHeaderValues[i]); |
| } |
| return shouldInterceptRequest(params); |
| } |
| } |