summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui
diff options
context:
space:
mode:
authorscheib@chromium.org <scheib@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-27 17:31:14 +0000
committerscheib@chromium.org <scheib@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-27 17:31:14 +0000
commitd013f14b5353e677bcea88ece72571031d38041d (patch)
tree79317f7adbc4cd3771f8339e6fcca34a78e1f797 /chrome/browser/ui
parent16d49aa696f8695a5710732f306277c4766dfa3c (diff)
downloadchromium_src-d013f14b5353e677bcea88ece72571031d38041d.zip
chromium_src-d013f14b5353e677bcea88ece72571031d38041d.tar.gz
chromium_src-d013f14b5353e677bcea88ece72571031d38041d.tar.bz2
Adding IsMouseLocked and removing IsMouseLockedOrPending from FullscreenController.
Part of a larger set of patches refactoring FullscreenController to support mouse lock in windowed (not fullscreen) mode. BUG=107320 Review URL: http://codereview.chromium.org/10225012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134292 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui')
-rw-r--r--chrome/browser/ui/browser.cc4
-rw-r--r--chrome/browser/ui/browser.h4
-rw-r--r--chrome/browser/ui/browser_browsertest.cc11
-rw-r--r--chrome/browser/ui/fullscreen_controller.cc24
-rw-r--r--chrome/browser/ui/fullscreen_controller.h5
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);