Index: chrome/browser/ui/fullscreen_controller_browsertest.cc |
diff --git a/chrome/browser/ui/fullscreen_controller_browsertest.cc b/chrome/browser/ui/fullscreen_controller_browsertest.cc |
index f6f01377ea988b8400dd6e6adff2acecf59635f9..018d77cedfa079d51aa74f61063f49a416a3c64c 100644 |
--- a/chrome/browser/ui/fullscreen_controller_browsertest.cc |
+++ b/chrome/browser/ui/fullscreen_controller_browsertest.cc |
@@ -3,11 +3,14 @@ |
// found in the LICENSE file. |
#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_window.h" |
#include "chrome/browser/ui/fullscreen_controller_test.h" |
+#include "content/public/browser/render_view_host.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" |
@@ -38,7 +41,7 @@ IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, |
MAYBE_TestNewTabExitsFullscreen) { |
ASSERT_TRUE(test_server()->Start()); |
- AddTabAtIndex( |
+ AddTabAtIndexAndWait( |
0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); |
WebContents* fullscreen_tab = browser()->GetActiveWebContents(); |
@@ -47,7 +50,7 @@ IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, |
{ |
FullscreenNotificationObserver fullscreen_observer; |
- AddTabAtIndex( |
+ AddTabAtIndexAndWait( |
1, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); |
fullscreen_observer.Wait(); |
ASSERT_FALSE(browser()->window()->IsFullscreen()); |
@@ -67,7 +70,7 @@ IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, |
MAYBE_TestTabExitsItselfFromFullscreen) { |
ASSERT_TRUE(test_server()->Start()); |
- AddTabAtIndex( |
+ AddTabAtIndexAndWait( |
0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); |
WebContents* fullscreen_tab = browser()->GetActiveWebContents(); |
@@ -81,9 +84,9 @@ IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, |
TestFullscreenBubbleMouseLockState) { |
ASSERT_TRUE(test_server()->Start()); |
- AddTabAtIndex(0, GURL(chrome::kAboutBlankURL), |
+ AddTabAtIndexAndWait(0, GURL(chrome::kAboutBlankURL), |
content::PAGE_TRANSITION_TYPED); |
- AddTabAtIndex(1, GURL(chrome::kAboutBlankURL), |
+ AddTabAtIndexAndWait(1, GURL(chrome::kAboutBlankURL), |
content::PAGE_TRANSITION_TYPED); |
WebContents* fullscreen_tab = browser()->GetActiveWebContents(); |
@@ -103,7 +106,7 @@ IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, |
// Tests Fullscreen and Mouse Lock with varying content settings ALLOW & BLOCK. |
void FullscreenControllerBrowserTest::TestFullscreenMouseLockContentSettings() { |
GURL url = test_server()->GetURL("simple.html"); |
- AddTabAtIndex(0, url, content::PAGE_TRANSITION_TYPED); |
+ AddTabAtIndexAndWait(0, url, content::PAGE_TRANSITION_TYPED); |
WebContents* tab = browser()->GetActiveWebContents(); |
// Validate that going fullscreen for a URL defaults to asking permision. |
@@ -183,7 +186,7 @@ IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, BrowserFullscreenExit) { |
ASSERT_NO_FATAL_FAILURE(ToggleBrowserFullscreen(true)); |
// Enter tab fullscreen. |
- AddTabAtIndex(0, GURL(chrome::kAboutBlankURL), |
+ AddTabAtIndexAndWait(0, GURL(chrome::kAboutBlankURL), |
content::PAGE_TRANSITION_TYPED); |
WebContents* fullscreen_tab = browser()->GetActiveWebContents(); |
ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(fullscreen_tab, true)); |
@@ -200,7 +203,7 @@ IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, |
ASSERT_NO_FATAL_FAILURE(ToggleBrowserFullscreen(true)); |
// Enter and then exit tab fullscreen. |
- AddTabAtIndex(0, GURL(chrome::kAboutBlankURL), |
+ AddTabAtIndexAndWait(0, GURL(chrome::kAboutBlankURL), |
content::PAGE_TRANSITION_TYPED); |
WebContents* fullscreen_tab = browser()->GetActiveWebContents(); |
ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(fullscreen_tab, true)); |
@@ -224,13 +227,62 @@ IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, FullscreenFileURL) { |
ASSERT_NO_FATAL_FAILURE(ToggleTabFullscreen(tab, false)); |
} |
+IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, |
+ TestTabExitsFullscreenOnNavigation) { |
+ ASSERT_TRUE(test_server()->Start()); |
+ |
+ ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); |
+ ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab")); |
+ |
+ WebContents* fullscreen_tab = browser()->GetActiveWebContents(); |
+ |
+ ui_test_utils::WindowedNotificationObserver tree_updated_observer1( |
+ chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
+ content::NotificationService::AllSources()); |
+ browser()->ToggleFullscreenModeForTab(fullscreen_tab, true); |
+ tree_updated_observer1.Wait(); |
scheib
2012/06/15 16:12:31
This block (and similar one in next test) can be r
koz (OOO until 15th September)
2012/06/18 02:28:10
Done.
|
+ |
+ ASSERT_TRUE(browser()->window()->IsFullscreen()); |
+ |
+ ui_test_utils::WindowedNotificationObserver tree_updated_observer2( |
+ chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
+ content::NotificationService::AllSources()); |
+ browser()->GoBack(CURRENT_TAB); |
+ tree_updated_observer2.Wait(); |
scheib
2012/06/15 16:12:31
Please refactor this block into a method on Fullsc
koz (OOO until 15th September)
2012/06/18 02:28:10
Done.
|
+ |
+ ASSERT_FALSE(browser()->window()->IsFullscreen()); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(FullscreenControllerTest, |
+ TestTabDoesntExitFullscreenOnSubFrameNavigation) { |
+ ASSERT_TRUE(test_server()->Start()); |
+ |
+ GURL url(ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory), |
+ FilePath(kSimpleFile))); |
+ ui_test_utils::NavigateToURL(browser(), url); |
+ |
+ WebContents* fullscreen_tab = browser()->GetActiveWebContents(); |
+ |
+ ui_test_utils::WindowedNotificationObserver tree_updated_observer1( |
+ chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
+ content::NotificationService::AllSources()); |
+ browser()->ToggleFullscreenModeForTab(fullscreen_tab, true); |
+ tree_updated_observer1.Wait(); |
+ ASSERT_TRUE(browser()->window()->IsFullscreen()); |
+ |
+ GURL url_with_fragment(url.spec() + "#fragment"); |
+ ui_test_utils::NavigateToURL(browser(), url_with_fragment); |
+ |
+ ASSERT_TRUE(browser()->window()->IsFullscreen()); |
scheib
2012/06/15 16:12:31
If fullscreen were to change, it likely wouldn't h
koz (OOO until 15th September)
2012/06/18 02:28:10
NavigateToURL() blocks until the navigation is com
|
+} |
+ |
#if defined(OS_MACOSX) |
// http://crbug.com/100467 |
IN_PROC_BROWSER_TEST_F( |
FullscreenControllerTest, FAILS_TabEntersPresentationModeFromWindowed) { |
ASSERT_TRUE(test_server()->Start()); |
- AddTabAtIndex( |
+ AddTabAtIndexAndWait( |
0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); |
WebContents* fullscreen_tab = browser()->GetActiveWebContents(); |