OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/command_line.h" | 5 #include "base/command_line.h" |
6 #include "base/test/histogram_tester.h" | 6 #include "base/test/histogram_tester.h" |
7 #include "build/build_config.h" | 7 #include "build/build_config.h" |
8 #include "chrome/browser/ui/browser.h" | 8 #include "chrome/browser/ui/browser.h" |
9 #include "chrome/browser/ui/browser_tabstrip.h" | 9 #include "chrome/browser/ui/browser_tabstrip.h" |
10 #include "chrome/browser/ui/exclusive_access/exclusive_access_context.h" | 10 #include "chrome/browser/ui/exclusive_access/exclusive_access_context.h" |
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
478 // Test that switching tabs via detaching the active tab (which is in tab | 478 // Test that switching tabs via detaching the active tab (which is in tab |
479 // fullscreen) takes the browser out of tab fullscreen. This case can | 479 // fullscreen) takes the browser out of tab fullscreen. This case can |
480 // occur if the user is in both tab fullscreen and immersive browser fullscreen. | 480 // occur if the user is in both tab fullscreen and immersive browser fullscreen. |
481 TEST_F(FullscreenControllerStateUnitTest, ExitTabFullscreenViaDetachingTab) { | 481 TEST_F(FullscreenControllerStateUnitTest, ExitTabFullscreenViaDetachingTab) { |
482 AddTab(browser(), GURL(url::kAboutBlankURL)); | 482 AddTab(browser(), GURL(url::kAboutBlankURL)); |
483 AddTab(browser(), GURL(url::kAboutBlankURL)); | 483 AddTab(browser(), GURL(url::kAboutBlankURL)); |
484 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); | 484 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); |
485 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)); | 485 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)); |
486 ASSERT_TRUE(browser()->window()->IsFullscreen()); | 486 ASSERT_TRUE(browser()->window()->IsFullscreen()); |
487 | 487 |
488 scoped_ptr<content::WebContents> web_contents( | 488 std::unique_ptr<content::WebContents> web_contents( |
489 browser()->tab_strip_model()->DetachWebContentsAt(0)); | 489 browser()->tab_strip_model()->DetachWebContentsAt(0)); |
490 ChangeWindowFullscreenState(); | 490 ChangeWindowFullscreenState(); |
491 EXPECT_FALSE(browser()->window()->IsFullscreen()); | 491 EXPECT_FALSE(browser()->window()->IsFullscreen()); |
492 } | 492 } |
493 | 493 |
494 // Test that replacing the web contents for a tab which is in tab fullscreen | 494 // Test that replacing the web contents for a tab which is in tab fullscreen |
495 // takes the browser out of tab fullscreen. This can occur if the user | 495 // takes the browser out of tab fullscreen. This can occur if the user |
496 // navigates to a prerendered page from a page which is tab fullscreen. | 496 // navigates to a prerendered page from a page which is tab fullscreen. |
497 TEST_F(FullscreenControllerStateUnitTest, ExitTabFullscreenViaReplacingTab) { | 497 TEST_F(FullscreenControllerStateUnitTest, ExitTabFullscreenViaReplacingTab) { |
498 AddTab(browser(), GURL(url::kAboutBlankURL)); | 498 AddTab(browser(), GURL(url::kAboutBlankURL)); |
499 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); | 499 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); |
500 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)); | 500 ASSERT_TRUE(InvokeEvent(WINDOW_CHANGE)); |
501 ASSERT_TRUE(browser()->window()->IsFullscreen()); | 501 ASSERT_TRUE(browser()->window()->IsFullscreen()); |
502 | 502 |
503 content::WebContents* new_web_contents = content::WebContents::Create( | 503 content::WebContents* new_web_contents = content::WebContents::Create( |
504 content::WebContents::CreateParams(profile())); | 504 content::WebContents::CreateParams(profile())); |
505 scoped_ptr<content::WebContents> old_web_contents( | 505 std::unique_ptr<content::WebContents> old_web_contents( |
506 browser()->tab_strip_model()->ReplaceWebContentsAt( | 506 browser()->tab_strip_model()->ReplaceWebContentsAt(0, new_web_contents)); |
507 0, new_web_contents)); | |
508 ChangeWindowFullscreenState(); | 507 ChangeWindowFullscreenState(); |
509 EXPECT_FALSE(browser()->window()->IsFullscreen()); | 508 EXPECT_FALSE(browser()->window()->IsFullscreen()); |
510 } | 509 } |
511 | 510 |
512 // Tests that, in a browser configured for Fullscreen-Within-Tab mode, | 511 // Tests that, in a browser configured for Fullscreen-Within-Tab mode, |
513 // fullscreening a screen-captured tab will NOT cause any fullscreen state | 512 // fullscreening a screen-captured tab will NOT cause any fullscreen state |
514 // change to the browser window. Furthermore, the test switches between tabs to | 513 // change to the browser window. Furthermore, the test switches between tabs to |
515 // confirm a captured tab will be resized by FullscreenController to the capture | 514 // confirm a captured tab will be resized by FullscreenController to the capture |
516 // video resolution once the widget is detached from the UI. | 515 // video resolution once the widget is detached from the UI. |
517 // | 516 // |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
823 ASSERT_FALSE(GetFullscreenController()->IsWindowFullscreenForTabOrPending()); | 822 ASSERT_FALSE(GetFullscreenController()->IsWindowFullscreenForTabOrPending()); |
824 | 823 |
825 // Enter tab fullscreen. Since the tab is being captured, the browser window | 824 // Enter tab fullscreen. Since the tab is being captured, the browser window |
826 // should not expand to fill the screen. | 825 // should not expand to fill the screen. |
827 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); | 826 ASSERT_TRUE(InvokeEvent(TAB_FULLSCREEN_TRUE)); |
828 EXPECT_FALSE(browser()->window()->IsFullscreen()); | 827 EXPECT_FALSE(browser()->window()->IsFullscreen()); |
829 EXPECT_TRUE(wc_delegate->IsFullscreenForTabOrPending(tab)); | 828 EXPECT_TRUE(wc_delegate->IsFullscreenForTabOrPending(tab)); |
830 EXPECT_FALSE(GetFullscreenController()->IsWindowFullscreenForTabOrPending()); | 829 EXPECT_FALSE(GetFullscreenController()->IsWindowFullscreenForTabOrPending()); |
831 | 830 |
832 // Create the second browser window. | 831 // Create the second browser window. |
833 const scoped_ptr<BrowserWindow> second_browser_window(CreateBrowserWindow()); | 832 const std::unique_ptr<BrowserWindow> second_browser_window( |
834 const scoped_ptr<Browser> second_browser( | 833 CreateBrowserWindow()); |
| 834 const std::unique_ptr<Browser> second_browser( |
835 CreateBrowser(browser()->profile(), browser()->type(), false, | 835 CreateBrowser(browser()->profile(), browser()->type(), false, |
836 second_browser_window.get())); | 836 second_browser_window.get())); |
837 AddTab(second_browser.get(), GURL(url::kAboutBlankURL)); | 837 AddTab(second_browser.get(), GURL(url::kAboutBlankURL)); |
838 content::WebContentsDelegate* const second_wc_delegate = | 838 content::WebContentsDelegate* const second_wc_delegate = |
839 static_cast<content::WebContentsDelegate*>(second_browser.get()); | 839 static_cast<content::WebContentsDelegate*>(second_browser.get()); |
840 | 840 |
841 // Detach the tab from the first browser window and attach it to the second. | 841 // Detach the tab from the first browser window and attach it to the second. |
842 // The tab should remain in fullscreen mode and neither browser window should | 842 // The tab should remain in fullscreen mode and neither browser window should |
843 // have expanded. It is correct for both FullscreenControllers to agree the | 843 // have expanded. It is correct for both FullscreenControllers to agree the |
844 // tab is in fullscreen mode. | 844 // tab is in fullscreen mode. |
(...skipping 30 matching lines...) Expand all Loading... |
875 EXPECT_FALSE(wc_delegate->IsFullscreenForTabOrPending(tab)); | 875 EXPECT_FALSE(wc_delegate->IsFullscreenForTabOrPending(tab)); |
876 EXPECT_FALSE(second_wc_delegate->IsFullscreenForTabOrPending(tab)); | 876 EXPECT_FALSE(second_wc_delegate->IsFullscreenForTabOrPending(tab)); |
877 EXPECT_FALSE(GetFullscreenController()->IsWindowFullscreenForTabOrPending()); | 877 EXPECT_FALSE(GetFullscreenController()->IsWindowFullscreenForTabOrPending()); |
878 EXPECT_FALSE(second_browser->exclusive_access_manager() | 878 EXPECT_FALSE(second_browser->exclusive_access_manager() |
879 ->fullscreen_controller() | 879 ->fullscreen_controller() |
880 ->IsWindowFullscreenForTabOrPending()); | 880 ->IsWindowFullscreenForTabOrPending()); |
881 | 881 |
882 // Required tear-down specific to this test. | 882 // Required tear-down specific to this test. |
883 second_browser->tab_strip_model()->CloseAllTabs(); | 883 second_browser->tab_strip_model()->CloseAllTabs(); |
884 } | 884 } |
OLD | NEW |