| Index: content/renderer/geolocation_dispatcher.cc
|
| diff --git a/content/renderer/geolocation_dispatcher.cc b/content/renderer/geolocation_dispatcher.cc
|
| index 083927fce88076ec67d93fd29af75dfc7f10a4e1..727e79797df203ddb3ecb5df6359d0e587abf974 100644
|
| --- a/content/renderer/geolocation_dispatcher.cc
|
| +++ b/content/renderer/geolocation_dispatcher.cc
|
| @@ -72,6 +72,7 @@ bool GeolocationDispatcher::lastPosition(WebGeolocationPosition&) {
|
| // conversion is necessary.
|
| void GeolocationDispatcher::requestPermission(
|
| const WebGeolocationPermissionRequest& permissionRequest) {
|
| + num_pending_permission_requests_++;
|
| if (!permission_service_.get()) {
|
| render_frame()->GetServiceRegistry()->ConnectToRemoteService(
|
| mojo::GetProxy(&permission_service_));
|
| @@ -90,6 +91,8 @@ void GeolocationDispatcher::cancelPermissionRequest(
|
| const blink::WebGeolocationPermissionRequest& permissionRequest) {
|
| int permission_request_id;
|
| pending_permissions_->remove(permissionRequest, permission_request_id);
|
| + if (--num_pending_permission_requests_ == 0)
|
| + permission_service_.reset();
|
| }
|
|
|
| // Permission for using geolocation has been set.
|
| @@ -100,6 +103,9 @@ void GeolocationDispatcher::OnPermissionSet(
|
| if (!pending_permissions_->remove(permission_request_id, permissionRequest))
|
| return;
|
|
|
| + if (--num_pending_permission_requests_ == 0)
|
| + permission_service_.reset();
|
| +
|
| permissionRequest.setIsAllowed(status ==
|
| blink::mojom::PermissionStatus::GRANTED);
|
| }
|
|
|