Index: chrome/browser/ui/browser_browsertest.cc |
diff --git a/chrome/browser/ui/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc |
index 7cf1054f7dca85f550f497fb90e66966c97dd8c9..d4f3dc48789873842aaab34892ecb9c5a871828b 100644 |
--- a/chrome/browser/ui/browser_browsertest.cc |
+++ b/chrome/browser/ui/browser_browsertest.cc |
@@ -67,6 +67,8 @@ const FilePath::CharType* kBeforeUnloadFile = |
const FilePath::CharType* kTitle1File = FILE_PATH_LITERAL("title1.html"); |
const FilePath::CharType* kTitle2File = FILE_PATH_LITERAL("title2.html"); |
+const FilePath::CharType* kSubFrameNavigationFile = |
+ FILE_PATH_LITERAL("subframe-navigation.html"); |
const FilePath::CharType kDocRoot[] = FILE_PATH_LITERAL("chrome/test/data"); |
@@ -853,6 +855,53 @@ IN_PROC_BROWSER_TEST_F(BrowserTest, TestTabExitsItselfFromFullscreen) { |
} |
} |
+IN_PROC_BROWSER_TEST_F(BrowserTest, TestTabExitsFullscreenOnNavigation) { |
+ ASSERT_TRUE(test_server()->Start()); |
+ |
+ ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); |
+ ui_test_utils::NavigateToURL(browser(), GURL("chrome://newtab")); |
+ |
+ TabContents* fullscreen_tab = browser()->GetSelectedTabContents(); |
+ |
+ ui_test_utils::WindowedNotificationObserver tree_updated_observer1( |
+ chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
+ NotificationService::AllSources()); |
+ browser()->ToggleFullscreenModeForTab(fullscreen_tab, true); |
+ tree_updated_observer1.Wait(); |
+ |
+ ASSERT_TRUE(browser()->window()->IsFullscreen()); |
+ |
+ ui_test_utils::WindowedNotificationObserver tree_updated_observer2( |
+ chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
+ NotificationService::AllSources()); |
+ browser()->GoBack(CURRENT_TAB); |
+ tree_updated_observer2.Wait(); |
+ |
+ ASSERT_FALSE(browser()->window()->IsFullscreen()); |
+} |
+ |
+IN_PROC_BROWSER_TEST_F(BrowserTest, |
+ TestTabDoesntExitFullscreenOnSubFrameNavigation) { |
+ ASSERT_TRUE(test_server()->Start()); |
+ |
+ GURL url(ui_test_utils::GetTestUrl(FilePath(FilePath::kCurrentDirectory), |
+ FilePath(kSubFrameNavigationFile))); |
+ ui_test_utils::NavigateToURL(browser(), url); |
+ |
+ TabContents* fullscreen_tab = browser()->GetSelectedTabContents(); |
+ |
+ ui_test_utils::WindowedNotificationObserver tree_updated_observer1( |
+ chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
+ NotificationService::AllSources()); |
+ browser()->ToggleFullscreenModeForTab(fullscreen_tab, true); |
+ tree_updated_observer1.Wait(); |
+ ASSERT_TRUE(browser()->window()->IsFullscreen()); |
+ |
+ fullscreen_tab->render_view_host()-> |
+ ExecuteJavascriptInWebFrame(string16(), ASCIIToUTF16("navigate();")); |
+ ASSERT_TRUE(browser()->window()->IsFullscreen()); |
+} |
+ |
#if defined(OS_MACOSX) |
IN_PROC_BROWSER_TEST_F(BrowserTest, TabEntersPresentationModeFromWindowed) { |
ASSERT_TRUE(test_server()->Start()); |