| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 8 #include "base/file_path.h" | 8 #include "base/file_path.h" |
| 9 #if defined(OS_MACOSX) | 9 #if defined(OS_MACOSX) |
| 10 #include "base/mac/mac_util.h" | 10 #include "base/mac/mac_util.h" |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 33 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
| 34 #include "chrome/common/chrome_notification_types.h" | 34 #include "chrome/common/chrome_notification_types.h" |
| 35 #include "chrome/common/chrome_switches.h" | 35 #include "chrome/common/chrome_switches.h" |
| 36 #include "chrome/common/extensions/extension.h" | 36 #include "chrome/common/extensions/extension.h" |
| 37 #include "chrome/common/url_constants.h" | 37 #include "chrome/common/url_constants.h" |
| 38 #include "chrome/test/base/in_process_browser_test.h" | 38 #include "chrome/test/base/in_process_browser_test.h" |
| 39 #include "chrome/test/base/ui_test_utils.h" | 39 #include "chrome/test/base/ui_test_utils.h" |
| 40 #include "content/browser/renderer_host/render_process_host.h" | 40 #include "content/browser/renderer_host/render_process_host.h" |
| 41 #include "content/browser/renderer_host/render_view_host.h" | 41 #include "content/browser/renderer_host/render_view_host.h" |
| 42 #include "content/browser/tab_contents/tab_contents.h" | 42 #include "content/browser/tab_contents/tab_contents.h" |
| 43 #include "content/public/browser/notification_service.h" |
| 43 #include "content/public/browser/notification_source.h" | 44 #include "content/public/browser/notification_source.h" |
| 44 #include "content/public/common/page_transition_types.h" | 45 #include "content/public/common/page_transition_types.h" |
| 45 #include "content/public/common/url_constants.h" | 46 #include "content/public/common/url_constants.h" |
| 46 #include "grit/chromium_strings.h" | 47 #include "grit/chromium_strings.h" |
| 47 #include "grit/generated_resources.h" | 48 #include "grit/generated_resources.h" |
| 48 #include "net/base/mock_host_resolver.h" | 49 #include "net/base/mock_host_resolver.h" |
| 49 #include "net/test/test_server.h" | 50 #include "net/test/test_server.h" |
| 50 #include "ui/base/l10n/l10n_util.h" | 51 #include "ui/base/l10n/l10n_util.h" |
| 51 | 52 |
| 52 #if defined(OS_WIN) | 53 #if defined(OS_WIN) |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 FilePath(kBeforeUnloadFile))); | 293 FilePath(kBeforeUnloadFile))); |
| 293 ui_test_utils::NavigateToURL(browser(), url); | 294 ui_test_utils::NavigateToURL(browser(), url); |
| 294 | 295 |
| 295 // Navigate to a page that triggers a cross-site transition. | 296 // Navigate to a page that triggers a cross-site transition. |
| 296 ASSERT_TRUE(test_server()->Start()); | 297 ASSERT_TRUE(test_server()->Start()); |
| 297 GURL url2(test_server()->GetURL("files/title1.html")); | 298 GURL url2(test_server()->GetURL("files/title1.html")); |
| 298 browser()->OpenURL(url2, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED); | 299 browser()->OpenURL(url2, GURL(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED); |
| 299 | 300 |
| 300 ui_test_utils::WindowedNotificationObserver host_destroyed_observer( | 301 ui_test_utils::WindowedNotificationObserver host_destroyed_observer( |
| 301 content::NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED, | 302 content::NOTIFICATION_RENDER_WIDGET_HOST_DESTROYED, |
| 302 NotificationService::AllSources()); | 303 content::NotificationService::AllSources()); |
| 303 | 304 |
| 304 // Cancel the dialog. | 305 // Cancel the dialog. |
| 305 AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog(); | 306 AppModalDialog* alert = ui_test_utils::WaitForAppModalDialog(); |
| 306 alert->CloseModalDialog(); | 307 alert->CloseModalDialog(); |
| 307 EXPECT_FALSE(browser()->GetSelectedTabContents()->IsLoading()); | 308 EXPECT_FALSE(browser()->GetSelectedTabContents()->IsLoading()); |
| 308 | 309 |
| 309 // Wait for the ShouldClose_ACK to arrive. We can detect it by waiting for | 310 // Wait for the ShouldClose_ACK to arrive. We can detect it by waiting for |
| 310 // the pending RVH to be destroyed. | 311 // the pending RVH to be destroyed. |
| 311 host_destroyed_observer.Wait(); | 312 host_destroyed_observer.Wait(); |
| 312 EXPECT_EQ(url.spec(), UTF16ToUTF8(browser()->toolbar_model()->GetText())); | 313 EXPECT_EQ(url.spec(), UTF16ToUTF8(browser()->toolbar_model()->GetText())); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 373 // Now open a tab to a blank page, set its opener to null, and redirect it | 374 // Now open a tab to a blank page, set its opener to null, and redirect it |
| 374 // cross-site. | 375 // cross-site. |
| 375 std::string redirect_popup = "w=window.open();"; | 376 std::string redirect_popup = "w=window.open();"; |
| 376 redirect_popup += "w.opener=null;"; | 377 redirect_popup += "w.opener=null;"; |
| 377 redirect_popup += "w.document.location=\""; | 378 redirect_popup += "w.document.location=\""; |
| 378 redirect_popup += https_url.spec(); | 379 redirect_popup += https_url.spec(); |
| 379 redirect_popup += "\";"; | 380 redirect_popup += "\";"; |
| 380 | 381 |
| 381 ui_test_utils::WindowedNotificationObserver popup_observer( | 382 ui_test_utils::WindowedNotificationObserver popup_observer( |
| 382 content::NOTIFICATION_TAB_ADDED, | 383 content::NOTIFICATION_TAB_ADDED, |
| 383 NotificationService::AllSources()); | 384 content::NotificationService::AllSources()); |
| 384 ui_test_utils::WindowedNotificationObserver nav_observer( | 385 ui_test_utils::WindowedNotificationObserver nav_observer( |
| 385 content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 386 content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
| 386 NotificationService::AllSources()); | 387 content::NotificationService::AllSources()); |
| 387 oldtab->render_view_host()-> | 388 oldtab->render_view_host()-> |
| 388 ExecuteJavascriptInWebFrame(string16(), ASCIIToUTF16(redirect_popup)); | 389 ExecuteJavascriptInWebFrame(string16(), ASCIIToUTF16(redirect_popup)); |
| 389 | 390 |
| 390 // Wait for popup window to appear and finish navigating. | 391 // Wait for popup window to appear and finish navigating. |
| 391 popup_observer.Wait(); | 392 popup_observer.Wait(); |
| 392 ASSERT_EQ(2, browser()->tab_count()); | 393 ASSERT_EQ(2, browser()->tab_count()); |
| 393 TabContents* newtab = browser()->GetSelectedTabContents(); | 394 TabContents* newtab = browser()->GetSelectedTabContents(); |
| 394 EXPECT_TRUE(newtab); | 395 EXPECT_TRUE(newtab); |
| 395 EXPECT_NE(oldtab, newtab); | 396 EXPECT_NE(oldtab, newtab); |
| 396 nav_observer.Wait(); | 397 nav_observer.Wait(); |
| 397 ASSERT_TRUE(newtab->controller().GetLastCommittedEntry()); | 398 ASSERT_TRUE(newtab->controller().GetLastCommittedEntry()); |
| 398 EXPECT_EQ(https_url.spec(), | 399 EXPECT_EQ(https_url.spec(), |
| 399 newtab->controller().GetLastCommittedEntry()->url().spec()); | 400 newtab->controller().GetLastCommittedEntry()->url().spec()); |
| 400 | 401 |
| 401 // Popup window should not be in the opener's process. | 402 // Popup window should not be in the opener's process. |
| 402 RenderProcessHost* popup_process = newtab->render_view_host()->process(); | 403 RenderProcessHost* popup_process = newtab->render_view_host()->process(); |
| 403 EXPECT_NE(process, popup_process); | 404 EXPECT_NE(process, popup_process); |
| 404 | 405 |
| 405 // Now open a tab to a blank page, set its opener to null, and use a | 406 // Now open a tab to a blank page, set its opener to null, and use a |
| 406 // meta-refresh to navigate it instead. | 407 // meta-refresh to navigate it instead. |
| 407 std::string refresh_popup = "w=window.open();"; | 408 std::string refresh_popup = "w=window.open();"; |
| 408 refresh_popup += "w.opener=null;"; | 409 refresh_popup += "w.opener=null;"; |
| 409 refresh_popup += "w.document.write("; | 410 refresh_popup += "w.document.write("; |
| 410 refresh_popup += "'<META HTTP-EQUIV=\"refresh\" content=\"0; url="; | 411 refresh_popup += "'<META HTTP-EQUIV=\"refresh\" content=\"0; url="; |
| 411 refresh_popup += https_url.spec(); | 412 refresh_popup += https_url.spec(); |
| 412 refresh_popup += "\">');w.document.close();"; | 413 refresh_popup += "\">');w.document.close();"; |
| 413 | 414 |
| 414 ui_test_utils::WindowedNotificationObserver popup_observer2( | 415 ui_test_utils::WindowedNotificationObserver popup_observer2( |
| 415 content::NOTIFICATION_TAB_ADDED, | 416 content::NOTIFICATION_TAB_ADDED, |
| 416 NotificationService::AllSources()); | 417 content::NotificationService::AllSources()); |
| 417 ui_test_utils::WindowedNotificationObserver nav_observer2( | 418 ui_test_utils::WindowedNotificationObserver nav_observer2( |
| 418 content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 419 content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
| 419 NotificationService::AllSources()); | 420 content::NotificationService::AllSources()); |
| 420 oldtab->render_view_host()-> | 421 oldtab->render_view_host()-> |
| 421 ExecuteJavascriptInWebFrame(string16(), ASCIIToUTF16(refresh_popup)); | 422 ExecuteJavascriptInWebFrame(string16(), ASCIIToUTF16(refresh_popup)); |
| 422 | 423 |
| 423 // Wait for popup window to appear and finish navigating. | 424 // Wait for popup window to appear and finish navigating. |
| 424 popup_observer2.Wait(); | 425 popup_observer2.Wait(); |
| 425 ASSERT_EQ(3, browser()->tab_count()); | 426 ASSERT_EQ(3, browser()->tab_count()); |
| 426 TabContents* newtab2 = browser()->GetSelectedTabContents(); | 427 TabContents* newtab2 = browser()->GetSelectedTabContents(); |
| 427 EXPECT_TRUE(newtab2); | 428 EXPECT_TRUE(newtab2); |
| 428 EXPECT_NE(oldtab, newtab2); | 429 EXPECT_NE(oldtab, newtab2); |
| 429 nav_observer2.Wait(); | 430 nav_observer2.Wait(); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 458 | 459 |
| 459 // Now open a tab to a blank page, set its opener to null, and redirect it | 460 // Now open a tab to a blank page, set its opener to null, and redirect it |
| 460 // cross-site. | 461 // cross-site. |
| 461 std::string dont_fork_popup = "w=window.open();"; | 462 std::string dont_fork_popup = "w=window.open();"; |
| 462 dont_fork_popup += "w.document.location=\""; | 463 dont_fork_popup += "w.document.location=\""; |
| 463 dont_fork_popup += https_url.spec(); | 464 dont_fork_popup += https_url.spec(); |
| 464 dont_fork_popup += "\";"; | 465 dont_fork_popup += "\";"; |
| 465 | 466 |
| 466 ui_test_utils::WindowedNotificationObserver popup_observer( | 467 ui_test_utils::WindowedNotificationObserver popup_observer( |
| 467 content::NOTIFICATION_TAB_ADDED, | 468 content::NOTIFICATION_TAB_ADDED, |
| 468 NotificationService::AllSources()); | 469 content::NotificationService::AllSources()); |
| 469 ui_test_utils::WindowedNotificationObserver nav_observer( | 470 ui_test_utils::WindowedNotificationObserver nav_observer( |
| 470 content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 471 content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
| 471 NotificationService::AllSources()); | 472 content::NotificationService::AllSources()); |
| 472 oldtab->render_view_host()-> | 473 oldtab->render_view_host()-> |
| 473 ExecuteJavascriptInWebFrame(string16(), ASCIIToUTF16(dont_fork_popup)); | 474 ExecuteJavascriptInWebFrame(string16(), ASCIIToUTF16(dont_fork_popup)); |
| 474 | 475 |
| 475 // Wait for popup window to appear and finish navigating. | 476 // Wait for popup window to appear and finish navigating. |
| 476 popup_observer.Wait(); | 477 popup_observer.Wait(); |
| 477 ASSERT_EQ(2, browser()->tab_count()); | 478 ASSERT_EQ(2, browser()->tab_count()); |
| 478 TabContents* newtab = browser()->GetSelectedTabContents(); | 479 TabContents* newtab = browser()->GetSelectedTabContents(); |
| 479 EXPECT_TRUE(newtab); | 480 EXPECT_TRUE(newtab); |
| 480 EXPECT_NE(oldtab, newtab); | 481 EXPECT_NE(oldtab, newtab); |
| 481 nav_observer.Wait(); | 482 nav_observer.Wait(); |
| 482 ASSERT_TRUE(newtab->controller().GetLastCommittedEntry()); | 483 ASSERT_TRUE(newtab->controller().GetLastCommittedEntry()); |
| 483 EXPECT_EQ(https_url.spec(), | 484 EXPECT_EQ(https_url.spec(), |
| 484 newtab->controller().GetLastCommittedEntry()->url().spec()); | 485 newtab->controller().GetLastCommittedEntry()->url().spec()); |
| 485 | 486 |
| 486 // Popup window should still be in the opener's process. | 487 // Popup window should still be in the opener's process. |
| 487 RenderProcessHost* popup_process = newtab->render_view_host()->process(); | 488 RenderProcessHost* popup_process = newtab->render_view_host()->process(); |
| 488 EXPECT_EQ(process, popup_process); | 489 EXPECT_EQ(process, popup_process); |
| 489 | 490 |
| 490 // Same thing if the current tab tries to navigate itself. | 491 // Same thing if the current tab tries to navigate itself. |
| 491 std::string navigate_str = "document.location=\""; | 492 std::string navigate_str = "document.location=\""; |
| 492 navigate_str += https_url.spec(); | 493 navigate_str += https_url.spec(); |
| 493 navigate_str += "\";"; | 494 navigate_str += "\";"; |
| 494 | 495 |
| 495 ui_test_utils::WindowedNotificationObserver nav_observer2( | 496 ui_test_utils::WindowedNotificationObserver nav_observer2( |
| 496 content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 497 content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
| 497 NotificationService::AllSources()); | 498 content::NotificationService::AllSources()); |
| 498 oldtab->render_view_host()-> | 499 oldtab->render_view_host()-> |
| 499 ExecuteJavascriptInWebFrame(string16(), ASCIIToUTF16(navigate_str)); | 500 ExecuteJavascriptInWebFrame(string16(), ASCIIToUTF16(navigate_str)); |
| 500 nav_observer2.Wait(); | 501 nav_observer2.Wait(); |
| 501 ASSERT_TRUE(oldtab->controller().GetLastCommittedEntry()); | 502 ASSERT_TRUE(oldtab->controller().GetLastCommittedEntry()); |
| 502 EXPECT_EQ(https_url.spec(), | 503 EXPECT_EQ(https_url.spec(), |
| 503 oldtab->controller().GetLastCommittedEntry()->url().spec()); | 504 oldtab->controller().GetLastCommittedEntry()->url().spec()); |
| 504 | 505 |
| 505 // Original window should still be in the original process. | 506 // Original window should still be in the original process. |
| 506 RenderProcessHost* new_process = newtab->render_view_host()->process(); | 507 RenderProcessHost* new_process = newtab->render_view_host()->process(); |
| 507 EXPECT_EQ(process, new_process); | 508 EXPECT_EQ(process, new_process); |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 817 ASSERT_TRUE(test_server()->Start()); | 818 ASSERT_TRUE(test_server()->Start()); |
| 818 | 819 |
| 819 AddTabAtIndex( | 820 AddTabAtIndex( |
| 820 0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); | 821 0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); |
| 821 | 822 |
| 822 TabContents* fullscreen_tab = browser()->GetSelectedTabContents(); | 823 TabContents* fullscreen_tab = browser()->GetSelectedTabContents(); |
| 823 | 824 |
| 824 { | 825 { |
| 825 ui_test_utils::WindowedNotificationObserver fullscreen_observer( | 826 ui_test_utils::WindowedNotificationObserver fullscreen_observer( |
| 826 chrome::NOTIFICATION_FULLSCREEN_CHANGED, | 827 chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
| 827 NotificationService::AllSources()); | 828 content::NotificationService::AllSources()); |
| 828 browser()->ToggleFullscreenModeForTab(fullscreen_tab, true); | 829 browser()->ToggleFullscreenModeForTab(fullscreen_tab, true); |
| 829 fullscreen_observer.Wait(); | 830 fullscreen_observer.Wait(); |
| 830 ASSERT_TRUE(browser()->window()->IsFullscreen()); | 831 ASSERT_TRUE(browser()->window()->IsFullscreen()); |
| 831 } | 832 } |
| 832 | 833 |
| 833 { | 834 { |
| 834 ui_test_utils::WindowedNotificationObserver fullscreen_observer( | 835 ui_test_utils::WindowedNotificationObserver fullscreen_observer( |
| 835 chrome::NOTIFICATION_FULLSCREEN_CHANGED, | 836 chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
| 836 NotificationService::AllSources()); | 837 content::NotificationService::AllSources()); |
| 837 AddTabAtIndex( | 838 AddTabAtIndex( |
| 838 1, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); | 839 1, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); |
| 839 fullscreen_observer.Wait(); | 840 fullscreen_observer.Wait(); |
| 840 ASSERT_FALSE(browser()->window()->IsFullscreen()); | 841 ASSERT_FALSE(browser()->window()->IsFullscreen()); |
| 841 } | 842 } |
| 842 } | 843 } |
| 843 | 844 |
| 844 #if defined(OS_MACOSX) | 845 #if defined(OS_MACOSX) |
| 845 // http://crbug.com/100467 | 846 // http://crbug.com/100467 |
| 846 #define MAYBE_TestTabExitsItselfFromFullscreen \ | 847 #define MAYBE_TestTabExitsItselfFromFullscreen \ |
| 847 FAILS_TestTabExitsItselfFromFullscreen | 848 FAILS_TestTabExitsItselfFromFullscreen |
| 848 #else | 849 #else |
| 849 #define MAYBE_TestTabExitsItselfFromFullscreen TestTabExitsItselfFromFullscreen | 850 #define MAYBE_TestTabExitsItselfFromFullscreen TestTabExitsItselfFromFullscreen |
| 850 #endif | 851 #endif |
| 851 | 852 |
| 852 IN_PROC_BROWSER_TEST_F(BrowserTest, MAYBE_TestTabExitsItselfFromFullscreen) { | 853 IN_PROC_BROWSER_TEST_F(BrowserTest, MAYBE_TestTabExitsItselfFromFullscreen) { |
| 853 ASSERT_TRUE(test_server()->Start()); | 854 ASSERT_TRUE(test_server()->Start()); |
| 854 | 855 |
| 855 AddTabAtIndex( | 856 AddTabAtIndex( |
| 856 0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); | 857 0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); |
| 857 | 858 |
| 858 TabContents* fullscreen_tab = browser()->GetSelectedTabContents(); | 859 TabContents* fullscreen_tab = browser()->GetSelectedTabContents(); |
| 859 | 860 |
| 860 { | 861 { |
| 861 ui_test_utils::WindowedNotificationObserver fullscreen_observer( | 862 ui_test_utils::WindowedNotificationObserver fullscreen_observer( |
| 862 chrome::NOTIFICATION_FULLSCREEN_CHANGED, | 863 chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
| 863 NotificationService::AllSources()); | 864 content::NotificationService::AllSources()); |
| 864 browser()->ToggleFullscreenModeForTab(fullscreen_tab, true); | 865 browser()->ToggleFullscreenModeForTab(fullscreen_tab, true); |
| 865 fullscreen_observer.Wait(); | 866 fullscreen_observer.Wait(); |
| 866 ASSERT_TRUE(browser()->window()->IsFullscreen()); | 867 ASSERT_TRUE(browser()->window()->IsFullscreen()); |
| 867 } | 868 } |
| 868 | 869 |
| 869 { | 870 { |
| 870 ui_test_utils::WindowedNotificationObserver fullscreen_observer( | 871 ui_test_utils::WindowedNotificationObserver fullscreen_observer( |
| 871 chrome::NOTIFICATION_FULLSCREEN_CHANGED, | 872 chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
| 872 NotificationService::AllSources()); | 873 content::NotificationService::AllSources()); |
| 873 browser()->ToggleFullscreenModeForTab(fullscreen_tab, false); | 874 browser()->ToggleFullscreenModeForTab(fullscreen_tab, false); |
| 874 fullscreen_observer.Wait(); | 875 fullscreen_observer.Wait(); |
| 875 ASSERT_FALSE(browser()->window()->IsFullscreen()); | 876 ASSERT_FALSE(browser()->window()->IsFullscreen()); |
| 876 } | 877 } |
| 877 } | 878 } |
| 878 | 879 |
| 879 #if defined(OS_LINUX) | 880 #if defined(OS_LINUX) |
| 880 // http://crbug.com/100680. | 881 // http://crbug.com/100680. |
| 881 #define MAYBE_TestFullscreenBubbleMouseLockState \ | 882 #define MAYBE_TestFullscreenBubbleMouseLockState \ |
| 882 DISABLED_TestFullscreenBubbleMouseLockState | 883 DISABLED_TestFullscreenBubbleMouseLockState |
| 883 #else | 884 #else |
| 884 #define MAYBE_TestFullscreenBubbleMouseLockState \ | 885 #define MAYBE_TestFullscreenBubbleMouseLockState \ |
| 885 TestFullscreenBubbleMouseLockState | 886 TestFullscreenBubbleMouseLockState |
| 886 #endif | 887 #endif |
| 887 | 888 |
| 888 IN_PROC_BROWSER_TEST_F(BrowserTest, MAYBE_TestFullscreenBubbleMouseLockState) { | 889 IN_PROC_BROWSER_TEST_F(BrowserTest, MAYBE_TestFullscreenBubbleMouseLockState) { |
| 889 ASSERT_TRUE(test_server()->Start()); | 890 ASSERT_TRUE(test_server()->Start()); |
| 890 | 891 |
| 891 AddTabAtIndex(0, GURL(chrome::kAboutBlankURL), | 892 AddTabAtIndex(0, GURL(chrome::kAboutBlankURL), |
| 892 content::PAGE_TRANSITION_TYPED); | 893 content::PAGE_TRANSITION_TYPED); |
| 893 | 894 |
| 894 TabContents* fullscreen_tab = browser()->GetSelectedTabContents(); | 895 TabContents* fullscreen_tab = browser()->GetSelectedTabContents(); |
| 895 | 896 |
| 896 { | 897 { |
| 897 ui_test_utils::WindowedNotificationObserver fullscreen_observer( | 898 ui_test_utils::WindowedNotificationObserver fullscreen_observer( |
| 898 chrome::NOTIFICATION_FULLSCREEN_CHANGED, | 899 chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
| 899 NotificationService::AllSources()); | 900 content::NotificationService::AllSources()); |
| 900 browser()->ToggleFullscreenModeForTab(fullscreen_tab, true); | 901 browser()->ToggleFullscreenModeForTab(fullscreen_tab, true); |
| 901 fullscreen_observer.Wait(); | 902 fullscreen_observer.Wait(); |
| 902 ASSERT_TRUE(browser()->window()->IsFullscreen()); | 903 ASSERT_TRUE(browser()->window()->IsFullscreen()); |
| 903 } | 904 } |
| 904 | 905 |
| 905 browser()->RequestToLockMouse(fullscreen_tab); | 906 browser()->RequestToLockMouse(fullscreen_tab); |
| 906 FullscreenExitBubbleType type = browser()->GetFullscreenExitBubbleType(); | 907 FullscreenExitBubbleType type = browser()->GetFullscreenExitBubbleType(); |
| 907 bool mouse_lock = false; | 908 bool mouse_lock = false; |
| 908 fullscreen_bubble::PermissionRequestedByType(type, NULL, &mouse_lock); | 909 fullscreen_bubble::PermissionRequestedByType(type, NULL, &mouse_lock); |
| 909 ASSERT_TRUE(mouse_lock); | 910 ASSERT_TRUE(mouse_lock); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 920 ASSERT_TRUE(test_server()->Start()); | 921 ASSERT_TRUE(test_server()->Start()); |
| 921 | 922 |
| 922 AddTabAtIndex( | 923 AddTabAtIndex( |
| 923 0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); | 924 0, GURL(chrome::kAboutBlankURL), content::PAGE_TRANSITION_TYPED); |
| 924 | 925 |
| 925 TabContents* fullscreen_tab = browser()->GetSelectedTabContents(); | 926 TabContents* fullscreen_tab = browser()->GetSelectedTabContents(); |
| 926 | 927 |
| 927 { | 928 { |
| 928 ui_test_utils::WindowedNotificationObserver fullscreen_observer( | 929 ui_test_utils::WindowedNotificationObserver fullscreen_observer( |
| 929 chrome::NOTIFICATION_FULLSCREEN_CHANGED, | 930 chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
| 930 NotificationService::AllSources()); | 931 content::NotificationService::AllSources()); |
| 931 EXPECT_FALSE(browser()->window()->IsFullscreen()); | 932 EXPECT_FALSE(browser()->window()->IsFullscreen()); |
| 932 EXPECT_FALSE(browser()->window()->InPresentationMode()); | 933 EXPECT_FALSE(browser()->window()->InPresentationMode()); |
| 933 browser()->ToggleFullscreenModeForTab(fullscreen_tab, true); | 934 browser()->ToggleFullscreenModeForTab(fullscreen_tab, true); |
| 934 fullscreen_observer.Wait(); | 935 fullscreen_observer.Wait(); |
| 935 ASSERT_TRUE(browser()->window()->IsFullscreen()); | 936 ASSERT_TRUE(browser()->window()->IsFullscreen()); |
| 936 ASSERT_TRUE(browser()->window()->InPresentationMode()); | 937 ASSERT_TRUE(browser()->window()->InPresentationMode()); |
| 937 } | 938 } |
| 938 | 939 |
| 939 { | 940 { |
| 940 ui_test_utils::WindowedNotificationObserver fullscreen_observer( | 941 ui_test_utils::WindowedNotificationObserver fullscreen_observer( |
| 941 chrome::NOTIFICATION_FULLSCREEN_CHANGED, | 942 chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
| 942 NotificationService::AllSources()); | 943 content::NotificationService::AllSources()); |
| 943 browser()->TogglePresentationMode(false); | 944 browser()->TogglePresentationMode(false); |
| 944 fullscreen_observer.Wait(); | 945 fullscreen_observer.Wait(); |
| 945 ASSERT_FALSE(browser()->window()->IsFullscreen()); | 946 ASSERT_FALSE(browser()->window()->IsFullscreen()); |
| 946 ASSERT_FALSE(browser()->window()->InPresentationMode()); | 947 ASSERT_FALSE(browser()->window()->InPresentationMode()); |
| 947 } | 948 } |
| 948 | 949 |
| 949 if (base::mac::IsOSLionOrLater()) { | 950 if (base::mac::IsOSLionOrLater()) { |
| 950 // Test that tab fullscreen mode doesn't make presentation mode the default | 951 // Test that tab fullscreen mode doesn't make presentation mode the default |
| 951 // on Lion. | 952 // on Lion. |
| 952 ui_test_utils::WindowedNotificationObserver fullscreen_observer( | 953 ui_test_utils::WindowedNotificationObserver fullscreen_observer( |
| 953 chrome::NOTIFICATION_FULLSCREEN_CHANGED, | 954 chrome::NOTIFICATION_FULLSCREEN_CHANGED, |
| 954 NotificationService::AllSources()); | 955 content::NotificationService::AllSources()); |
| 955 browser()->ToggleFullscreenMode(false); | 956 browser()->ToggleFullscreenMode(false); |
| 956 fullscreen_observer.Wait(); | 957 fullscreen_observer.Wait(); |
| 957 ASSERT_TRUE(browser()->window()->IsFullscreen()); | 958 ASSERT_TRUE(browser()->window()->IsFullscreen()); |
| 958 ASSERT_FALSE(browser()->window()->InPresentationMode()); | 959 ASSERT_FALSE(browser()->window()->InPresentationMode()); |
| 959 } | 960 } |
| 960 } | 961 } |
| 961 #endif | 962 #endif |
| 962 | 963 |
| 963 // Chromeos defaults to restoring the last session, so this test isn't | 964 // Chromeos defaults to restoring the last session, so this test isn't |
| 964 // applicable. | 965 // applicable. |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1233 | 1234 |
| 1234 // The normal browser should now have four. | 1235 // The normal browser should now have four. |
| 1235 EXPECT_EQ(4, browser()->tab_count()); | 1236 EXPECT_EQ(4, browser()->tab_count()); |
| 1236 | 1237 |
| 1237 // Close the additional browsers. | 1238 // Close the additional browsers. |
| 1238 popup_browser->CloseAllTabs(); | 1239 popup_browser->CloseAllTabs(); |
| 1239 app_browser->CloseAllTabs(); | 1240 app_browser->CloseAllTabs(); |
| 1240 app_popup_browser->CloseAllTabs(); | 1241 app_popup_browser->CloseAllTabs(); |
| 1241 } | 1242 } |
| 1242 #endif | 1243 #endif |
| OLD | NEW |