diff options
author | scheib@chromium.org <scheib@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-07 18:01:26 +0000 |
---|---|---|
committer | scheib@chromium.org <scheib@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-07 18:01:26 +0000 |
commit | 0cefa87eafd2d36d8a47493415c38c15bd919997 (patch) | |
tree | d6a30701b31ce151548c9125016fb8a9a964408e | |
parent | e01df1c01fe19d37938bdbf7957334f91327c48e (diff) | |
download | chromium_src-0cefa87eafd2d36d8a47493415c38c15bd919997.zip chromium_src-0cefa87eafd2d36d8a47493415c38c15bd919997.tar.gz chromium_src-0cefa87eafd2d36d8a47493415c38c15bd919997.tar.bz2 |
Move fullscreen_controller browser tests to interactive.
BUG=146665
Review URL: https://chromiumcodereview.appspot.com/10919113
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155422 0039d316-1c4b-4281-b951-d872f2087c98
5 files changed, 475 insertions, 457 deletions
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h index 12d5bb2..c19365b 100644 --- a/chrome/browser/ui/browser.h +++ b/chrome/browser/ui/browser.h @@ -482,6 +482,7 @@ class Browser : public TabStripModelObserver, private: friend class BrowserTest; + friend class FullscreenControllerInteractiveTest; friend class FullscreenControllerTest; FRIEND_TEST_ALL_PREFIXES(AppModeTest, EnableAppModeTest); FRIEND_TEST_ALL_PREFIXES(BrowserTest, NoTabsInPopups); diff --git a/chrome/browser/ui/fullscreen/fullscreen_controller_browsertest.cc b/chrome/browser/ui/fullscreen/fullscreen_controller_browsertest.cc index 9bfa971..a154431 100644 --- a/chrome/browser/ui/fullscreen/fullscreen_controller_browsertest.cc +++ b/chrome/browser/ui/fullscreen/fullscreen_controller_browsertest.cc @@ -4,8 +4,6 @@ #include "base/compiler_specific.h" #include "base/utf_string_conversions.h" -#include "chrome/browser/content_settings/host_content_settings_map.h" -#include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/browser_tabstrip.h" @@ -23,408 +21,9 @@ using content::WebContents; -namespace { - -const FilePath::CharType* kSimpleFile = FILE_PATH_LITERAL("simple.html"); - -} // namespace - class FullscreenControllerBrowserTest: public FullscreenControllerTest { - protected: - void TestFullscreenMouseLockContentSettings(); }; -#if defined(OS_MACOSX) -// http://crbug.com/104265 -#define MAYBE_TestNewTabExitsFullscreen DISABLED_TestNewTabExitsFullscreen -#elif defined(OS_LINUX) -// http://crbug.com/137657 -#define MAYBE_TestNewTabExitsFullscreen DISABLED_TestNewTabExitsFullscreen -#else -#define MAYBE_TestNewTabExitsFullscreen TestNewTabExitsFullscreen -#endif - -// Tests that while in fullscreen creating a new tab will exit fullscreen. -IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, - MAYBE_TestNewTabExitsFullscreen) { - ASSERT_TRUE(test_server()->Start()); - - AddTabAtIndexAndWait( - 0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); - - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); - - { - FullscreenNotificationObserver fullscreen_observer; - AddTabAtIndexAndWait( - 1, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); - fullscreen_observer.Wait(); - ASSERT_FALSE(browser()->window()->IsFullscreen()); - } -} - -#if defined(OS_MACOSX) -// http://crbug.com/100467 -#define MAYBE_TestTabExitsItselfFromFullscreen \ - FAILS_TestTabExitsItselfFromFullscreen -#elif defined(OS_LINUX) -// http://crbug.com/146008 -#define MAYBE_TestTabExitsItselfFromFullscreen \ - DISABLED_TestTabExitsItselfFromFullscreen -#else -#define MAYBE_TestTabExitsItselfFromFullscreen TestTabExitsItselfFromFullscreen -#endif - -// Tests a tab exiting fullscreen will bring the browser out of fullscreen. -IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, - MAYBE_TestTabExitsItselfFromFullscreen) { - ASSERT_TRUE(test_server()->Start()); - - AddTabAtIndexAndWait( - 0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); - - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(false)); -} - -// Tests entering fullscreen and then requesting mouse lock results in -// buttons for the user, and that after confirming the buttons are dismissed. -#if defined(OS_LINUX) -// http://crbug.com/146008 -#define MAYBE_TestFullscreenBubbleMouseLockState \ - DISABLED_TestFullscreenBubbleMouseLockState -#else -#define MAYBE_TestFullscreenBubbleMouseLockState \ - TestFullscreenBubbleMouseLockState -#endif -IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, - MAYBE_TestFullscreenBubbleMouseLockState) { - ASSERT_TRUE(test_server()->Start()); - - AddTabAtIndexAndWait(0, GURL(chrome::kAboutBlankURL), - content::PAGE_TRANSITION_TYPED); - AddTabAtIndexAndWait(1, GURL(chrome::kAboutBlankURL), - content::PAGE_TRANSITION_TYPED); - - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); - - // Request mouse lock and verify the bubble is waiting for user confirmation. - RequestToLockMouse(true, false); - ASSERT_TRUE(IsMouseLockPermissionRequested()); - - // Accept mouse lock and verify bubble no longer shows confirmation buttons. - AcceptCurrentFullscreenOrMouseLockRequest(); - ASSERT_FALSE(IsFullscreenBubbleDisplayingButtons()); -} - -// Helper method to be called by multiple tests. -// Tests Fullscreen and Mouse Lock with varying content settings ALLOW & BLOCK. -void FullscreenControllerBrowserTest::TestFullscreenMouseLockContentSettings() { - GURL url = test_server()->GetURL("simple.html"); - AddTabAtIndexAndWait(0, url, content::PAGE_TRANSITION_TYPED); - - // Validate that going fullscreen for a URL defaults to asking permision. - ASSERT_FALSE(IsFullscreenPermissionRequested()); - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); - ASSERT_TRUE(IsFullscreenPermissionRequested()); - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(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(true)); - ASSERT_FALSE(IsFullscreenPermissionRequested()); - - // Leaving tab in fullscreen, now test mouse lock ALLOW: - - // Validate that mouse lock defaults to asking permision. - ASSERT_FALSE(IsMouseLockPermissionRequested()); - RequestToLockMouse(true, false); - ASSERT_TRUE(IsMouseLockPermissionRequested()); - 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(IsMouseLockPermissionRequested()); - RequestToLockMouse(true, false); - 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(IsMouseLockPermissionRequested()); - RequestToLockMouse(true, false); - ASSERT_FALSE(IsMouseLockPermissionRequested()); -} - -#if defined(OS_MACOSX) -// http://crbug.com/133831 -#define MAYBE_FullscreenMouseLockContentSettings \ - FLAKY_FullscreenMouseLockContentSettings -#elif defined(OS_LINUX) -// http://crbug.com/146008 -#define MAYBE_FullscreenMouseLockContentSettings \ - DISABLED_FullscreenMouseLockContentSettings -#else -#define MAYBE_FullscreenMouseLockContentSettings \ - FullscreenMouseLockContentSettings -#endif -// Tests fullscreen and Mouse Lock with varying content settings ALLOW & BLOCK. -IN_PROC_BROWSER_TEST_F(FullscreenControllerBrowserTest, - MAYBE_FullscreenMouseLockContentSettings) { - TestFullscreenMouseLockContentSettings(); -} - -#if defined(OS_MACOSX) || defined(OS_LINUX) -// http://crbug.com/103912 Mac -// http://crbug.com/143930 Linux -#define MAYBE_BrowserFullscreenMouseLockContentSettings \ - DISABLED_BrowserFullscreenMouseLockContentSettings -#else -#define MAYBE_BrowserFullscreenMouseLockContentSettings \ - BrowserFullscreenMouseLockContentSettings -#endif -// 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(FullscreenControllerBrowserTest, - MAYBE_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. -#if defined(OS_MACOSX) -// http://crbug.com/103912 -#define MAYBE_BrowserFullscreenExit DISABLED_BrowserFullscreenExit -#else -#define MAYBE_BrowserFullscreenExit BrowserFullscreenExit -#endif -IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, MAYBE_BrowserFullscreenExit) { - // Enter browser fullscreen. - ASSERT_NO_FATAL_FAILURE(ToggleBrowserFullscreen(true)); - - // Enter tab fullscreen. - AddTabAtIndexAndWait(0, GURL(chrome::kAboutBlankURL), - content::PAGE_TRANSITION_TYPED); - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(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. -#if defined(OS_MACOSX) -// http://crbug.com/103912 -#define MAYBE_BrowserFullscreenAfterTabFSExit \ - DISABLED_BrowserFullscreenAfterTabFSExit -#elif defined(OS_LINUX) -// http://crbug.com/146008 -#define MAYBE_BrowserFullscreenAfterTabFSExit \ - DISABLED_BrowserFullscreenAfterTabFSExit -#else -#define MAYBE_BrowserFullscreenAfterTabFSExit BrowserFullscreenAfterTabFSExit -#endif -IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, - MAYBE_BrowserFullscreenAfterTabFSExit) { - // Enter browser fullscreen. - ASSERT_NO_FATAL_FAILURE(ToggleBrowserFullscreen(true)); - - // Enter and then exit tab fullscreen. - AddTabAtIndexAndWait(0, GURL(chrome::kAboutBlankURL), - content::PAGE_TRANSITION_TYPED); - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(false)); - - // Verify browser fullscreen still active. - ASSERT_TRUE(IsFullscreenForBrowser()); -} - -// Tests fullscreen entered without permision prompt for file:// urls. -#if defined(OS_LINUX) -// http://crbug.com/146008 -#define MAYBE_FullscreenFileURL DISABLED_FullscreenFileURL -#else -#define MAYBE_FullscreenFileURL FullscreenFileURL -#endif - -IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, MAYBE_FullscreenFileURL) { - ui_test_utils::NavigateToURL(browser(), - ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory), - FilePath(kSimpleFile))); - - // Validate that going fullscreen for a file does not ask permision. - ASSERT_FALSE(IsFullscreenPermissionRequested()); - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); - ASSERT_FALSE(IsFullscreenPermissionRequested()); - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(false)); -} - -// Tests fullscreen is exited on page navigation. -// (Similar to mouse lock version in FullscreenControllerInteractiveTest) -#if defined(OS_MACOSX) -// http://crbug.com/103912 -#define MAYBE_TestTabExitsFullscreenOnNavigation \ - DISABLED_TestTabExitsFullscreenOnNavigation -#else -#define MAYBE_TestTabExitsFullscreenOnNavigation \ - TestTabExitsFullscreenOnNavigation -#endif -IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, - MAYBE_TestTabExitsFullscreenOnNavigation) { - ASSERT_TRUE(test_server()->Start()); - - ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); - ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab")); - - ASSERT_FALSE(browser()->window()->IsFullscreen()); -} - -// Tests fullscreen is exited when navigating back. -// (Similar to mouse lock version in FullscreenControllerInteractiveTest) -#if defined(OS_MACOSX) -// http://crbug.com/103912 -#define MAYBE_TestTabExitsFullscreenOnGoBack \ - DISABLED_TestTabExitsFullscreenOnGoBack -#elif defined(OS_LINUX) -// http://crbug.com/146008 -#define MAYBE_TestTabExitsFullscreenOnGoBack \ - DISABLED_TestTabExitsFullscreenOnGoBack -#else -#define MAYBE_TestTabExitsFullscreenOnGoBack TestTabExitsFullscreenOnGoBack -#endif -IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, - MAYBE_TestTabExitsFullscreenOnGoBack) { - ASSERT_TRUE(test_server()->Start()); - - ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); - ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab")); - - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); - - GoBack(); - - ASSERT_FALSE(browser()->window()->IsFullscreen()); -} - -// Tests fullscreen is not exited on sub frame navigation. -// (Similar to mouse lock version in FullscreenControllerInteractiveTest) -#if defined(OS_LINUX) -// http://crbug.com/146008 -#define MAYBE_TestTabDoesntExitFullscreenOnSubFrameNavigation \ - DISABLED_TestTabDoesntExitFullscreenOnSubFrameNavigation -#else -#define MAYBE_TestTabDoesntExitFullscreenOnSubFrameNavigation \ - TestTabDoesntExitFullscreenOnSubFrameNavigation -#endif -IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, - MAYBE_TestTabDoesntExitFullscreenOnSubFrameNavigation) { - ASSERT_TRUE(test_server()->Start()); - - GURL url(ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory), - FilePath(kSimpleFile))); - GURL url_with_fragment(url.spec() + "#fragment"); - - ui_test_utils::NavigateToURL(browser(), url); - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); - ui_test_utils::NavigateToURL(browser(), url_with_fragment); - ASSERT_TRUE(IsFullscreenForTabOrPending()); -} - -// Tests tab fullscreen exits, but browser fullscreen remains, on navigation. -#if defined(OS_MACOSX) -// http://crbug.com/103912 -#define MAYBE_TestFullscreenFromTabWhenAlreadyInBrowserFullscreenWorks \ - DISABLED_TestFullscreenFromTabWhenAlreadyInBrowserFullscreenWorks -#elif defined(OS_LINUX) -// http://crbug.com/146008 -#define MAYBE_TestFullscreenFromTabWhenAlreadyInBrowserFullscreenWorks \ - DISABLED_TestFullscreenFromTabWhenAlreadyInBrowserFullscreenWorks -#else -#define MAYBE_TestFullscreenFromTabWhenAlreadyInBrowserFullscreenWorks \ - TestFullscreenFromTabWhenAlreadyInBrowserFullscreenWorks -#endif -IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, - MAYBE_TestFullscreenFromTabWhenAlreadyInBrowserFullscreenWorks) { - ASSERT_TRUE(test_server()->Start()); - - ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); - ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab")); - - ASSERT_NO_FATAL_FAILURE(ToggleBrowserFullscreen(true)); - ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); - - GoBack(); - - ASSERT_TRUE(IsFullscreenForBrowser()); - ASSERT_FALSE(IsFullscreenForTabOrPending()); -} - -#if defined(OS_MACOSX) -// http://crbug.com/100467 -IN_PROC_BROWSER_TEST_F( - FullscreenControllerTest, FAILS_TabEntersPresentationModeFromWindowed) { - ASSERT_TRUE(test_server()->Start()); - - AddTabAtIndexAndWait( - 0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); - - WebContents* tab = chrome::GetActiveWebContents(browser()); - - { - FullscreenNotificationObserver fullscreen_observer; - EXPECT_FALSE(browser()->window()->IsFullscreen()); - EXPECT_FALSE(browser()->window()->InPresentationMode()); - browser()->ToggleFullscreenModeForTab(tab, true); - fullscreen_observer.Wait(); - ASSERT_TRUE(browser()->window()->IsFullscreen()); - ASSERT_TRUE(browser()->window()->InPresentationMode()); - } - - { - FullscreenNotificationObserver fullscreen_observer; - browser()->TogglePresentationMode(); - fullscreen_observer.Wait(); - ASSERT_FALSE(browser()->window()->IsFullscreen()); - ASSERT_FALSE(browser()->window()->InPresentationMode()); - } - - if (base::mac::IsOSLionOrLater()) { - // Test that tab fullscreen mode doesn't make presentation mode the default - // on Lion. - FullscreenNotificationObserver fullscreen_observer; - chrome::ToggleFullscreenMode(browser()); - fullscreen_observer.Wait(); - ASSERT_TRUE(browser()->window()->IsFullscreen()); - ASSERT_FALSE(browser()->window()->InPresentationMode()); - } -} -#endif - IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, PendingMouseLockExitsOnTabSwitch) { AddTabAtIndexAndWait(0, GURL(chrome::kAboutBlankURL), diff --git a/chrome/browser/ui/fullscreen/fullscreen_controller_interactive_browsertest.cc b/chrome/browser/ui/fullscreen/fullscreen_controller_interactive_browsertest.cc index bac8b9a..54c307c 100644 --- a/chrome/browser/ui/fullscreen/fullscreen_controller_interactive_browsertest.cc +++ b/chrome/browser/ui/fullscreen/fullscreen_controller_interactive_browsertest.cc @@ -2,7 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "build/build_config.h" +#include "chrome/browser/content_settings/host_content_settings_map.h" +#include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/browser_tabstrip.h" #include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/fullscreen/fullscreen_controller_test.h" @@ -10,12 +14,30 @@ #include "content/public/browser/render_view_host.h" #include "content/public/browser/render_widget_host_view.h" #include "content/public/browser/web_contents.h" +#include "content/public/common/url_constants.h" + +#if defined(OS_MACOSX) +#include "base/mac/mac_util.h" +#endif using content::WebContents; +namespace { + +const FilePath::CharType* kSimpleFile = FILE_PATH_LITERAL("simple.html"); + +} // namespace + class FullscreenControllerInteractiveTest : public FullscreenControllerTest { protected: + + // Tests that actually make the browser fullscreen have been flaky when + // run sharded, and so are restricted here to interactive ui tests. + void ToggleTabFullscreen(bool enter_fullscreen); + void ToggleTabFullscreenNoRetries(bool enter_fullscreen); + void ToggleBrowserFullscreen(bool enter_fullscreen); + // IsMouseLocked verifies that the FullscreenController state believes // the mouse is locked. This is possible only for tests that initiate // mouse lock from a renderer process, and uses logic that tests that the @@ -29,8 +51,459 @@ class FullscreenControllerInteractiveTest GetRenderViewHost()->GetView()->IsMouseLocked()); return browser()->IsMouseLocked(); } + + void TestFullscreenMouseLockContentSettings(); + + private: + void ToggleTabFullscreen_Internal(bool enter_fullscreen, + bool retry_until_success); }; +void FullscreenControllerInteractiveTest::ToggleTabFullscreen( + bool enter_fullscreen) { + ToggleTabFullscreen_Internal(enter_fullscreen, true); +} + +// |ToggleTabFullscreen| should not need to tolerate the transition failing. +// Most fullscreen tests run sharded in fullscreen_controller_browsertest.cc +// and some flakiness has occurred when calling |ToggleTabFullscreen|, so that +// method has been made robust by retrying if the transition fails. +// The root cause of that flakiness should still be tracked down, see +// http://crbug.com/133831. In the mean time, this method +// allows a fullscreen_controller_interactive_browsertest.cc test to verify +// that when running serially there is no flakiness in the transition. +void FullscreenControllerInteractiveTest::ToggleTabFullscreenNoRetries( + bool enter_fullscreen) { + ToggleTabFullscreen_Internal(enter_fullscreen, false); +} + +void FullscreenControllerInteractiveTest::ToggleBrowserFullscreen( + bool enter_fullscreen) { + ASSERT_EQ(browser()->window()->IsFullscreen(), !enter_fullscreen); + FullscreenNotificationObserver fullscreen_observer; + + chrome::ToggleFullscreenMode(browser()); + + fullscreen_observer.Wait(); + ASSERT_EQ(browser()->window()->IsFullscreen(), enter_fullscreen); + ASSERT_EQ(IsFullscreenForBrowser(), enter_fullscreen); +} + +// Helper method to be called by multiple tests. +// Tests Fullscreen and Mouse Lock with varying content settings ALLOW & BLOCK. +void +FullscreenControllerInteractiveTest::TestFullscreenMouseLockContentSettings() { + GURL url = test_server()->GetURL("simple.html"); + AddTabAtIndexAndWait(0, url, content::PAGE_TRANSITION_TYPED); + + // Validate that going fullscreen for a URL defaults to asking permision. + ASSERT_FALSE(IsFullscreenPermissionRequested()); + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); + ASSERT_TRUE(IsFullscreenPermissionRequested()); + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(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(true)); + ASSERT_FALSE(IsFullscreenPermissionRequested()); + + // Leaving tab in fullscreen, now test mouse lock ALLOW: + + // Validate that mouse lock defaults to asking permision. + ASSERT_FALSE(IsMouseLockPermissionRequested()); + RequestToLockMouse(true, false); + ASSERT_TRUE(IsMouseLockPermissionRequested()); + 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(IsMouseLockPermissionRequested()); + RequestToLockMouse(true, false); + 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(IsMouseLockPermissionRequested()); + RequestToLockMouse(true, false); + ASSERT_FALSE(IsMouseLockPermissionRequested()); +} + +void FullscreenControllerInteractiveTest::ToggleTabFullscreen_Internal( + bool enter_fullscreen, bool retry_until_success) { + WebContents* tab = chrome::GetActiveWebContents(browser()); + 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. + ASSERT_NE(browser()->window()->IsFullscreen(), enter_fullscreen); + do { + FullscreenNotificationObserver fullscreen_observer; + browser()->ToggleFullscreenModeForTab(tab, enter_fullscreen); + fullscreen_observer.Wait(); + // Repeat ToggleFullscreenModeForTab until the correct state is entered. + // This addresses flakiness on test bots running many fullscreen + // tests in parallel. + } while (retry_until_success && + browser()->window()->IsFullscreen() != enter_fullscreen); + ASSERT_EQ(browser()->window()->IsFullscreen(), enter_fullscreen); + } +} + +// Tests /////////////////////////////////////////////////////////////////////// + +#if defined(OS_MACOSX) +// http://crbug.com/104265 +#define MAYBE_TestNewTabExitsFullscreen DISABLED_TestNewTabExitsFullscreen +#elif defined(OS_LINUX) +// http://crbug.com/137657 +#define MAYBE_TestNewTabExitsFullscreen DISABLED_TestNewTabExitsFullscreen +#else +#define MAYBE_TestNewTabExitsFullscreen TestNewTabExitsFullscreen +#endif + +// Tests that while in fullscreen creating a new tab will exit fullscreen. +IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, + MAYBE_TestNewTabExitsFullscreen) { + ASSERT_TRUE(test_server()->Start()); + + AddTabAtIndexAndWait( + 0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); + + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); + + { + FullscreenNotificationObserver fullscreen_observer; + AddTabAtIndexAndWait( + 1, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); + fullscreen_observer.Wait(); + ASSERT_FALSE(browser()->window()->IsFullscreen()); + } +} + +#if defined(OS_MACOSX) +// http://crbug.com/100467 +#define MAYBE_TestTabExitsItselfFromFullscreen \ + FAILS_TestTabExitsItselfFromFullscreen +#elif defined(OS_LINUX) +// http://crbug.com/146008 +#define MAYBE_TestTabExitsItselfFromFullscreen \ + DISABLED_TestTabExitsItselfFromFullscreen +#else +#define MAYBE_TestTabExitsItselfFromFullscreen TestTabExitsItselfFromFullscreen +#endif + +// Tests a tab exiting fullscreen will bring the browser out of fullscreen. +IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, + MAYBE_TestTabExitsItselfFromFullscreen) { + ASSERT_TRUE(test_server()->Start()); + + AddTabAtIndexAndWait( + 0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); + + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(false)); +} + +// Tests entering fullscreen and then requesting mouse lock results in +// buttons for the user, and that after confirming the buttons are dismissed. +#if defined(OS_LINUX) +// http://crbug.com/146008 +#define MAYBE_TestFullscreenBubbleMouseLockState \ + DISABLED_TestFullscreenBubbleMouseLockState +#else +#define MAYBE_TestFullscreenBubbleMouseLockState \ + TestFullscreenBubbleMouseLockState +#endif +IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, + MAYBE_TestFullscreenBubbleMouseLockState) { + ASSERT_TRUE(test_server()->Start()); + + AddTabAtIndexAndWait(0, GURL(chrome::kAboutBlankURL), + content::PAGE_TRANSITION_TYPED); + AddTabAtIndexAndWait(1, GURL(chrome::kAboutBlankURL), + content::PAGE_TRANSITION_TYPED); + + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); + + // Request mouse lock and verify the bubble is waiting for user confirmation. + RequestToLockMouse(true, false); + ASSERT_TRUE(IsMouseLockPermissionRequested()); + + // Accept mouse lock and verify bubble no longer shows confirmation buttons. + AcceptCurrentFullscreenOrMouseLockRequest(); + ASSERT_FALSE(IsFullscreenBubbleDisplayingButtons()); +} + +#if defined(OS_MACOSX) +// http://crbug.com/133831 +#define MAYBE_FullscreenMouseLockContentSettings \ + FLAKY_FullscreenMouseLockContentSettings +#elif defined(OS_LINUX) +// http://crbug.com/146008 +#define MAYBE_FullscreenMouseLockContentSettings \ + DISABLED_FullscreenMouseLockContentSettings +#else +#define MAYBE_FullscreenMouseLockContentSettings \ + FullscreenMouseLockContentSettings +#endif +// Tests fullscreen and Mouse Lock with varying content settings ALLOW & BLOCK. +IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, + MAYBE_FullscreenMouseLockContentSettings) { + TestFullscreenMouseLockContentSettings(); +} + +#if defined(OS_MACOSX) || defined(OS_LINUX) +// http://crbug.com/103912 Mac +// http://crbug.com/143930 Linux +#define MAYBE_BrowserFullscreenMouseLockContentSettings \ + DISABLED_BrowserFullscreenMouseLockContentSettings +#else +#define MAYBE_BrowserFullscreenMouseLockContentSettings \ + BrowserFullscreenMouseLockContentSettings +#endif +// 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(FullscreenControllerInteractiveTest, + MAYBE_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. +#if defined(OS_MACOSX) +// http://crbug.com/103912 +#define MAYBE_BrowserFullscreenExit DISABLED_BrowserFullscreenExit +#else +#define MAYBE_BrowserFullscreenExit BrowserFullscreenExit +#endif +IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, + MAYBE_BrowserFullscreenExit) { + // Enter browser fullscreen. + ASSERT_NO_FATAL_FAILURE(ToggleBrowserFullscreen(true)); + + // Enter tab fullscreen. + AddTabAtIndexAndWait(0, GURL(chrome::kAboutBlankURL), + content::PAGE_TRANSITION_TYPED); + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(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. +#if defined(OS_MACOSX) +// http://crbug.com/103912 +#define MAYBE_BrowserFullscreenAfterTabFSExit \ + DISABLED_BrowserFullscreenAfterTabFSExit +#elif defined(OS_LINUX) +// http://crbug.com/146008 +#define MAYBE_BrowserFullscreenAfterTabFSExit \ + DISABLED_BrowserFullscreenAfterTabFSExit +#else +#define MAYBE_BrowserFullscreenAfterTabFSExit BrowserFullscreenAfterTabFSExit +#endif +IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, + MAYBE_BrowserFullscreenAfterTabFSExit) { + // Enter browser fullscreen. + ASSERT_NO_FATAL_FAILURE(ToggleBrowserFullscreen(true)); + + // Enter and then exit tab fullscreen. + AddTabAtIndexAndWait(0, GURL(chrome::kAboutBlankURL), + content::PAGE_TRANSITION_TYPED); + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(false)); + + // Verify browser fullscreen still active. + ASSERT_TRUE(IsFullscreenForBrowser()); +} + +// Tests fullscreen entered without permision prompt for file:// urls. +#if defined(OS_LINUX) +// http://crbug.com/146008 +#define MAYBE_FullscreenFileURL DISABLED_FullscreenFileURL +#else +#define MAYBE_FullscreenFileURL FullscreenFileURL +#endif + +IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, + MAYBE_FullscreenFileURL) { + ui_test_utils::NavigateToURL(browser(), + ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory), + FilePath(kSimpleFile))); + + // Validate that going fullscreen for a file does not ask permision. + ASSERT_FALSE(IsFullscreenPermissionRequested()); + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); + ASSERT_FALSE(IsFullscreenPermissionRequested()); + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(false)); +} + +// Tests fullscreen is exited on page navigation. +#if defined(OS_MACOSX) +// http://crbug.com/103912 +#define MAYBE_TestTabExitsFullscreenOnNavigation \ + DISABLED_TestTabExitsFullscreenOnNavigation +#else +#define MAYBE_TestTabExitsFullscreenOnNavigation \ + TestTabExitsFullscreenOnNavigation +#endif +IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, + MAYBE_TestTabExitsFullscreenOnNavigation) { + ASSERT_TRUE(test_server()->Start()); + + ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); + ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab")); + + ASSERT_FALSE(browser()->window()->IsFullscreen()); +} + +// Tests fullscreen is exited when navigating back. +#if defined(OS_MACOSX) +// http://crbug.com/103912 +#define MAYBE_TestTabExitsFullscreenOnGoBack \ + DISABLED_TestTabExitsFullscreenOnGoBack +#elif defined(OS_LINUX) +// http://crbug.com/146008 +#define MAYBE_TestTabExitsFullscreenOnGoBack \ + DISABLED_TestTabExitsFullscreenOnGoBack +#else +#define MAYBE_TestTabExitsFullscreenOnGoBack TestTabExitsFullscreenOnGoBack +#endif +IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, + MAYBE_TestTabExitsFullscreenOnGoBack) { + ASSERT_TRUE(test_server()->Start()); + + ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); + ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab")); + + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); + + GoBack(); + + ASSERT_FALSE(browser()->window()->IsFullscreen()); +} + +// Tests fullscreen is not exited on sub frame navigation. +#if defined(OS_LINUX) +// http://crbug.com/146008 +#define MAYBE_TestTabDoesntExitFullscreenOnSubFrameNavigation \ + DISABLED_TestTabDoesntExitFullscreenOnSubFrameNavigation +#else +#define MAYBE_TestTabDoesntExitFullscreenOnSubFrameNavigation \ + TestTabDoesntExitFullscreenOnSubFrameNavigation +#endif +IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, + MAYBE_TestTabDoesntExitFullscreenOnSubFrameNavigation) { + ASSERT_TRUE(test_server()->Start()); + + GURL url(ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory), + FilePath(kSimpleFile))); + GURL url_with_fragment(url.spec() + "#fragment"); + + ui_test_utils::NavigateToURL(browser(), url); + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); + ui_test_utils::NavigateToURL(browser(), url_with_fragment); + ASSERT_TRUE(IsFullscreenForTabOrPending()); +} + +// Tests tab fullscreen exits, but browser fullscreen remains, on navigation. +#if defined(OS_MACOSX) +// http://crbug.com/103912 +#define MAYBE_TestFullscreenFromTabWhenAlreadyInBrowserFullscreenWorks \ + DISABLED_TestFullscreenFromTabWhenAlreadyInBrowserFullscreenWorks +#elif defined(OS_LINUX) +// http://crbug.com/146008 +#define MAYBE_TestFullscreenFromTabWhenAlreadyInBrowserFullscreenWorks \ + DISABLED_TestFullscreenFromTabWhenAlreadyInBrowserFullscreenWorks +#else +#define MAYBE_TestFullscreenFromTabWhenAlreadyInBrowserFullscreenWorks \ + TestFullscreenFromTabWhenAlreadyInBrowserFullscreenWorks +#endif +IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, + MAYBE_TestFullscreenFromTabWhenAlreadyInBrowserFullscreenWorks) { + ASSERT_TRUE(test_server()->Start()); + + ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); + ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab")); + + ASSERT_NO_FATAL_FAILURE(ToggleBrowserFullscreen(true)); + ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(true)); + + GoBack(); + + ASSERT_TRUE(IsFullscreenForBrowser()); + ASSERT_FALSE(IsFullscreenForTabOrPending()); +} + +#if defined(OS_MACOSX) +// http://crbug.com/100467 +IN_PROC_BROWSER_TEST_F( + FullscreenControllerTest, FAILS_TabEntersPresentationModeFromWindowed) { + ASSERT_TRUE(test_server()->Start()); + + AddTabAtIndexAndWait( + 0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); + + WebContents* tab = chrome::GetActiveWebContents(browser()); + + { + FullscreenNotificationObserver fullscreen_observer; + EXPECT_FALSE(browser()->window()->IsFullscreen()); + EXPECT_FALSE(browser()->window()->InPresentationMode()); + browser()->ToggleFullscreenModeForTab(tab, true); + fullscreen_observer.Wait(); + ASSERT_TRUE(browser()->window()->IsFullscreen()); + ASSERT_TRUE(browser()->window()->InPresentationMode()); + } + + { + FullscreenNotificationObserver fullscreen_observer; + browser()->TogglePresentationMode(); + fullscreen_observer.Wait(); + ASSERT_FALSE(browser()->window()->IsFullscreen()); + ASSERT_FALSE(browser()->window()->InPresentationMode()); + } + + if (base::mac::IsOSLionOrLater()) { + // Test that tab fullscreen mode doesn't make presentation mode the default + // on Lion. + FullscreenNotificationObserver fullscreen_observer; + chrome::ToggleFullscreenMode(browser()); + fullscreen_observer.Wait(); + ASSERT_TRUE(browser()->window()->IsFullscreen()); + ASSERT_FALSE(browser()->window()->InPresentationMode()); + } +} +#endif + // Tests mouse lock can be escaped with ESC key. IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, EscapingMouseLock) { ASSERT_TRUE(test_server()->Start()); @@ -337,7 +810,6 @@ IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, } // Tests mouse lock is exited on page navigation. -// (Similar to fullscreen version in FullscreenControllerTest) IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, TestTabExitsMouseLockOnNavigation) { ASSERT_TRUE(test_server()->Start()); @@ -363,7 +835,6 @@ IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, } // Tests mouse lock is exited when navigating back. -// (Similar to fullscreen version in FullscreenControllerTest) IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, TestTabExitsMouseLockOnGoBack) { ASSERT_TRUE(test_server()->Start()); @@ -392,7 +863,6 @@ IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, } // Tests mouse lock is not exited on sub frame navigation. -// (Similar to fullscreen version in FullscreenControllerTest) IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, TestTabDoesntExitMouseLockOnSubFrameNavigation) { ASSERT_TRUE(test_server()->Start()); @@ -508,7 +978,7 @@ IN_PROC_BROWSER_TEST_F(FullscreenControllerInteractiveTest, // FullscreenControllerTest::ToggleTabFullscreen. This test verifies that // when running serially there is no flakiness. // This test reproduces the same flow as - // FullscreenControllerBrowserTest::TestFullscreenMouseLockContentSettings. + // TestFullscreenMouseLockContentSettings. // http://crbug.com/133831 GURL url = test_server()->GetURL("simple.html"); diff --git a/chrome/browser/ui/fullscreen/fullscreen_controller_test.cc b/chrome/browser/ui/fullscreen/fullscreen_controller_test.cc index 4ad110f..cdc4631 100644 --- a/chrome/browser/ui/fullscreen/fullscreen_controller_test.cc +++ b/chrome/browser/ui/fullscreen/fullscreen_controller_test.cc @@ -23,34 +23,6 @@ void FullscreenControllerTest::SetUpCommandLine(CommandLine* command_line) { command_line->AppendSwitch(switches::kEnablePointerLock); } -void FullscreenControllerTest::ToggleTabFullscreen(bool enter_fullscreen) { - ToggleTabFullscreen_Internal(enter_fullscreen, true); -} - -// |ToggleTabFullscreen| should not need to tolerate the transition failing. -// Most fullscreen tests run sharded in fullscreen_controller_browsertest.cc -// and some flakiness has occurred when calling |ToggleTabFullscreen|, so that -// method has been made robust by retrying if the transition fails. -// The root cause of that flakiness should still be tracked down, see -// http://crbug.com/133831. In the mean time, this method -// allows a fullscreen_controller_interactive_browsertest.cc test to verify -// that when running serially there is no flakiness in the transition. -void FullscreenControllerTest::ToggleTabFullscreenNoRetries( - bool enter_fullscreen) { - ToggleTabFullscreen_Internal(enter_fullscreen, false); -} - -void FullscreenControllerTest::ToggleBrowserFullscreen(bool enter_fullscreen) { - ASSERT_EQ(browser()->window()->IsFullscreen(), !enter_fullscreen); - FullscreenNotificationObserver fullscreen_observer; - - chrome::ToggleFullscreenMode(browser()); - - fullscreen_observer.Wait(); - ASSERT_EQ(browser()->window()->IsFullscreen(), enter_fullscreen); - ASSERT_EQ(IsFullscreenForBrowser(), enter_fullscreen); -} - void FullscreenControllerTest::RequestToLockMouse( bool user_gesture, bool last_unlocked_by_target) { @@ -150,24 +122,3 @@ void FullscreenControllerTest::Reload() { observer.Wait(); } -void FullscreenControllerTest::ToggleTabFullscreen_Internal( - bool enter_fullscreen, bool retry_until_success) { - WebContents* tab = chrome::GetActiveWebContents(browser()); - 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. - ASSERT_NE(browser()->window()->IsFullscreen(), enter_fullscreen); - do { - FullscreenNotificationObserver fullscreen_observer; - browser()->ToggleFullscreenModeForTab(tab, enter_fullscreen); - fullscreen_observer.Wait(); - // Repeat ToggleFullscreenModeForTab until the correct state is entered. - // This addresses flakiness on test bots running many fullscreen - // tests in parallel. - } while (retry_until_success && - browser()->window()->IsFullscreen() != enter_fullscreen); - ASSERT_EQ(browser()->window()->IsFullscreen(), enter_fullscreen); - } -} diff --git a/chrome/browser/ui/fullscreen/fullscreen_controller_test.h b/chrome/browser/ui/fullscreen/fullscreen_controller_test.h index 08a3a40..baaea67 100644 --- a/chrome/browser/ui/fullscreen/fullscreen_controller_test.h +++ b/chrome/browser/ui/fullscreen/fullscreen_controller_test.h @@ -39,9 +39,6 @@ class FullscreenControllerTest : public InProcessBrowserTest { FullscreenControllerTest() {} virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE; - void ToggleTabFullscreen(bool enter_fullscreen); - void ToggleTabFullscreenNoRetries(bool enter_fullscreen); - void ToggleBrowserFullscreen(bool enter_fullscreen); void RequestToLockMouse(bool user_gesture, bool last_unlocked_by_target); void LostMouseLock(); |