summaryrefslogtreecommitdiffstats
path: root/content/public/android/java
diff options
context:
space:
mode:
authortimvolodine <timvolodine@chromium.org>2015-04-14 11:26:06 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-14 18:28:15 +0000
commitd817226815d85c0660c14efc8acb064bfc9ca1e6 (patch)
treeb657e15279b6662e99e9379de46804e4a43714e2 /content/public/android/java
parent112d3a10766068d03e9ba3f182aae88f0dfe632c (diff)
downloadchromium_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.java12
-rw-r--r--content/public/android/java/src/org/chromium/content/browser/OWNERS4
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