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

Side by Side Diff: android_webview/java/src/org/chromium/android_webview/AwContents.java

Issue 52463004: Block media loading when AwSettings.setBlockNetworkLoads is true. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.android_webview; 5 package org.chromium.android_webview;
6 6
7 import android.content.ComponentCallbacks2; 7 import android.content.ComponentCallbacks2;
8 import android.content.Context;
9 import android.content.pm.PackageManager;
10 import android.content.res.Configuration; 8 import android.content.res.Configuration;
11 import android.graphics.Bitmap; 9 import android.graphics.Bitmap;
12 import android.graphics.Canvas; 10 import android.graphics.Canvas;
13 import android.graphics.Color; 11 import android.graphics.Color;
14 import android.graphics.Picture; 12 import android.graphics.Picture;
15 import android.graphics.Rect; 13 import android.graphics.Rect;
16 import android.graphics.drawable.Drawable;
17 import android.net.http.SslCertificate; 14 import android.net.http.SslCertificate;
18 import android.os.AsyncTask; 15 import android.os.AsyncTask;
19 import android.os.Build; 16 import android.os.Build;
20 import android.os.Bundle; 17 import android.os.Bundle;
21 import android.os.Message; 18 import android.os.Message;
22 import android.text.TextUtils; 19 import android.text.TextUtils;
23 import android.util.Log; 20 import android.util.Log;
24 import android.view.KeyEvent; 21 import android.view.KeyEvent;
25 import android.view.MotionEvent; 22 import android.view.MotionEvent;
26 import android.view.View; 23 import android.view.View;
27 import android.view.ViewGroup; 24 import android.view.ViewGroup;
28 import android.view.ViewTreeObserver;
29 import android.view.accessibility.AccessibilityEvent; 25 import android.view.accessibility.AccessibilityEvent;
30 import android.view.accessibility.AccessibilityNodeInfo; 26 import android.view.accessibility.AccessibilityNodeInfo;
31 import android.view.accessibility.AccessibilityNodeProvider; 27 import android.view.accessibility.AccessibilityNodeProvider;
32 import android.view.inputmethod.EditorInfo; 28 import android.view.inputmethod.EditorInfo;
33 import android.view.inputmethod.InputConnection; 29 import android.view.inputmethod.InputConnection;
34 import android.webkit.GeolocationPermissions; 30 import android.webkit.GeolocationPermissions;
35 import android.webkit.ValueCallback; 31 import android.webkit.ValueCallback;
36 import android.widget.OverScroller; 32 import android.widget.OverScroller;
37 33
38 import com.google.common.annotations.VisibleForTesting; 34 import com.google.common.annotations.VisibleForTesting;
39 35
40 import org.chromium.base.CalledByNative; 36 import org.chromium.base.CalledByNative;
41 import org.chromium.base.JNINamespace; 37 import org.chromium.base.JNINamespace;
42 import org.chromium.base.ThreadUtils; 38 import org.chromium.base.ThreadUtils;
43 import org.chromium.content.browser.ContentSettings; 39 import org.chromium.content.browser.ContentSettings;
44 import org.chromium.content.browser.ContentVideoView;
45 import org.chromium.content.browser.ContentViewClient; 40 import org.chromium.content.browser.ContentViewClient;
46 import org.chromium.content.browser.ContentViewCore; 41 import org.chromium.content.browser.ContentViewCore;
47 import org.chromium.content.browser.ContentViewStatics; 42 import org.chromium.content.browser.ContentViewStatics;
48 import org.chromium.content.browser.LoadUrlParams; 43 import org.chromium.content.browser.LoadUrlParams;
49 import org.chromium.content.browser.NavigationHistory; 44 import org.chromium.content.browser.NavigationHistory;
50 import org.chromium.content.browser.PageTransitionTypes; 45 import org.chromium.content.browser.PageTransitionTypes;
51 import org.chromium.content.common.CleanupReference; 46 import org.chromium.content.common.CleanupReference;
52 import org.chromium.components.navigation_interception.InterceptNavigationDelega te; 47 import org.chromium.components.navigation_interception.InterceptNavigationDelega te;
53 import org.chromium.components.navigation_interception.NavigationParams; 48 import org.chromium.components.navigation_interception.NavigationParams;
54 import org.chromium.net.GURLUtils;
55 import org.chromium.ui.gfx.DeviceDisplayInfo; 49 import org.chromium.ui.gfx.DeviceDisplayInfo;
56 50
57 import java.io.File; 51 import java.io.File;
58 import java.lang.annotation.Annotation; 52 import java.lang.annotation.Annotation;
59 import java.net.MalformedURLException; 53 import java.net.MalformedURLException;
60 import java.net.URL; 54 import java.net.URL;
61 import java.util.concurrent.Callable; 55 import java.util.concurrent.Callable;
62 import java.util.ArrayList; 56 import java.util.ArrayList;
63 import java.util.List; 57 import java.util.List;
64 58
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 * should fallback to the SW path. 131 * should fallback to the SW path.
138 */ 132 */
139 boolean requestDrawGL(Canvas canvas); 133 boolean requestDrawGL(Canvas canvas);
140 } 134 }
141 135
142 private int mNativeAwContents; 136 private int mNativeAwContents;
143 private final AwBrowserContext mBrowserContext; 137 private final AwBrowserContext mBrowserContext;
144 private final ViewGroup mContainerView; 138 private final ViewGroup mContainerView;
145 private ContentViewCore mContentViewCore; 139 private ContentViewCore mContentViewCore;
146 private final AwContentsClient mContentsClient; 140 private final AwContentsClient mContentsClient;
141 private final AwContentViewClient mContentViewClient;
147 private final AwContentsClientBridge mContentsClientBridge; 142 private final AwContentsClientBridge mContentsClientBridge;
148 private final AwWebContentsDelegate mWebContentsDelegate; 143 private final AwWebContentsDelegate mWebContentsDelegate;
149 private final AwContentsIoThreadClient mIoThreadClient; 144 private final AwContentsIoThreadClient mIoThreadClient;
150 private final InterceptNavigationDelegateImpl mInterceptNavigationDelegate; 145 private final InterceptNavigationDelegateImpl mInterceptNavigationDelegate;
151 private final InternalAccessDelegate mInternalAccessAdapter; 146 private final InternalAccessDelegate mInternalAccessAdapter;
152 private final AwLayoutSizer mLayoutSizer; 147 private final AwLayoutSizer mLayoutSizer;
153 private final AwZoomControls mZoomControls; 148 private final AwZoomControls mZoomControls;
154 private final AwScrollOffsetManager mScrollOffsetManager; 149 private final AwScrollOffsetManager mScrollOffsetManager;
155 private OverScrollGlow mOverScrollGlow; 150 private OverScrollGlow mOverScrollGlow;
156 // This can be accessed on any thread after construction. See AwContentsIoTh readClient. 151 // This can be accessed on any thread after construction. See AwContentsIoTh readClient.
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 isAccessFromFileURLsGrantedByDefault, supportsLegacyQuir ks)); 519 isAccessFromFileURLsGrantedByDefault, supportsLegacyQuir ks));
525 } 520 }
526 521
527 public AwContents(AwBrowserContext browserContext, ViewGroup containerView, 522 public AwContents(AwBrowserContext browserContext, ViewGroup containerView,
528 InternalAccessDelegate internalAccessAdapter, AwContentsClient conte ntsClient, 523 InternalAccessDelegate internalAccessAdapter, AwContentsClient conte ntsClient,
529 AwLayoutSizer layoutSizer, AwSettings settings) { 524 AwLayoutSizer layoutSizer, AwSettings settings) {
530 mBrowserContext = browserContext; 525 mBrowserContext = browserContext;
531 mContainerView = containerView; 526 mContainerView = containerView;
532 mInternalAccessAdapter = internalAccessAdapter; 527 mInternalAccessAdapter = internalAccessAdapter;
533 mContentsClient = contentsClient; 528 mContentsClient = contentsClient;
529 mContentViewClient = new AwContentViewClient(contentsClient, settings);
534 mLayoutSizer = layoutSizer; 530 mLayoutSizer = layoutSizer;
535 mSettings = settings; 531 mSettings = settings;
536 mDIPScale = DeviceDisplayInfo.create(mContainerView.getContext()).getDIP Scale(); 532 mDIPScale = DeviceDisplayInfo.create(mContainerView.getContext()).getDIP Scale();
537 mLayoutSizer.setDelegate(new AwLayoutSizerDelegate()); 533 mLayoutSizer.setDelegate(new AwLayoutSizerDelegate());
538 mLayoutSizer.setDIPScale(mDIPScale); 534 mLayoutSizer.setDIPScale(mDIPScale);
539 mWebContentsDelegate = new AwWebContentsDelegateAdapter(contentsClient, mContainerView); 535 mWebContentsDelegate = new AwWebContentsDelegateAdapter(contentsClient, mContainerView);
540 mContentsClientBridge = new AwContentsClientBridge(contentsClient); 536 mContentsClientBridge = new AwContentsClientBridge(contentsClient);
541 mZoomControls = new AwZoomControls(this); 537 mZoomControls = new AwZoomControls(this);
542 mIoThreadClient = new IoThreadClientImpl(); 538 mIoThreadClient = new IoThreadClientImpl();
543 mInterceptNavigationDelegate = new InterceptNavigationDelegateImpl(); 539 mInterceptNavigationDelegate = new InterceptNavigationDelegateImpl();
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
590 // each other, we should update |mBrowserContext| according to the newly received native 586 // each other, we should update |mBrowserContext| according to the newly received native
591 // WebContent's browser context. 587 // WebContent's browser context.
592 588
593 // The native side object has been bound to this java instance, so now i s the time to 589 // The native side object has been bound to this java instance, so now i s the time to
594 // bind all the native->java relationships. 590 // bind all the native->java relationships.
595 mCleanupReference = new CleanupReference(this, new DestroyRunnable(mNati veAwContents)); 591 mCleanupReference = new CleanupReference(this, new DestroyRunnable(mNati veAwContents));
596 592
597 int nativeWebContents = nativeGetWebContents(mNativeAwContents); 593 int nativeWebContents = nativeGetWebContents(mNativeAwContents);
598 mContentViewCore = createAndInitializeContentViewCore( 594 mContentViewCore = createAndInitializeContentViewCore(
599 mContainerView, mInternalAccessAdapter, nativeWebContents, 595 mContainerView, mInternalAccessAdapter, nativeWebContents,
600 new AwGestureStateListener(), mContentsClient.getContentViewClie nt(), 596 new AwGestureStateListener(), mContentViewClient, mZoomControls) ;
601 mZoomControls);
602 nativeSetJavaPeers(mNativeAwContents, this, mWebContentsDelegate, mConte ntsClientBridge, 597 nativeSetJavaPeers(mNativeAwContents, this, mWebContentsDelegate, mConte ntsClientBridge,
603 mIoThreadClient, mInterceptNavigationDelegate); 598 mIoThreadClient, mInterceptNavigationDelegate);
604 mContentsClient.installWebContentsObserver(mContentViewCore); 599 mContentsClient.installWebContentsObserver(mContentViewCore);
605 mSettings.setWebContents(nativeWebContents); 600 mSettings.setWebContents(nativeWebContents);
606 nativeSetDipScale(mNativeAwContents, (float) mDIPScale); 601 nativeSetDipScale(mNativeAwContents, (float) mDIPScale);
607 updateGlobalVisibleRect(); 602 updateGlobalVisibleRect();
608 603
609 // The only call to onShow. onHide should never be called. 604 // The only call to onShow. onHide should never be called.
610 mContentViewCore.onShow(); 605 mContentViewCore.onShow();
611 } 606 }
(...skipping 1467 matching lines...) Expand 10 before | Expand all | Expand 10 after
2079 private native int nativeCapturePicture(int nativeAwContents, int width, int height); 2074 private native int nativeCapturePicture(int nativeAwContents, int width, int height);
2080 private native void nativeEnableOnNewPicture(int nativeAwContents, boolean e nabled); 2075 private native void nativeEnableOnNewPicture(int nativeAwContents, boolean e nabled);
2081 2076
2082 private native void nativeInvokeGeolocationCallback( 2077 private native void nativeInvokeGeolocationCallback(
2083 int nativeAwContents, boolean value, String requestingFrame); 2078 int nativeAwContents, boolean value, String requestingFrame);
2084 2079
2085 private native void nativeSetJsOnlineProperty(int nativeAwContents, boolean networkUp); 2080 private native void nativeSetJsOnlineProperty(int nativeAwContents, boolean networkUp);
2086 2081
2087 private native void nativeTrimMemory(int nativeAwContents, int level); 2082 private native void nativeTrimMemory(int nativeAwContents, int level);
2088 } 2083 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698