diff options
author | timvolodine <timvolodine@chromium.org> | 2015-04-14 11:26:06 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-14 18:28:15 +0000 |
commit | d817226815d85c0660c14efc8acb064bfc9ca1e6 (patch) | |
tree | b657e15279b6662e99e9379de46804e4a43714e2 /content/public/android/java | |
parent | 112d3a10766068d03e9ba3f182aae88f0dfe632c (diff) | |
download | chromium_src-d817226815d85c0660c14efc8acb064bfc9ca1e6.zip chromium_src-d817226815d85c0660c14efc8acb064bfc9ca1e6.tar.gz chromium_src-d817226815d85c0660c14efc8acb064bfc9ca1e6.tar.bz2 |
[Android WebView] invoke geolocation error callback when no sufficient permissions.
Currently if the app using WebView does not have geolocation permissions no JavaScript
geolocation callbacks are executed. This patch ensures that the error callback is
executed in this case.
BUG=472655
Review URL: https://codereview.chromium.org/1050953002
Cr-Commit-Position: refs/heads/master@{#325087}
Diffstat (limited to 'content/public/android/java')
-rw-r--r-- | content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java | 12 | ||||
-rw-r--r-- | content/public/android/java/src/org/chromium/content/browser/OWNERS | 4 |
2 files changed, 12 insertions, 4 deletions
diff --git a/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java b/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java index 0d6d2dd..382d935 100644 --- a/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java +++ b/content/public/android/java/src/org/chromium/content/browser/LocationProviderFactory.java @@ -153,10 +153,18 @@ public class LocationProviderFactory { mLocationManager.requestLocationUpdates(0, 0, criteria, this, ThreadUtils.getUiThreadLooper()); } catch (SecurityException e) { - Log.e(TAG, "Caught security exception registering for location updates from " - + "system. This should only happen in DumpRenderTree."); + Log.e(TAG, "Caught security exception while registering for location updates " + + "from the system. The application does not have sufficient geolocation " + + "permissions."); + unregisterFromLocationUpdates(); + // Propagate an error to JavaScript, this can happen in case of WebView + // when the embedding app does not have sufficient permissions. + LocationProviderAdapter.newErrorAvailable("application does not have sufficient " + + "geolocation permissions."); } catch (IllegalArgumentException e) { Log.e(TAG, "Caught IllegalArgumentException registering for location updates."); + unregisterFromLocationUpdates(); + assert false; } } diff --git a/content/public/android/java/src/org/chromium/content/browser/OWNERS b/content/public/android/java/src/org/chromium/content/browser/OWNERS index 66d3fd4..35ac7d0 100644 --- a/content/public/android/java/src/org/chromium/content/browser/OWNERS +++ b/content/public/android/java/src/org/chromium/content/browser/OWNERS @@ -3,8 +3,8 @@ per-file DeviceSensors.java=mvanouwerkerk@chromium.org per-file DeviceSensors.java=timvolodine@chromium.org # Geolocation API related -per-file LocationProvider.java=mvanouwerkerk@chromium.org -per-file LocationProvider.java=timvolodine@chromium.org +per-file LocationProvider*.java=mvanouwerkerk@chromium.org +per-file LocationProvider*.java=timvolodine@chromium.org # Screen Orientation API related per-file ScreenOrientation*.java=mlamouri@chromium.org |