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

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

Issue 12211047: Implementing geolocation for the Android Webview (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added const Created 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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.res.Configuration; 7 import android.content.res.Configuration;
8 import android.graphics.Bitmap; 8 import android.graphics.Bitmap;
9 import android.graphics.Canvas; 9 import android.graphics.Canvas;
10 import android.graphics.Color; 10 import android.graphics.Color;
(...skipping 840 matching lines...) Expand 10 before | Expand all | Expand 10 after
851 String path, long size, ValueCallback<String> callback) { 851 String path, long size, ValueCallback<String> callback) {
852 if (callback == null) return; 852 if (callback == null) return;
853 callback.onReceiveValue(size < 0 ? null : path); 853 callback.onReceiveValue(size < 0 ? null : path);
854 } 854 }
855 855
856 @CalledByNative 856 @CalledByNative
857 private void onReceivedHttpAuthRequest(AwHttpAuthHandler handler, String hos t, String realm) { 857 private void onReceivedHttpAuthRequest(AwHttpAuthHandler handler, String hos t, String realm) {
858 mContentsClient.onReceivedHttpAuthRequest(handler, host, realm); 858 mContentsClient.onReceivedHttpAuthRequest(handler, host, realm);
859 } 859 }
860 860
861 private static class ChromiumGeolocationCallback implements GeolocationPermi ssions.Callback { 861 private class AwGeolocationCallback implements GeolocationPermissions.Callba ck {
862 final int mRenderProcessId; 862 private final AwGeolocationPermissions mGeolocationPermissions;
863 final int mRenderViewId;
864 final int mBridgeId;
865 final String mRequestingFrame;
866 863
867 private ChromiumGeolocationCallback(int renderProcessId, int renderViewI d, int bridgeId, 864 private AwGeolocationCallback(AwGeolocationPermissions geolocationPermis sions) {
868 String requestingFrame) { 865 mGeolocationPermissions = geolocationPermissions;
869 mRenderProcessId = renderProcessId;
870 mRenderViewId = renderViewId;
871 mBridgeId = bridgeId;
872 mRequestingFrame = requestingFrame;
873 } 866 }
874 867
875 @Override 868 @Override
876 public void invoke(String origin, boolean allow, boolean retain) { 869 public void invoke(final String origin, final boolean allow, final boole an retain) {
877 // TODO(kristianm): Implement callback handling 870 ThreadUtils.runOnUiThread(new Runnable() {
871 @Override
872 public void run() {
873 if (retain) {
874 if (allow) {
875 mGeolocationPermissions.allow(origin);
876 } else {
877 mGeolocationPermissions.deny(origin);
878 }
879 }
880 nativeInvokeGeolocationCallback(mNativeAwContents, allow, or igin);
881 }
882 });
878 } 883 }
879 } 884 }
880 885
881 @CalledByNative 886 @CalledByNative
882 private void onGeolocationPermissionsShowPrompt(int renderProcessId, int ren derViewId, 887 private void onGeolocationPermissionsShowPrompt(String origin) {
883 int bridgeId, String requestingFrame) { 888 AwGeolocationPermissions permissions = AwGeolocationPermissions.getInsta nce();
884 // TODO(kristianm): Check with GeolocationPermissions if origin already has a policy set 889 // Reject if geoloaction is disabled, or the origin has a retained deny
885 mContentsClient.onGeolocationPermissionsShowPrompt(GURLUtils.getOrigin(r equestingFrame), 890 if (!mSettings.getGeolocationEnabled()) {
886 new ChromiumGeolocationCallback(renderProcessId, renderViewId, b ridgeId, 891 nativeInvokeGeolocationCallback(mNativeAwContents, false, origin);
887 requestingFrame)); 892 return;
893 }
894 // Allow if the origin has a retained allow
895 if (permissions.hasOrigin(origin)) {
896 nativeInvokeGeolocationCallback(mNativeAwContents, permissions.isOri ginAllowed(origin),
897 origin);
898 return;
899 }
900 mContentsClient.onGeolocationPermissionsShowPrompt(
901 origin, new AwGeolocationCallback(permissions));
888 } 902 }
889 903
890 @CalledByNative 904 @CalledByNative
905 private void onGeolocationPermissionsHidePrompt() {
906 mContentsClient.onGeolocationPermissionsHidePrompt();
907 }
908
909 @CalledByNative
891 public void onFindResultReceived(int activeMatchOrdinal, int numberOfMatches , 910 public void onFindResultReceived(int activeMatchOrdinal, int numberOfMatches ,
892 boolean isDoneCounting) { 911 boolean isDoneCounting) {
893 mContentsClient.onFindResultReceived(activeMatchOrdinal, numberOfMatches , isDoneCounting); 912 mContentsClient.onFindResultReceived(activeMatchOrdinal, numberOfMatches , isDoneCounting);
894 } 913 }
895 914
896 @CalledByNative 915 @CalledByNative
897 public void onNewPicture(Picture picture) { 916 public void onNewPicture(Picture picture) {
898 mContentsClient.onNewPicture(picture); 917 mContentsClient.onNewPicture(picture);
899 } 918 }
900 919
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
1073 // Returns false if restore state fails. 1092 // Returns false if restore state fails.
1074 private native boolean nativeRestoreFromOpaqueState(int nativeAwContents, by te[] state); 1093 private native boolean nativeRestoreFromOpaqueState(int nativeAwContents, by te[] state);
1075 1094
1076 private native int nativeReleasePopupWebContents(int nativeAwContents); 1095 private native int nativeReleasePopupWebContents(int nativeAwContents);
1077 private native void nativeSetWebContents(int nativeAwContents, int nativeNew WebContents); 1096 private native void nativeSetWebContents(int nativeAwContents, int nativeNew WebContents);
1078 private native void nativeFocusFirstNode(int nativeAwContents); 1097 private native void nativeFocusFirstNode(int nativeAwContents);
1079 1098
1080 private native Picture nativeCapturePicture(int nativeAwContents); 1099 private native Picture nativeCapturePicture(int nativeAwContents);
1081 private native void nativeEnableOnNewPicture(int nativeAwContents, boolean e nabled, 1100 private native void nativeEnableOnNewPicture(int nativeAwContents, boolean e nabled,
1082 boolean invalidationOnly); 1101 boolean invalidationOnly);
1102
1103 private native void nativeInvokeGeolocationCallback(
1104 int nativeAwContents, boolean value, String requestingFrame);
1083 } 1105 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698