Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1493)

Unified Diff: android_webview/java/src/org/chromium/android_webview/AwContentsClient.java

Issue 976403003: Make shouldInterceptRequest thinner in glue (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: android_webview/java/src/org/chromium/android_webview/AwContentsClient.java
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContentsClient.java b/android_webview/java/src/org/chromium/android_webview/AwContentsClient.java
index a81b2ed48452b74ec0e6dcd16ee959e6c00b831f..4fd9f44e72752a29e44c3561ba48824ebd8fa05e 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContentsClient.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContentsClient.java
@@ -19,11 +19,15 @@ import android.webkit.ConsoleMessage;
import android.webkit.GeolocationPermissions;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
+import android.webkit.WebResourceRequest;
+import android.webkit.WebResourceResponse;
import org.chromium.android_webview.permission.AwPermissionRequest;
+import org.chromium.base.VisibleForTesting;
import java.security.Principal;
import java.util.HashMap;
+import java.util.Map;
/**
* Base-class that an AwContents embedder derives from to receive callbacks.
@@ -79,17 +83,56 @@ public abstract class AwContentsClient {
/**
* Parameters for the {@link AwContentsClient#shouldInterceptRequest} method.
*/
- public static class AwWebResourceRequest {
+ public static class WebResourceRequestImpl implements WebResourceRequest {
// Url of the request.
- public String url;
+ public String mUrl;
mnaganov (inactive) 2015/03/06 09:58:44 Should these fields become private and final?
// Is this for the main frame or a child iframe?
- public boolean isMainFrame;
+ public boolean mIsMainFrame;
// Was a gesture associated with the request? Don't trust can easily be spoofed.
- public boolean hasUserGesture;
+ public boolean mHasUserGesture;
// Method used (GET/POST/OPTIONS)
- public String method;
+ public String mMethod;
// Headers that would have been sent to server.
- public HashMap<String, String> requestHeaders;
+ public Map<String, String> mRequestHeaders;
+
+ public WebResourceRequestImpl(String url, boolean isMainFrame, boolean hasUserGesture,
+ String method, HashMap<String, String> requestHeaders) {
+ mUrl = url;
+ mIsMainFrame = isMainFrame;
+ mHasUserGesture = hasUserGesture;
+ mMethod = method;
+ mRequestHeaders = requestHeaders;
+ }
+
+ @VisibleForTesting
+ public String getUrlString() {
+ return mUrl;
+ }
+
+ @Override
+ public Uri getUrl() {
+ return Uri.parse(mUrl);
+ }
+
+ @Override
+ public boolean isForMainFrame() {
+ return mIsMainFrame;
+ }
+
+ @Override
+ public boolean hasGesture() {
mnaganov (inactive) 2015/03/06 09:58:44 Let's stick to hasUserGesture, as it is traceable
+ return mHasUserGesture;
+ }
+
+ @Override
+ public String getMethod() {
+ return mMethod;
+ }
+
+ @Override
+ public Map<String, String> getRequestHeaders() {
+ return mRequestHeaders;
+ }
}
public abstract void getVisitedHistory(ValueCallback<String[]> callback);
@@ -98,8 +141,7 @@ public abstract class AwContentsClient {
public abstract void onProgressChanged(int progress);
- public abstract AwWebResourceResponse shouldInterceptRequest(
- AwWebResourceRequest request);
+ public abstract WebResourceResponse shouldInterceptRequest(WebResourceRequestImpl request);
public abstract boolean shouldOverrideKeyEvent(KeyEvent event);

Powered by Google App Engine
This is Rietveld 408576698