summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/ui/browser.cc10
-rw-r--r--chrome/browser/ui/browser.h14
-rw-r--r--chrome/browser/ui/browser_browsertest.cc312
-rw-r--r--chrome/browser/ui/browser_unittest.cc6
-rw-r--r--chrome/browser/ui/cocoa/browser_window_controller.mm2
-rw-r--r--chrome/browser/ui/cocoa/browser_window_controller_private.mm6
-rw-r--r--chrome/browser/ui/fullscreen_controller.cc20
-rw-r--r--chrome/browser/ui/fullscreen_controller.h15
-rw-r--r--chrome/browser/ui/tests/browser_uitest.cc4
-rw-r--r--content/browser/tab_contents/tab_contents.cc2
-rw-r--r--content/public/browser/web_contents_delegate.cc3
-rw-r--r--content/public/browser/web_contents_delegate.h2
12 files changed, 90 insertions, 306 deletions
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 2920d28b..113dbbc 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -504,12 +504,8 @@ Browser::~Browser() {
TabRestoreServiceDestroyed(tab_restore_service_);
}
-bool Browser::IsFullscreenForTabOrPending() const {
- return fullscreen_controller_->IsFullscreenForTabOrPending();
-}
-
-bool Browser::IsMouseLockedOrPending() const {
- return fullscreen_controller_->IsMouseLockedOrPending();
+bool Browser::IsFullscreenForTab() const {
+ return fullscreen_controller_->IsFullscreenForTab();
}
// static
@@ -4198,7 +4194,7 @@ void Browser::ToggleFullscreenModeForTab(WebContents* tab,
fullscreen_controller_->ToggleFullscreenModeForTab(tab, enter_fullscreen);
}
-bool Browser::IsFullscreenForTabOrPending(const WebContents* tab) const {
+bool Browser::IsFullscreenForTab(const WebContents* tab) const {
return fullscreen_controller_->IsFullscreenForTabOrPending(tab);
}
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h
index 051d35e..81c05b2 100644
--- a/chrome/browser/ui/browser.h
+++ b/chrome/browser/ui/browser.h
@@ -909,11 +909,9 @@ class Browser : public TabHandlerDelegate,
bool is_app() const;
bool is_devtools() const;
- // See FullscreenController::IsFullscreenForTabOrPending.
- bool IsFullscreenForTabOrPending() const;
-
- // True when the mouse cursor is locked or pending lock.
- bool IsMouseLockedOrPending() const;
+ // True when the current tab is in fullscreen mode, requested by
+ // webkitRequestFullScreen.
+ bool IsFullscreenForTab() const;
// Called each time the browser window is shown.
void OnWindowDidShow();
@@ -931,12 +929,14 @@ class Browser : public TabHandlerDelegate,
virtual BrowserWindow* CreateBrowserWindow();
private:
- friend class BrowserTest;
FRIEND_TEST_ALL_PREFIXES(AppModeTest, EnableAppModeTest);
FRIEND_TEST_ALL_PREFIXES(BrowserTest, NoTabsInPopups);
FRIEND_TEST_ALL_PREFIXES(BrowserTest, ConvertTabToAppShortcut);
FRIEND_TEST_ALL_PREFIXES(BrowserTest, OpenAppWindowLikeNtp);
FRIEND_TEST_ALL_PREFIXES(BrowserTest, AppIdSwitch);
+ FRIEND_TEST_ALL_PREFIXES(BrowserTest, TestNewTabExitsFullscreen);
+ FRIEND_TEST_ALL_PREFIXES(BrowserTest, TestTabExitsItselfFromFullscreen);
+ FRIEND_TEST_ALL_PREFIXES(BrowserTest, TestFullscreenBubbleMouseLockState);
FRIEND_TEST_ALL_PREFIXES(BrowserTest, TabEntersPresentationModeFromWindowed);
FRIEND_TEST_ALL_PREFIXES(FullscreenExitBubbleControllerTest,
DenyExitsFullscreen);
@@ -1063,7 +1063,7 @@ class Browser : public TabHandlerDelegate,
const FilePath& path) OVERRIDE;
virtual void ToggleFullscreenModeForTab(content::WebContents* tab,
bool enter_fullscreen) OVERRIDE;
- virtual bool IsFullscreenForTabOrPending(
+ virtual bool IsFullscreenForTab(
const content::WebContents* tab) const OVERRIDE;
virtual void JSOutOfMemory(content::WebContents* tab) OVERRIDE;
virtual void RegisterProtocolHandler(content::WebContents* tab,
diff --git a/chrome/browser/ui/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc
index 95c8283..9715b49 100644
--- a/chrome/browser/ui/browser_browsertest.cc
+++ b/chrome/browser/ui/browser_browsertest.cc
@@ -14,7 +14,6 @@
#include "base/utf_string_conversions.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/command_updater.h"
-#include "chrome/browser/content_settings/host_content_settings_map.h"
#include "chrome/browser/defaults.h"
#include "chrome/browser/extensions/extension_browsertest.h"
#include "chrome/browser/extensions/extension_service.h"
@@ -87,7 +86,6 @@ const char* kOpenNewBeforeUnloadPage =
const FilePath::CharType* kBeforeUnloadFile =
FILE_PATH_LITERAL("beforeunload.html");
-const FilePath::CharType* kSimpleFile = FILE_PATH_LITERAL("simple.html");
const FilePath::CharType* kTitle1File = FILE_PATH_LITERAL("title1.html");
const FilePath::CharType* kTitle2File = FILE_PATH_LITERAL("title2.html");
@@ -178,15 +176,6 @@ class TestInterstitialPage : public content::InterstitialPageDelegate {
InterstitialPage* interstitial_page_; // Owns us.
};
-// Fullscreen transition notification observer simplifies test code.
-class FullscreenNotificationObserver
- : public ui_test_utils::WindowedNotificationObserver {
- public:
- FullscreenNotificationObserver() : WindowedNotificationObserver(
- chrome::NOTIFICATION_FULLSCREEN_CHANGED,
- content::NotificationService::AllSources()) {}
-};
-
} // namespace
class BrowserTest : public ExtensionBrowserTest {
@@ -222,93 +211,6 @@ class BrowserTest : public ExtensionBrowserTest {
NOTREACHED();
return NULL;
}
-
- void ToggleTabFullscreen(WebContents* tab, bool enter_fullscreen) {
- if (IsFullscreenForBrowser()) {
- // Changing tab fullscreen state will not actually change the window
- // when browser fullscreen is in effect.
- browser()->ToggleFullscreenModeForTab(tab, enter_fullscreen);
- } else { // Not in browser fullscreen, expect window to actually change.
- FullscreenNotificationObserver fullscreen_observer;
- browser()->ToggleFullscreenModeForTab(tab, enter_fullscreen);
- fullscreen_observer.Wait();
- ASSERT_EQ(browser()->window()->IsFullscreen(), enter_fullscreen);
- }
- }
-
- void ToggleBrowserFullscreen(bool enter_fullscreen) {
- ASSERT_EQ(browser()->window()->IsFullscreen(), !enter_fullscreen);
- FullscreenNotificationObserver fullscreen_observer;
-
- browser()->ToggleFullscreenMode();
-
- fullscreen_observer.Wait();
- ASSERT_EQ(browser()->window()->IsFullscreen(), enter_fullscreen);
- ASSERT_EQ(IsFullscreenForBrowser(), enter_fullscreen);
- }
-
- void RequestToLockMouse(content::WebContents* tab) {
- browser()->RequestToLockMouse(tab);
- }
-
- void LostMouseLock() {
- browser()->LostMouseLock();
- }
-
- bool IsFullscreenForBrowser() {
- return browser()->fullscreen_controller_->IsFullscreenForBrowser();
- }
-
- bool IsFullscreenForTabOrPending() {
- return browser()->IsFullscreenForTabOrPending();
- }
-
- bool IsMouseLockedOrPending() {
- return browser()->IsMouseLockedOrPending();
- }
-
- bool IsMouseLockPermissionRequested() {
- FullscreenExitBubbleType type =
- browser()->fullscreen_controller_->GetFullscreenExitBubbleType();
- bool mouse_lock = false;
- fullscreen_bubble::PermissionRequestedByType(type, NULL, &mouse_lock);
- return mouse_lock;
- }
-
- bool IsFullscreenPermissionRequested() {
- FullscreenExitBubbleType type =
- browser()->fullscreen_controller_->GetFullscreenExitBubbleType();
- bool fullscreen = false;
- fullscreen_bubble::PermissionRequestedByType(type, &fullscreen, NULL);
- return fullscreen;
- }
-
- FullscreenExitBubbleType GetFullscreenExitBubbleType() {
- return browser()->fullscreen_controller_->GetFullscreenExitBubbleType();
- }
-
- bool IsFullscreenBubbleDisplayed() {
- FullscreenExitBubbleType type =
- browser()->fullscreen_controller_->GetFullscreenExitBubbleType();
- // TODO(scheib): Should be FEB_TYPE_NONE, crbug.com/107013 will include fix.
- return type != FEB_TYPE_BROWSER_FULLSCREEN_EXIT_INSTRUCTION;
- }
-
- bool IsFullscreenBubbleDisplayingButtons() {
- FullscreenExitBubbleType type =
- browser()->fullscreen_controller_->GetFullscreenExitBubbleType();
- return fullscreen_bubble::ShowButtonsForType(type);
- }
-
- void AcceptCurrentFullscreenOrMouseLockRequest() {
- WebContents* fullscreen_tab = browser()->GetSelectedWebContents();
- FullscreenExitBubbleType type =
- browser()->fullscreen_controller_->GetFullscreenExitBubbleType();
- browser()->OnAcceptFullscreenPermission(fullscreen_tab->GetURL(), type);
- }
-
- // Helper method to be called by multiple tests.
- void TestFullscreenMouseLockContentSettings();
};
// Launch the app on a page with no title, check that the app title was set
@@ -973,7 +875,6 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, PageLanguageDetection) {
#define MAYBE_TestNewTabExitsFullscreen TestNewTabExitsFullscreen
#endif
-// Tests that while in fullscreen creating a new tab will exit fullscreen.
IN_PROC_BROWSER_TEST_F(BrowserTest, MAYBE_TestNewTabExitsFullscreen) {
ASSERT_TRUE(test_server()->Start());
@@ -982,10 +883,19 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, MAYBE_TestNewTabExitsFullscreen) {
WebContents* fullscreen_tab = browser()->GetSelectedWebContents();
- ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(fullscreen_tab, true));
+ {
+ ui_test_utils::WindowedNotificationObserver fullscreen_observer(
+ chrome::NOTIFICATION_FULLSCREEN_CHANGED,
+ content::NotificationService::AllSources());
+ browser()->ToggleFullscreenModeForTab(fullscreen_tab, true);
+ fullscreen_observer.Wait();
+ ASSERT_TRUE(browser()->window()->IsFullscreen());
+ }
{
- FullscreenNotificationObserver fullscreen_observer;
+ ui_test_utils::WindowedNotificationObserver fullscreen_observer(
+ chrome::NOTIFICATION_FULLSCREEN_CHANGED,
+ content::NotificationService::AllSources());
AddTabAtIndex(
1, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED);
fullscreen_observer.Wait();
@@ -1001,7 +911,6 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, MAYBE_TestNewTabExitsFullscreen) {
#define MAYBE_TestTabExitsItselfFromFullscreen TestTabExitsItselfFromFullscreen
#endif
-// Tests a tab exiting fullscreen will bring the browser out of fullscreen.
IN_PROC_BROWSER_TEST_F(BrowserTest, MAYBE_TestTabExitsItselfFromFullscreen) {
ASSERT_TRUE(test_server()->Start());
@@ -1009,12 +918,26 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, MAYBE_TestTabExitsItselfFromFullscreen) {
0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED);
WebContents* fullscreen_tab = browser()->GetSelectedWebContents();
- ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(fullscreen_tab, true));
- ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(fullscreen_tab, false));
+
+ {
+ ui_test_utils::WindowedNotificationObserver fullscreen_observer(
+ chrome::NOTIFICATION_FULLSCREEN_CHANGED,
+ content::NotificationService::AllSources());
+ browser()->ToggleFullscreenModeForTab(fullscreen_tab, true);
+ fullscreen_observer.Wait();
+ ASSERT_TRUE(browser()->window()->IsFullscreen());
+ }
+
+ {
+ ui_test_utils::WindowedNotificationObserver fullscreen_observer(
+ chrome::NOTIFICATION_FULLSCREEN_CHANGED,
+ content::NotificationService::AllSources());
+ browser()->ToggleFullscreenModeForTab(fullscreen_tab, false);
+ fullscreen_observer.Wait();
+ ASSERT_FALSE(browser()->window()->IsFullscreen());
+ }
}
-// Tests entering fullscreen and then requesting mouse lock results in
-// buttons for the user, and that after confirming the buttons are dismissed.
IN_PROC_BROWSER_TEST_F(BrowserTest, TestFullscreenBubbleMouseLockState) {
ASSERT_TRUE(test_server()->Start());
@@ -1025,156 +948,25 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, TestFullscreenBubbleMouseLockState) {
WebContents* fullscreen_tab = browser()->GetSelectedWebContents();
- ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(fullscreen_tab, true));
-
- // Request mouse lock and verify the bubble is waiting for user confirmation.
- RequestToLockMouse(fullscreen_tab);
- ASSERT_TRUE(IsMouseLockPermissionRequested());
-
- // Accept mouse lock and verify bubble no longer shows confirmation buttons.
- AcceptCurrentFullscreenOrMouseLockRequest();
- ASSERT_FALSE(IsFullscreenBubbleDisplayingButtons());
-}
-
-// Tests mouse lock fails before fullscreen is entered.
-IN_PROC_BROWSER_TEST_F(BrowserTest, MouseLockThenFullscreen) {
- WebContents* tab = browser()->GetSelectedWebContents();
- ASSERT_FALSE(IsFullscreenBubbleDisplayed());
-
- RequestToLockMouse(tab);
- ASSERT_FALSE(IsFullscreenBubbleDisplayed());
-
- ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(tab, true));
- ASSERT_TRUE(IsFullscreenPermissionRequested());
- ASSERT_FALSE(IsMouseLockPermissionRequested());
-}
-
-// Helper method to be called by multiple tests.
-// Tests Fullscreen and Mouse Lock with varying content settings ALLOW & BLOCK.
-void BrowserTest::TestFullscreenMouseLockContentSettings() {
- GURL url = test_server()->GetURL("simple.html");
- AddTabAtIndex(0, url, content::PAGE_TRANSITION_TYPED);
- WebContents* tab = browser()->GetSelectedWebContents();
-
- // Validate that going fullscreen for a URL defaults to asking permision.
- ASSERT_FALSE(IsFullscreenPermissionRequested());
- ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(tab, true));
- ASSERT_TRUE(IsFullscreenPermissionRequested());
- ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(tab, false));
-
- // Add content setting to ALLOW fullscreen.
- HostContentSettingsMap* settings_map =
- browser()->profile()->GetHostContentSettingsMap();
- ContentSettingsPattern pattern =
- ContentSettingsPattern::FromURL(url);
- settings_map->SetContentSetting(
- pattern, ContentSettingsPattern::Wildcard(),
- CONTENT_SETTINGS_TYPE_FULLSCREEN, std::string(),
- CONTENT_SETTING_ALLOW);
-
- // Now, fullscreen should not prompt for permission.
- ASSERT_FALSE(IsFullscreenPermissionRequested());
- ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(tab, true));
- ASSERT_FALSE(IsFullscreenPermissionRequested());
-
- // Leaving tab in fullscreen, now test mouse lock ALLOW:
-
- // Validate that mouse lock defaults to asking permision.
- ASSERT_FALSE(IsMouseLockPermissionRequested());
- ASSERT_FALSE(IsMouseLockedOrPending());
- RequestToLockMouse(tab);
- ASSERT_TRUE(IsMouseLockPermissionRequested());
- ASSERT_TRUE(IsMouseLockedOrPending());
- LostMouseLock();
-
- // Add content setting to ALLOW mouse lock.
- settings_map->SetContentSetting(
- pattern, ContentSettingsPattern::Wildcard(),
- CONTENT_SETTINGS_TYPE_MOUSELOCK, std::string(),
- CONTENT_SETTING_ALLOW);
-
- // Now, mouse lock should not prompt for permission.
- ASSERT_FALSE(IsMouseLockedOrPending());
- ASSERT_FALSE(IsMouseLockPermissionRequested());
- RequestToLockMouse(tab);
- ASSERT_TRUE(IsMouseLockedOrPending());
- ASSERT_FALSE(IsMouseLockPermissionRequested());
- LostMouseLock();
-
- // Leaving tab in fullscreen, now test mouse lock BLOCK:
-
- // Add content setting to BLOCK mouse lock.
- settings_map->SetContentSetting(
- pattern, ContentSettingsPattern::Wildcard(),
- CONTENT_SETTINGS_TYPE_MOUSELOCK, std::string(),
- CONTENT_SETTING_BLOCK);
-
- // Now, mouse lock should not be pending.
- ASSERT_FALSE(IsMouseLockedOrPending());
- ASSERT_FALSE(IsMouseLockPermissionRequested());
- RequestToLockMouse(tab);
- ASSERT_FALSE(IsMouseLockedOrPending());
- ASSERT_FALSE(IsMouseLockPermissionRequested());
-}
-
-// Tests fullscreen and Mouse Lock with varying content settings ALLOW & BLOCK.
-IN_PROC_BROWSER_TEST_F(BrowserTest, FullscreenMouseLockContentSettings) {
- TestFullscreenMouseLockContentSettings();
-}
-
-// Tests fullscreen and Mouse Lock with varying content settings ALLOW & BLOCK,
-// but with the browser initiated in fullscreen mode first.
-IN_PROC_BROWSER_TEST_F(BrowserTest, BrowserFullscreenMouseLockContentSettings) {
- // Enter browser fullscreen first.
- ASSERT_NO_FATAL_FAILURE(ToggleBrowserFullscreen(true));
- TestFullscreenMouseLockContentSettings();
- ASSERT_NO_FATAL_FAILURE(ToggleBrowserFullscreen(false));
-}
-
-// Tests Fullscreen entered in Browser, then Tab mode, then exited via Browser.
-IN_PROC_BROWSER_TEST_F(BrowserTest, BrowserFullscreenExit) {
- // Enter browser fullscreen.
- ASSERT_NO_FATAL_FAILURE(ToggleBrowserFullscreen(true));
-
- // Enter tab fullscreen.
- AddTabAtIndex(0, GURL(chrome::kAboutBlankURL),
- content::PAGE_TRANSITION_TYPED);
- WebContents* fullscreen_tab = browser()->GetSelectedWebContents();
- ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(fullscreen_tab, true));
-
- // Exit browser fullscreen.
- ASSERT_NO_FATAL_FAILURE(ToggleBrowserFullscreen(false));
- ASSERT_FALSE(browser()->window()->IsFullscreen());
-}
-
-// Tests Browser Fullscreen remains active after Tab mode entered and exited.
-IN_PROC_BROWSER_TEST_F(BrowserTest, BrowserFullscreenAfterTabFSExit) {
- // Enter browser fullscreen.
- ASSERT_NO_FATAL_FAILURE(ToggleBrowserFullscreen(true));
-
- // Enter and then exit tab fullscreen.
- AddTabAtIndex(0, GURL(chrome::kAboutBlankURL),
- content::PAGE_TRANSITION_TYPED);
- WebContents* fullscreen_tab = browser()->GetSelectedWebContents();
- ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(fullscreen_tab, true));
- ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(fullscreen_tab, false));
+ {
+ ui_test_utils::WindowedNotificationObserver fullscreen_observer(
+ chrome::NOTIFICATION_FULLSCREEN_CHANGED,
+ content::NotificationService::AllSources());
+ browser()->ToggleFullscreenModeForTab(fullscreen_tab, true);
+ fullscreen_observer.Wait();
+ ASSERT_TRUE(browser()->window()->IsFullscreen());
+ }
- // Verify browser fullscreen still active.
- ASSERT_TRUE(IsFullscreenForBrowser());
-}
+ browser()->RequestToLockMouse(fullscreen_tab);
+ FullscreenExitBubbleType type =
+ browser()->fullscreen_controller_->GetFullscreenExitBubbleType();
+ bool mouse_lock = false;
+ fullscreen_bubble::PermissionRequestedByType(type, NULL, &mouse_lock);
+ ASSERT_TRUE(mouse_lock);
-// Tests fullscreen entered without permision prompt for file:// urls.
-IN_PROC_BROWSER_TEST_F(BrowserTest, FullscreenFileURL) {
- ui_test_utils::NavigateToURL(browser(),
- ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory),
- FilePath(kSimpleFile)));
- WebContents* tab = browser()->GetSelectedWebContents();
-
- // Validate that going fullscreen for a file does not ask permision.
- ASSERT_FALSE(IsFullscreenPermissionRequested());
- ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(tab, true));
- ASSERT_FALSE(IsFullscreenPermissionRequested());
- ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(tab, false));
+ browser()->OnAcceptFullscreenPermission(fullscreen_tab->GetURL(), type);
+ type = browser()->fullscreen_controller_->GetFullscreenExitBubbleType();
+ ASSERT_FALSE(fullscreen_bubble::ShowButtonsForType(type));
}
#if defined(OS_MACOSX)
@@ -1189,7 +981,9 @@ IN_PROC_BROWSER_TEST_F(
WebContents* fullscreen_tab = browser()->GetSelectedWebContents();
{
- FullscreenNotificationObserver fullscreen_observer;
+ ui_test_utils::WindowedNotificationObserver fullscreen_observer(
+ chrome::NOTIFICATION_FULLSCREEN_CHANGED,
+ content::NotificationService::AllSources());
EXPECT_FALSE(browser()->window()->IsFullscreen());
EXPECT_FALSE(browser()->window()->InPresentationMode());
browser()->ToggleFullscreenModeForTab(fullscreen_tab, true);
@@ -1199,7 +993,9 @@ IN_PROC_BROWSER_TEST_F(
}
{
- FullscreenNotificationObserver fullscreen_observer;
+ ui_test_utils::WindowedNotificationObserver fullscreen_observer(
+ chrome::NOTIFICATION_FULLSCREEN_CHANGED,
+ content::NotificationService::AllSources());
browser()->TogglePresentationMode();
fullscreen_observer.Wait();
ASSERT_FALSE(browser()->window()->IsFullscreen());
@@ -1209,7 +1005,9 @@ IN_PROC_BROWSER_TEST_F(
if (base::mac::IsOSLionOrLater()) {
// Test that tab fullscreen mode doesn't make presentation mode the default
// on Lion.
- FullscreenNotificationObserver fullscreen_observer;
+ ui_test_utils::WindowedNotificationObserver fullscreen_observer(
+ chrome::NOTIFICATION_FULLSCREEN_CHANGED,
+ content::NotificationService::AllSources());
browser()->ToggleFullscreenMode();
fullscreen_observer.Wait();
ASSERT_TRUE(browser()->window()->IsFullscreen());
diff --git a/chrome/browser/ui/browser_unittest.cc b/chrome/browser/ui/browser_unittest.cc
index f761bdc..b2a38b9 100644
--- a/chrome/browser/ui/browser_unittest.cc
+++ b/chrome/browser/ui/browser_unittest.cc
@@ -8,6 +8,8 @@
#include "content/public/browser/render_process_host.h"
#include "content/public/browser/site_instance.h"
+typedef BrowserWithTestWindowTest BrowserTest;
+
class TestingOffTheRecordDestructionProfile : public TestingProfile {
public:
TestingOffTheRecordDestructionProfile() : destroyed_profile_(false) {
@@ -21,7 +23,7 @@ class TestingOffTheRecordDestructionProfile : public TestingProfile {
DISALLOW_COPY_AND_ASSIGN(TestingOffTheRecordDestructionProfile);
};
-class BrowserTestOffTheRecord : public BrowserWithTestWindowTest {
+class BrowserTestOffTheRecord : public BrowserTest {
public:
BrowserTestOffTheRecord() : off_the_record_profile_(NULL) {}
@@ -37,7 +39,7 @@ class BrowserTestOffTheRecord : public BrowserWithTestWindowTest {
};
// Various assertions around setting show state.
-TEST_F(BrowserWithTestWindowTest, GetSavedWindowShowState) {
+TEST_F(BrowserTest, GetSavedWindowShowState) {
// Default show state is SHOW_STATE_DEFAULT.
EXPECT_EQ(ui::SHOW_STATE_DEFAULT, browser()->GetSavedWindowShowState());
diff --git a/chrome/browser/ui/cocoa/browser_window_controller.mm b/chrome/browser/ui/cocoa/browser_window_controller.mm
index 89a1b9e..da965ae 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller.mm
+++ b/chrome/browser/ui/cocoa/browser_window_controller.mm
@@ -2014,7 +2014,7 @@ willAnimateFromState:(bookmarks::VisualState)oldState
if (presentationMode) {
BOOL fullscreen = [self isFullscreen];
- BOOL fullscreen_for_tab = browser_->IsFullscreenForTabOrPending();
+ BOOL fullscreen_for_tab = browser_->IsFullscreenForTab();
if (!fullscreen_for_tab)
[self setShouldUsePresentationModeWhenEnteringFullscreen:YES];
enteredPresentationModeFromFullscreen_ = fullscreen;
diff --git a/chrome/browser/ui/cocoa/browser_window_controller_private.mm b/chrome/browser/ui/cocoa/browser_window_controller_private.mm
index 75362f9..1c74e9b 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller_private.mm
+++ b/chrome/browser/ui/cocoa/browser_window_controller_private.mm
@@ -676,7 +676,7 @@ willPositionSheet:(NSWindow*)sheet
return;
if (presentationMode) {
- BOOL fullscreen_for_tab = browser_->IsFullscreenForTabOrPending();
+ BOOL fullscreen_for_tab = browser_->IsFullscreenForTab();
BOOL showDropdown = !fullscreen_for_tab &&
(forceDropdown || [self floatingBarHasFocus]);
NSView* contentView = [[self window] contentView];
@@ -789,7 +789,7 @@ willPositionSheet:(NSWindow*)sheet
}
- (void)showFullscreenExitBubbleIfNecessary {
- if (!browser_->IsFullscreenForTabOrPending()) {
+ if (!browser_->IsFullscreenForTab()) {
return;
}
@@ -851,7 +851,7 @@ willPositionSheet:(NSWindow*)sheet
NSWindow* window = [self window];
savedRegularWindowFrame_ = [window frame];
BOOL mode = [self shouldUsePresentationModeWhenEnteringFullscreen];
- mode = mode || browser_->IsFullscreenForTabOrPending();
+ mode = mode || browser_->IsFullscreenForTab();
enteringFullscreen_ = YES;
[self setPresentationModeInternal:mode forceDropdown:NO];
}
diff --git a/chrome/browser/ui/fullscreen_controller.cc b/chrome/browser/ui/fullscreen_controller.cc
index 24f363a..36ebb44 100644
--- a/chrome/browser/ui/fullscreen_controller.cc
+++ b/chrome/browser/ui/fullscreen_controller.cc
@@ -39,12 +39,16 @@ FullscreenController::FullscreenController(BrowserWindow* window,
FullscreenController::~FullscreenController() {}
-bool FullscreenController::IsFullscreenForBrowser() const {
- return window_->IsFullscreen() && !tab_caused_fullscreen_;
+bool FullscreenController::IsFullscreenForTab() const {
+ return fullscreened_tab_ != NULL;
}
-bool FullscreenController::IsFullscreenForTabOrPending() const {
- return fullscreened_tab_ != NULL;
+bool FullscreenController::IsFullscreenForTab(const WebContents* tab) const {
+ if (IsFullscreenForTabOrPending(tab)) {
+ DCHECK(window_->IsFullscreen());
+ return true;
+ }
+ return false;
}
bool FullscreenController::IsFullscreenForTabOrPending(
@@ -57,10 +61,6 @@ bool FullscreenController::IsFullscreenForTabOrPending(
return true;
}
-bool FullscreenController::IsMouseLockedOrPending() const {
- return mouse_lock_state_ != MOUSELOCK_NOT_REQUESTED;
-}
-
void FullscreenController::RequestToLockMouse(WebContents* tab) {
// Mouse Lock is only permitted when browser is in tab fullscreen.
if (!IsFullscreenForTabOrPending(tab)) {
@@ -171,7 +171,7 @@ void FullscreenController::LostMouseLock() {
}
void FullscreenController::OnTabClosing(WebContents* web_contents) {
- if (IsFullscreenForTabOrPending(web_contents)) {
+ if (IsFullscreenForTab(web_contents)) {
ExitTabbedFullscreenModeIfNecessary();
// The call to exit fullscreen may result in asynchronous notification of
// fullscreen state change (e.g., on Linux). We don't want to rely on it
@@ -265,7 +265,7 @@ void FullscreenController::WindowFullscreenStateChanged() {
}
bool FullscreenController::HandleUserPressedEscape() {
- if (!IsFullscreenForTabOrPending())
+ if (!IsFullscreenForTab())
return false;
ExitTabbedFullscreenModeIfNecessary();
return true;
diff --git a/chrome/browser/ui/fullscreen_controller.h b/chrome/browser/ui/fullscreen_controller.h
index 9284c19..e3bc446 100644
--- a/chrome/browser/ui/fullscreen_controller.h
+++ b/chrome/browser/ui/fullscreen_controller.h
@@ -40,21 +40,10 @@ class FullscreenController : public base::RefCounted<FullscreenController> {
virtual ~FullscreenController();
// Querying.
-
- // Returns true if the window is currently fullscreen and was initially
- // transitioned to fullscreen by a browser (vs tab) mode transition.
- bool IsFullscreenForBrowser() const;
-
- // Returns true if fullscreen has been caused by a tab.
- // The window may still be transitioning, and window_->IsFullscreen()
- // may still return false.
- bool IsFullscreenForTabOrPending() const;
+ bool IsFullscreenForTab() const;
+ bool IsFullscreenForTab(const content::WebContents* tab) 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;
-
// Requests.
void RequestToLockMouse(content::WebContents* tab);
void ToggleFullscreenModeForTab(content::WebContents* tab,
diff --git a/chrome/browser/ui/tests/browser_uitest.cc b/chrome/browser/ui/tests/browser_uitest.cc
index f18be60..4c23a46 100644
--- a/chrome/browser/ui/tests/browser_uitest.cc
+++ b/chrome/browser/ui/tests/browser_uitest.cc
@@ -28,7 +28,7 @@
namespace {
-class BrowserUITest : public UITest {
+class BrowserTest : public UITest {
};
class VisibleBrowserTest : public UITest {
@@ -42,7 +42,7 @@ class VisibleBrowserTest : public UITest {
// The browser should quit quickly if it receives a WM_ENDSESSION message
// on Windows, or SIGTERM on posix.
-TEST_F(BrowserUITest, SessionEnd) {
+TEST_F(BrowserTest, SessionEnd) {
FilePath test_file(test_data_directory_);
test_file = test_file.AppendASCII("title1.html");
diff --git a/content/browser/tab_contents/tab_contents.cc b/content/browser/tab_contents/tab_contents.cc
index 60baede..aa7d8e0 100644
--- a/content/browser/tab_contents/tab_contents.cc
+++ b/content/browser/tab_contents/tab_contents.cc
@@ -983,7 +983,7 @@ void TabContents::ToggleFullscreenMode(bool enter_fullscreen) {
}
bool TabContents::IsFullscreenForCurrentTab() const {
- return delegate_ ? delegate_->IsFullscreenForTabOrPending(this) : false;
+ return delegate_ ? delegate_->IsFullscreenForTab(this) : false;
}
void TabContents::RequestToLockMouse() {
diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc
index ed5a1d9..0e24df0 100644
--- a/content/public/browser/web_contents_delegate.cc
+++ b/content/public/browser/web_contents_delegate.cc
@@ -130,8 +130,7 @@ JavaScriptDialogCreator* WebContentsDelegate::GetJavaScriptDialogCreator() {
return NULL;
}
-bool WebContentsDelegate::IsFullscreenForTabOrPending(
- const WebContents* tab) const {
+bool WebContentsDelegate::IsFullscreenForTab(const WebContents* tab) const {
return false;
}
diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h
index 6c4ec68..2d1669c 100644
--- a/content/public/browser/web_contents_delegate.h
+++ b/content/public/browser/web_contents_delegate.h
@@ -333,7 +333,7 @@ class CONTENT_EXPORT WebContentsDelegate {
// Called when the renderer puts a tab into or out of fullscreen mode.
virtual void ToggleFullscreenModeForTab(WebContents* tab,
bool enter_fullscreen) {}
- virtual bool IsFullscreenForTabOrPending(const WebContents* tab) const;
+ virtual bool IsFullscreenForTab(const WebContents* tab) const;
// Called when a Javascript out of memory notification is received.
virtual void JSOutOfMemory(WebContents* tab) {}