| Index: chrome/browser/geolocation/geolocation_permission_context.cc
|
| diff --git a/chrome/browser/geolocation/geolocation_permission_context.cc b/chrome/browser/geolocation/geolocation_permission_context.cc
|
| index 31fcdb81505eb3a5493dae809c0ca9e788c9d9b6..16dc51b2c887100293ecb6bbc993295f5681b606 100644
|
| --- a/chrome/browser/geolocation/geolocation_permission_context.cc
|
| +++ b/chrome/browser/geolocation/geolocation_permission_context.cc
|
| @@ -440,6 +440,12 @@ void GeolocationPermissionContext::StartUpdatingRequested(
|
| // Note we cannot store the arbitrator as a member as it is not thread safe.
|
| GeolocationProvider* provider = GeolocationProvider::GetInstance();
|
|
|
| +#if defined(ENABLE_CLIENT_BASED_GEOLOCATION)
|
| + // Client-based Geolocation uses a preemptive permission model, so permission
|
| + // ought to have been requested and granted before the controller requests
|
| + // requests the client to start updating.
|
| + DCHECK(provider->HasPermissionBeenGranted());
|
| +#else
|
| // WebKit will not request permission until it has received a valid
|
| // location, but the google network location provider will not give a
|
| // valid location until the user has granted permission. So we cut the Gordian
|
| @@ -449,11 +455,14 @@ void GeolocationPermissionContext::StartUpdatingRequested(
|
| RequestGeolocationPermission(render_process_id, render_view_id, bridge_id,
|
| requesting_frame);
|
| }
|
| +#endif
|
| }
|
|
|
| void GeolocationPermissionContext::StopUpdatingRequested(
|
| int render_process_id, int render_view_id, int bridge_id) {
|
| +#if !defined(ENABLE_CLIENT_BASED_GEOLOCATION)
|
| CancelPendingInfoBarRequest(render_process_id, render_view_id, bridge_id);
|
| +#endif
|
| }
|
|
|
| void GeolocationPermissionContext::NotifyPermissionSet(
|
|
|