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) { |