Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6627)

Unified Diff: chrome/browser/ui/fullscreen_controller_browsertest.cc

Issue 10378061: Exit tabbed fullscreen mode on navigation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add comment Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698