Index: chrome/browser/ui/fullscreen_controller.cc |
diff --git a/chrome/browser/ui/fullscreen_controller.cc b/chrome/browser/ui/fullscreen_controller.cc |
index d75f4e615cc82cdd8eab7d75eb13b23b5ce9c3d1..8fd44afc8773cb72459f42c907479cd7d7b8a96b 100644 |
--- a/chrome/browser/ui/fullscreen_controller.cc |
+++ b/chrome/browser/ui/fullscreen_controller.cc |
@@ -77,6 +77,7 @@ void FullscreenController::RequestToLockMouse(WebContents* web_contents, |
bool user_gesture, |
bool last_unlocked_by_target) { |
DCHECK(!IsMouseLocked()); |
+ NotifyMouseLockChange(); |
// Check for command line switch disabling mouse lock when not tab fullscreen. |
if (CommandLine::ForCurrentProcess()->HasSwitch( |
@@ -86,8 +87,6 @@ void FullscreenController::RequestToLockMouse(WebContents* web_contents, |
return; |
} |
- NotifyMouseLockChange(); |
- |
// Must have a user gesture to prevent misbehaving sites from constantly |
// re-locking the mouse. Exceptions are when the page has unlocked |
// (i.e. not the user), or if we're in tab fullscreen (user gesture required |
@@ -338,6 +337,15 @@ bool FullscreenController::HandleUserPressedEscape() { |
return false; |
} |
+bool FullscreenController::HandleUserPressedReload() { |
+ if (IsFullscreenForTabOrPending() || |
+ IsMouseLocked() || IsMouseLockRequested()) { |
+ ExitTabFullscreenOrMouseLockIfNecessary(); |
+ } |
+ |
+ return false; |
+} |
+ |
FullscreenController::~FullscreenController() {} |
void FullscreenController::NotifyTabOfExitIfNecessary() { |
@@ -355,6 +363,7 @@ void FullscreenController::NotifyTabOfExitIfNecessary() { |
WebContents* web_contents = mouse_lock_tab_->web_contents(); |
if (IsMouseLockRequested()) { |
web_contents->GotResponseToLockMouseRequest(false); |
+ NotifyMouseLockChange(); |
} else if (web_contents->GetRenderViewHost() && |
web_contents->GetRenderViewHost()->GetView()) { |
web_contents->GetRenderViewHost()->GetView()->UnlockMouse(); |