From d9ea5b73c1bd81dbb06b0fc4caf71414e43c6305 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Wed, 19 Jan 2022 09:39:53 +0100 Subject: [PATCH] chore: cancel active pending requests if denied --- shell/browser/api/electron_api_web_contents.cc | 3 +++ shell/browser/web_contents_permission_helper.cc | 14 ++------------ 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/shell/browser/api/electron_api_web_contents.cc b/shell/browser/api/electron_api_web_contents.cc index ab8fc61723b12..89b39c79bfcbd 100644 --- a/shell/browser/api/electron_api_web_contents.cc +++ b/shell/browser/api/electron_api_web_contents.cc @@ -1403,6 +1403,9 @@ void WebContents::RequestExclusivePointerAccess( if (allowed) { exclusive_access_manager_->mouse_lock_controller()->RequestToLockMouse( web_contents, user_gesture, last_unlocked_by_target); + } else { + web_contents->GotResponseToLockMouseRequest( + blink::mojom::PointerLockResult::kPermissionDenied); } } diff --git a/shell/browser/web_contents_permission_helper.cc b/shell/browser/web_contents_permission_helper.cc index 07f99d157dbe2..2fd8cb0a6c699 100644 --- a/shell/browser/web_contents_permission_helper.cc +++ b/shell/browser/web_contents_permission_helper.cc @@ -43,16 +43,6 @@ void MediaAccessAllowed(const content::MediaStreamRequest& request, controller.Deny(blink::mojom::MediaStreamRequestResult::PERMISSION_DENIED); } -void OnPointerLockResponse( - base::OnceCallback callback, - content::WebContents* web_contents, - bool user_gesture, - bool last_unlocked_by_target, - bool allowed) { - std::move(callback).Run(web_contents, user_gesture, last_unlocked_by_target, - allowed); -} - void OnPermissionResponse(base::OnceCallback callback, blink::mojom::PermissionStatus status) { if (status == blink::mojom::PermissionStatus::GRANTED) @@ -162,8 +152,8 @@ void WebContentsPermissionHelper::RequestPointerLockPermission( callback) { RequestPermission( static_cast(PermissionType::POINTER_LOCK), - base::BindOnce(&OnPointerLockResponse, std::move(callback), web_contents_, - user_gesture, last_unlocked_by_target), + base::BindOnce(std::move(callback), web_contents_, user_gesture, + last_unlocked_by_target), user_gesture); }