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

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

Issue 11763002: Implementing native chromium GeolocationPermissionContext (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Misc fixes Created 7 years, 11 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/AwContents.java
diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
index 27038d6798e536d1ea791b897a76ef8b924ee27e..17683d4cb34231214b32bff401fe968336fd715a 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
@@ -21,6 +21,7 @@ import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
+import android.webkit.GeolocationPermissions;
import android.webkit.ValueCallback;
import org.chromium.base.CalledByNative;
@@ -33,6 +34,7 @@ import org.chromium.content.browser.NavigationHistory;
import org.chromium.content.browser.PageTransitionTypes;
import org.chromium.content.common.CleanupReference;
import org.chromium.content.components.navigation_interception.InterceptNavigationDelegate;
+import org.chromium.net.GURLUtils;
import org.chromium.net.X509Util;
import org.chromium.ui.gfx.NativeWindow;
@@ -831,6 +833,35 @@ public class AwContents {
mContentsClient.onReceivedHttpAuthRequest(handler, host, realm);
}
+ private static class ChromiumGeolocationCallback implements GeolocationPermissions.Callback {
+ final int mRenderProcessId;
+ final int mRenderViewId;
+ final int mBridgeId;
+ final String mRequestingFrame;
+
+ private ChromiumGeolocationCallback(int renderProcessId, int renderViewId, int bridgeId,
+ String requestingFrame) {
+ mRenderProcessId = renderProcessId;
+ mRenderViewId = renderViewId;
+ mBridgeId = bridgeId;
+ mRequestingFrame = requestingFrame;
+ }
+
+ @Override
+ public void invoke(String origin, boolean allow, boolean retain) {
+ // TODO(kristianm): Implement callback handling
+ }
+ }
+
+ @CalledByNative
+ private void onGeolocationPermissionsShowPrompt(int renderProcessId, int renderViewId,
+ int bridgeId, String requestingFrame) {
+ // TODO(kristianm): Check with GeolocationPermissions if origin already has a policy set
+ mContentsClient.onGeolocationPermissionsShowPrompt(GURLUtils.getOrigin(requestingFrame),
+ new ChromiumGeolocationCallback(renderProcessId, renderViewId, bridgeId,
+ requestingFrame));
+ }
+
@CalledByNative
public void onFindResultReceived(int activeMatchOrdinal, int numberOfMatches,
boolean isDoneCounting) {

Powered by Google App Engine
This is Rietveld 408576698