diff options
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/ui/browser.cc | 4 | ||||
-rw-r--r-- | chrome/browser/ui/browser.h | 4 | ||||
-rw-r--r-- | chrome/browser/ui/browser_browsertest.cc | 11 | ||||
-rw-r--r-- | chrome/browser/ui/fullscreen_controller.cc | 24 | ||||
-rw-r--r-- | chrome/browser/ui/fullscreen_controller.h | 5 |
5 files changed, 21 insertions, 27 deletions
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc index cdeb0f8..1dee07f 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc @@ -3415,8 +3415,8 @@ bool Browser::IsFullscreenForTabOrPending() const { return fullscreen_controller_->IsFullscreenForTabOrPending(); } -bool Browser::IsMouseLockedOrPending() const { - return fullscreen_controller_->IsMouseLockedOrPending(); +bool Browser::IsMouseLocked() const { + return fullscreen_controller_->IsMouseLocked(); } void Browser::OnWindowDidShow() { diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h index f0dae49..4759f1e 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h @@ -877,8 +877,8 @@ class Browser : public TabHandlerDelegate, // See FullscreenController::IsFullscreenForTabOrPending. bool IsFullscreenForTabOrPending() const; - // True when the mouse cursor is locked or pending lock. - bool IsMouseLockedOrPending() const; + // True when the mouse cursor is locked. + bool IsMouseLocked() const; // Called each time the browser window is shown. void OnWindowDidShow(); diff --git a/chrome/browser/ui/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc index 4ad632c..43dc0b3 100644 --- a/chrome/browser/ui/browser_browsertest.cc +++ b/chrome/browser/ui/browser_browsertest.cc @@ -263,8 +263,8 @@ class BrowserTest : public ExtensionBrowserTest { return browser()->IsFullscreenForTabOrPending(); } - bool IsMouseLockedOrPending() { - return browser()->IsMouseLockedOrPending(); + bool IsMouseLocked() { + return browser()->IsMouseLocked(); } bool IsMouseLockPermissionRequested() { @@ -1081,10 +1081,9 @@ void BrowserTest::TestFullscreenMouseLockContentSettings() { // Validate that mouse lock defaults to asking permision. ASSERT_FALSE(IsMouseLockPermissionRequested()); - ASSERT_FALSE(IsMouseLockedOrPending()); + ASSERT_FALSE(IsMouseLocked()); RequestToLockMouse(tab, true); ASSERT_TRUE(IsMouseLockPermissionRequested()); - ASSERT_TRUE(IsMouseLockedOrPending()); LostMouseLock(); // Add content setting to ALLOW mouse lock. @@ -1094,10 +1093,8 @@ void BrowserTest::TestFullscreenMouseLockContentSettings() { CONTENT_SETTING_ALLOW); // Now, mouse lock should not prompt for permission. - ASSERT_FALSE(IsMouseLockedOrPending()); ASSERT_FALSE(IsMouseLockPermissionRequested()); RequestToLockMouse(tab, true); - ASSERT_TRUE(IsMouseLockedOrPending()); ASSERT_FALSE(IsMouseLockPermissionRequested()); LostMouseLock(); @@ -1110,10 +1107,8 @@ void BrowserTest::TestFullscreenMouseLockContentSettings() { CONTENT_SETTING_BLOCK); // Now, mouse lock should not be pending. - ASSERT_FALSE(IsMouseLockedOrPending()); ASSERT_FALSE(IsMouseLockPermissionRequested()); RequestToLockMouse(tab, true); - ASSERT_FALSE(IsMouseLockedOrPending()); ASSERT_FALSE(IsMouseLockPermissionRequested()); } diff --git a/chrome/browser/ui/fullscreen_controller.cc b/chrome/browser/ui/fullscreen_controller.cc index 80aeaf0..ee11258 100644 --- a/chrome/browser/ui/fullscreen_controller.cc +++ b/chrome/browser/ui/fullscreen_controller.cc @@ -55,8 +55,12 @@ bool FullscreenController::IsFullscreenForTabOrPending( return true; } -bool FullscreenController::IsMouseLockedOrPending() const { - return mouse_lock_state_ != MOUSELOCK_NOT_REQUESTED; +bool FullscreenController::IsMouseLockRequested() const { + return mouse_lock_state_ == MOUSELOCK_REQUESTED; +} + +bool FullscreenController::IsMouseLocked() const { + return mouse_lock_state_ == MOUSELOCK_ACCEPTED; } void FullscreenController::RequestToLockMouse(WebContents* tab, @@ -64,28 +68,24 @@ void FullscreenController::RequestToLockMouse(WebContents* tab, // TODO(scheib) user_gesture required for Mouse Lock in Windowed Mode. // See http://crbug.com/107013, which will land in multiple patches. + DCHECK(!IsMouseLocked()); + // Mouse Lock is only permitted when browser is in tab fullscreen. if (!IsFullscreenForTabOrPending(tab)) { tab->GotResponseToLockMouseRequest(false); return; } - if (mouse_lock_state_ == MOUSELOCK_ACCEPTED) { - tab->GotResponseToLockMouseRequest(true); - return; - } - switch (GetMouseLockSetting(tab->GetURL())) { case CONTENT_SETTING_ALLOW: if (tab_fullscreen_accepted_) { - mouse_lock_state_ = MOUSELOCK_ACCEPTED; - tab->GotResponseToLockMouseRequest(true); + if (tab->GotResponseToLockMouseRequest(true)) + mouse_lock_state_ = MOUSELOCK_ACCEPTED; } else { mouse_lock_state_ = MOUSELOCK_REQUESTED; } break; case CONTENT_SETTING_BLOCK: - mouse_lock_state_ = MOUSELOCK_NOT_REQUESTED; tab->GotResponseToLockMouseRequest(false); break; case CONTENT_SETTING_ASK: @@ -202,7 +202,7 @@ void FullscreenController::OnAcceptFullscreenPermission( HostContentSettingsMap* settings_map = profile_->GetHostContentSettingsMap(); ContentSettingsPattern pattern = ContentSettingsPattern::FromURL(url); if (mouse_lock) { - DCHECK_EQ(mouse_lock_state_, MOUSELOCK_REQUESTED); + DCHECK(IsMouseLockRequested()); // TODO(markusheintz): We should allow patterns for all possible URLs here. if (pattern.IsValid()) { settings_map->SetContentSetting( @@ -236,7 +236,7 @@ void FullscreenController::OnDenyFullscreenPermission( DCHECK_NE(tab_fullscreen_accepted_, fullscreen); if (mouse_lock) { - DCHECK_EQ(mouse_lock_state_, MOUSELOCK_REQUESTED); + DCHECK(IsMouseLockRequested()); mouse_lock_state_ = MOUSELOCK_NOT_REQUESTED; fullscreened_tab_->web_contents()->GotResponseToLockMouseRequest(false); if (!fullscreen) diff --git a/chrome/browser/ui/fullscreen_controller.h b/chrome/browser/ui/fullscreen_controller.h index f9d9fb9bb..ea79a51 100644 --- a/chrome/browser/ui/fullscreen_controller.h +++ b/chrome/browser/ui/fullscreen_controller.h @@ -50,9 +50,8 @@ class FullscreenController : public base::RefCounted<FullscreenController> { bool IsFullscreenForTabOrPending() const; bool IsFullscreenForTabOrPending(const content::WebContents* tab) const; - // Returns true if the mouse has been locked or a lock request is pending - // user confirmation. - bool IsMouseLockedOrPending() const; + bool IsMouseLockRequested() const; + bool IsMouseLocked() const; // Requests. void RequestToLockMouse(content::WebContents* tab, bool user_gesture); |