Chromium Code Reviews| Index: content/browser/permissions/permission_service_impl.cc |
| diff --git a/content/browser/permissions/permission_service_impl.cc b/content/browser/permissions/permission_service_impl.cc |
| index edba0415ee41b8666ec4acfbfa9e4c261c245cd3..ff19c692fc73f2a94a257c42f042c65b6de22f7e 100644 |
| --- a/content/browser/permissions/permission_service_impl.cc |
| +++ b/content/browser/permissions/permission_service_impl.cc |
| @@ -45,7 +45,8 @@ PermissionServiceImpl::PendingRequest::PendingRequest( |
| PermissionType permission, |
| const GURL& origin, |
| const PermissionStatusCallback& callback) |
| - : permission(permission), |
| + : id(PermissionManager::kNoPendingOperation), |
| + permission(permission), |
| origin(origin), |
| callback(callback) { |
| } |
| @@ -117,18 +118,25 @@ void PermissionServiceImpl::RequestPermission( |
| } |
| PermissionType permission_type = PermissionNameToPermissionType(permission); |
| - int request_id = pending_requests_.Add( |
| + int pending_request_id = pending_requests_.Add( |
| new PendingRequest(permission_type, GURL(origin), callback)); |
| - browser_context->GetPermissionManager()->RequestPermission( |
| + int id = browser_context->GetPermissionManager()->RequestPermission( |
| permission_type, |
| context_->render_frame_host(), |
| - request_id, |
| GURL(origin), |
| user_gesture, // TODO(mlamouri): should be removed (crbug.com/423770) |
| base::Bind(&PermissionServiceImpl::OnRequestPermissionResponse, |
| weak_factory_.GetWeakPtr(), |
| - request_id)); |
| + pending_request_id)); |
| + |
| + // Check if the request still exists. It may have been removed by the |
|
mlamouri (slow - plz ping)
2015/09/28 14:15:05
nit: s/may/might/ ?
Lalit Maganti
2015/09/28 16:07:01
Done.
|
| + // callback if it was run synchronously. |
| + PendingRequest* pending_request = pending_requests_.Lookup( |
| + pending_request_id); |
| + if (!pending_request) |
| + return; |
| + pending_request->id = id; |
| } |
| void PermissionServiceImpl::RequestPermissions( |