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

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

Issue 1277563002: Cherry-pick: Deny the geolocation permission request by default. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@2454
Patch Set: Created 5 years, 4 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 unified diff | Download patch
« no previous file with comments | « no previous file | android_webview/java/src/org/chromium/android_webview/permission/AwGeolocationCallback.java » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.annotation.SuppressLint; 7 import android.annotation.SuppressLint;
8 import android.app.Activity; 8 import android.app.Activity;
9 import android.content.ComponentCallbacks2; 9 import android.content.ComponentCallbacks2;
10 import android.content.Context; 10 import android.content.Context;
(...skipping 19 matching lines...) Expand all
30 import android.view.KeyEvent; 30 import android.view.KeyEvent;
31 import android.view.MotionEvent; 31 import android.view.MotionEvent;
32 import android.view.View; 32 import android.view.View;
33 import android.view.ViewGroup; 33 import android.view.ViewGroup;
34 import android.view.accessibility.AccessibilityEvent; 34 import android.view.accessibility.AccessibilityEvent;
35 import android.view.accessibility.AccessibilityNodeInfo; 35 import android.view.accessibility.AccessibilityNodeInfo;
36 import android.view.accessibility.AccessibilityNodeProvider; 36 import android.view.accessibility.AccessibilityNodeProvider;
37 import android.view.animation.AnimationUtils; 37 import android.view.animation.AnimationUtils;
38 import android.view.inputmethod.EditorInfo; 38 import android.view.inputmethod.EditorInfo;
39 import android.view.inputmethod.InputConnection; 39 import android.view.inputmethod.InputConnection;
40 import android.webkit.GeolocationPermissions;
41 import android.webkit.JavascriptInterface; 40 import android.webkit.JavascriptInterface;
42 import android.webkit.ValueCallback; 41 import android.webkit.ValueCallback;
43 import android.widget.OverScroller; 42 import android.widget.OverScroller;
44 43
44 import org.chromium.android_webview.permission.AwGeolocationCallback;
45 import org.chromium.android_webview.permission.AwPermissionRequest; 45 import org.chromium.android_webview.permission.AwPermissionRequest;
46 import org.chromium.base.CalledByNative; 46 import org.chromium.base.CalledByNative;
47 import org.chromium.base.JNINamespace; 47 import org.chromium.base.JNINamespace;
48 import org.chromium.base.ThreadUtils; 48 import org.chromium.base.ThreadUtils;
49 import org.chromium.base.TraceEvent; 49 import org.chromium.base.TraceEvent;
50 import org.chromium.base.VisibleForTesting; 50 import org.chromium.base.VisibleForTesting;
51 import org.chromium.base.annotations.SuppressFBWarnings; 51 import org.chromium.base.annotations.SuppressFBWarnings;
52 import org.chromium.components.navigation_interception.InterceptNavigationDelega te; 52 import org.chromium.components.navigation_interception.InterceptNavigationDelega te;
53 import org.chromium.components.navigation_interception.NavigationParams; 53 import org.chromium.components.navigation_interception.NavigationParams;
54 import org.chromium.content.browser.ContentViewClient; 54 import org.chromium.content.browser.ContentViewClient;
(...skipping 2348 matching lines...) Expand 10 before | Expand all | Expand 10 after
2403 String path, long size, ValueCallback<String> callback) { 2403 String path, long size, ValueCallback<String> callback) {
2404 if (callback == null) return; 2404 if (callback == null) return;
2405 callback.onReceiveValue(size < 0 ? null : path); 2405 callback.onReceiveValue(size < 0 ? null : path);
2406 } 2406 }
2407 2407
2408 @CalledByNative 2408 @CalledByNative
2409 private void onReceivedHttpAuthRequest(AwHttpAuthHandler handler, String hos t, String realm) { 2409 private void onReceivedHttpAuthRequest(AwHttpAuthHandler handler, String hos t, String realm) {
2410 mContentsClient.onReceivedHttpAuthRequest(handler, host, realm); 2410 mContentsClient.onReceivedHttpAuthRequest(handler, host, realm);
2411 } 2411 }
2412 2412
2413 private class AwGeolocationCallback implements GeolocationPermissions.Callba ck { 2413 public AwGeolocationPermissions getGeolocationPermissions() {
2414 return mBrowserContext.getGeolocationPermissions();
2415 }
2414 2416
2415 @Override 2417 public void invokeGeolocationCallback(boolean value, String requestingFrame) {
2416 public void invoke(final String origin, final boolean allow, final boole an retain) { 2418 if (isDestroyed()) return;
2417 ThreadUtils.runOnUiThread(new Runnable() { 2419 nativeInvokeGeolocationCallback(mNativeAwContents, value, requestingFram e);
2418 @Override
2419 public void run() {
2420 if (retain) {
2421 if (allow) {
2422 mBrowserContext.getGeolocationPermissions().allow(or igin);
2423 } else {
2424 mBrowserContext.getGeolocationPermissions().deny(ori gin);
2425 }
2426 }
2427 if (isDestroyed()) return;
2428 nativeInvokeGeolocationCallback(mNativeAwContents, allow, or igin);
2429 }
2430 });
2431 }
2432 } 2420 }
2433 2421
2434 @CalledByNative 2422 @CalledByNative
2435 private void onGeolocationPermissionsShowPrompt(String origin) { 2423 private void onGeolocationPermissionsShowPrompt(String origin) {
2436 if (isDestroyed()) return; 2424 if (isDestroyed()) return;
2437 AwGeolocationPermissions permissions = mBrowserContext.getGeolocationPer missions(); 2425 AwGeolocationPermissions permissions = mBrowserContext.getGeolocationPer missions();
2438 // Reject if geoloaction is disabled, or the origin has a retained deny 2426 // Reject if geoloaction is disabled, or the origin has a retained deny
2439 if (!mSettings.getGeolocationEnabled()) { 2427 if (!mSettings.getGeolocationEnabled()) {
2440 nativeInvokeGeolocationCallback(mNativeAwContents, false, origin); 2428 nativeInvokeGeolocationCallback(mNativeAwContents, false, origin);
2441 return; 2429 return;
2442 } 2430 }
2443 // Allow if the origin has a retained allow 2431 // Allow if the origin has a retained allow
2444 if (permissions.hasOrigin(origin)) { 2432 if (permissions.hasOrigin(origin)) {
2445 nativeInvokeGeolocationCallback(mNativeAwContents, permissions.isOri ginAllowed(origin), 2433 nativeInvokeGeolocationCallback(mNativeAwContents, permissions.isOri ginAllowed(origin),
2446 origin); 2434 origin);
2447 return; 2435 return;
2448 } 2436 }
2449 mContentsClient.onGeolocationPermissionsShowPrompt( 2437 mContentsClient.onGeolocationPermissionsShowPrompt(
2450 origin, new AwGeolocationCallback()); 2438 origin, new AwGeolocationCallback(origin, this));
2451 } 2439 }
2452 2440
2453 @CalledByNative 2441 @CalledByNative
2454 private void onGeolocationPermissionsHidePrompt() { 2442 private void onGeolocationPermissionsHidePrompt() {
2455 mContentsClient.onGeolocationPermissionsHidePrompt(); 2443 mContentsClient.onGeolocationPermissionsHidePrompt();
2456 } 2444 }
2457 2445
2458 @CalledByNative 2446 @CalledByNative
2459 private void onPermissionRequest(AwPermissionRequest awPermissionRequest) { 2447 private void onPermissionRequest(AwPermissionRequest awPermissionRequest) {
2460 mContentsClient.onPermissionRequest(awPermissionRequest); 2448 mContentsClient.onPermissionRequest(awPermissionRequest);
(...skipping 643 matching lines...) Expand 10 before | Expand all | Expand 10 after
3104 private native void nativeCreatePdfExporter(long nativeAwContents, AwPdfExpo rter awPdfExporter); 3092 private native void nativeCreatePdfExporter(long nativeAwContents, AwPdfExpo rter awPdfExporter);
3105 3093
3106 private native void nativePreauthorizePermission(long nativeAwContents, Stri ng origin, 3094 private native void nativePreauthorizePermission(long nativeAwContents, Stri ng origin,
3107 long resources); 3095 long resources);
3108 3096
3109 private native void nativePostMessageToFrame(long nativeAwContents, String f rameId, 3097 private native void nativePostMessageToFrame(long nativeAwContents, String f rameId,
3110 String message, String targetOrigin, int[] msgPorts); 3098 String message, String targetOrigin, int[] msgPorts);
3111 3099
3112 private native void nativeCreateMessageChannel(long nativeAwContents, AwMess agePort[] ports); 3100 private native void nativeCreateMessageChannel(long nativeAwContents, AwMess agePort[] ports);
3113 } 3101 }
OLDNEW
« no previous file with comments | « no previous file | android_webview/java/src/org/chromium/android_webview/permission/AwGeolocationCallback.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698