| Index: chrome/browser/geolocation/chrome_geolocation_permission_context.cc
|
| diff --git a/chrome/browser/geolocation/chrome_geolocation_permission_context.cc b/chrome/browser/geolocation/chrome_geolocation_permission_context.cc
|
| index ea6d79d4acd73c05eceafeb0110078fb55019291..c54d040d9e58d4e9a1a56de926caa00bb1e8b9f4 100644
|
| --- a/chrome/browser/geolocation/chrome_geolocation_permission_context.cc
|
| +++ b/chrome/browser/geolocation/chrome_geolocation_permission_context.cc
|
| @@ -95,6 +95,17 @@ void ChromeGeolocationPermissionContext::DecidePermission(
|
| base::Callback<void(bool)> callback) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
|
|
| +#if defined(OS_ANDROID)
|
| + // Check to see if the feature in its entirety has been disabled.
|
| + // This must happen before other services (e.g. tabs, extensions)
|
| + // get an opportunity to allow the geolocation request.
|
| + if (!profile()->GetPrefs()->GetBoolean(prefs::kGeolocationEnabled)) {
|
| + PermissionDecided(render_process_id, render_view_id, bridge_id,
|
| + requesting_frame, embedder, callback, false);
|
| + return;
|
| + }
|
| +#endif
|
| +
|
| ExtensionService* extension_service = profile_->GetExtensionService();
|
| if (extension_service) {
|
| const extensions::Extension* extension =
|
|
|