Index: chrome/browser/ui/exclusive_access/mouse_lock_controller.cc |
diff --git a/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc b/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc |
index bfd3025cd1d1d73f9c1bb955ac0ae704fd65091e..c0133be9c2f20629504c0237cb2cf017743c4fe7 100644 |
--- a/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc |
+++ b/chrome/browser/ui/exclusive_access/mouse_lock_controller.cc |
@@ -157,12 +157,23 @@ bool MouseLockController::OnAcceptExclusiveAccessPermission() { |
std::string(), CONTENT_SETTING_ALLOW); |
} |
+ ExclusiveAccessContext* context = |
+ exclusive_access_manager()->exclusive_access_context(); |
WebContents* tab = exclusive_access_tab(); |
- if (tab && tab->GotResponseToLockMouseRequest(true)) { |
- mouse_lock_state_ = MOUSELOCK_ACCEPTED; |
+ if (context->UseCallbackForMouseLock()) { |
+ if (tab && context->MouseLockCallback(true)) { |
+ mouse_lock_state_ = MOUSELOCK_ACCEPTED; |
+ } else { |
+ mouse_lock_state_ = MOUSELOCK_NOT_REQUESTED; |
+ SetTabWithExclusiveAccess(nullptr); |
+ } |
} else { |
- mouse_lock_state_ = MOUSELOCK_NOT_REQUESTED; |
- SetTabWithExclusiveAccess(nullptr); |
+ if (tab && tab->GotResponseToLockMouseRequest(true)) { |
+ mouse_lock_state_ = MOUSELOCK_ACCEPTED; |
+ } else { |
+ mouse_lock_state_ = MOUSELOCK_NOT_REQUESTED; |
+ SetTabWithExclusiveAccess(nullptr); |
+ } |
} |
NotifyMouseLockChange(); |
return true; |