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

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

Issue 2708703004: Reland "Refactor ContentViewClient (4/6)" (Closed)
Patch Set: rebased Created 3 years, 10 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/AwViewAndroidDelegate.java
diff --git a/android_webview/java/src/org/chromium/android_webview/AwViewAndroidDelegate.java b/android_webview/java/src/org/chromium/android_webview/AwViewAndroidDelegate.java
index 80753a42d759693bfee599c44e4f3551e5c60f2b..cd1d0dc77d063bfa013e3f9e1c4aea786aaf6302 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwViewAndroidDelegate.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwViewAndroidDelegate.java
@@ -4,6 +4,7 @@
package org.chromium.android_webview;
+import android.content.Intent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
@@ -21,6 +22,9 @@ import java.util.Map.Entry;
* Implementation of the abstract class {@link ViewAndroidDelegate} for WebView.
*/
public class AwViewAndroidDelegate extends ViewAndroidDelegate {
+ /** Used for logging. */
+ private static final String TAG = "AwVAD";
+
/**
* The current container view. This view can be updated with
* {@link #updateCurrentContainerView()}.
@@ -33,6 +37,7 @@ public class AwViewAndroidDelegate extends ViewAndroidDelegate {
*/
private final Map<View, Position> mAnchorViews = new LinkedHashMap<>();
+ private final AwContentsClient mContentsClient;
private final RenderCoordinates mRenderCoordinates;
/**
@@ -59,8 +64,10 @@ public class AwViewAndroidDelegate extends ViewAndroidDelegate {
}
@VisibleForTesting
- public AwViewAndroidDelegate(ViewGroup containerView, RenderCoordinates renderCoordinates) {
+ public AwViewAndroidDelegate(ViewGroup containerView, AwContentsClient contentsClient,
+ RenderCoordinates renderCoordinates) {
mContainerView = containerView;
+ mContentsClient = contentsClient;
mRenderCoordinates = renderCoordinates;
}
@@ -137,6 +144,24 @@ public class AwViewAndroidDelegate extends ViewAndroidDelegate {
}
@Override
+ public void onBackgroundColorChanged(int color) {
+ mContentsClient.onBackgroundColorChanged(color);
+ }
+
+ @Override
+ public void startContentIntent(Intent intent, String contentUrl, boolean isMainFrame) {
+ // Make sure that this URL is a valid scheme for this callback if interpreted as an intent,
+ // even though we don't dispatch it as an intent here, because many WebView apps will once
+ // it reaches them.
+ assert intent != null;
+
+ // Comes from WebViewImpl::detectContentOnTouch in Blink, so must be user-initiated, and
+ // isn't a redirect.
+ mContentsClient.shouldIgnoreNavigation(
+ mContainerView.getContext(), contentUrl, isMainFrame, true, false);
+ }
+
+ @Override
public ViewGroup getContainerView() {
return mContainerView;
}

Powered by Google App Engine
This is Rietveld 408576698