Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2921)

Unified Diff: content/renderer/geolocation_dispatcher.cc

Issue 1948033003: Convert most geolocation layout tests to use a JS mock implementation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@permission-disconnect
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}

Powered by Google App Engine
This is Rietveld 408576698