OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <stdint.h> | 5 #include <stdint.h> |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
11 #include "base/run_loop.h" | 11 #include "base/run_loop.h" |
12 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
13 #include "base/test/scoped_feature_list.h" | |
14 #include "build/build_config.h" | 13 #include "build/build_config.h" |
15 #include "chrome/browser/chrome_notification_types.h" | 14 #include "chrome/browser/chrome_notification_types.h" |
16 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" | 15 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" |
17 #include "chrome/browser/content_settings/tab_specific_content_settings.h" | 16 #include "chrome/browser/content_settings/tab_specific_content_settings.h" |
18 #include "chrome/browser/history/history_test_utils.h" | 17 #include "chrome/browser/history/history_test_utils.h" |
19 #include "chrome/browser/profiles/profile.h" | 18 #include "chrome/browser/profiles/profile.h" |
20 #include "chrome/browser/search_engines/template_url_service_factory.h" | 19 #include "chrome/browser/search_engines/template_url_service_factory.h" |
21 #include "chrome/browser/ui/blocked_content/popup_blocker_tab_helper.h" | 20 #include "chrome/browser/ui/blocked_content/popup_blocker_tab_helper.h" |
22 #include "chrome/browser/ui/browser.h" | 21 #include "chrome/browser/ui/browser.h" |
23 #include "chrome/browser/ui/browser_commands.h" | 22 #include "chrome/browser/ui/browser_commands.h" |
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
516 tab->GetController().GoBack(); | 515 tab->GetController().GoBack(); |
517 content::WaitForLoadStop(tab); | 516 content::WaitForLoadStop(tab); |
518 | 517 |
519 ASSERT_EQ(1u, chrome::GetBrowserCount(browser()->profile())); | 518 ASSERT_EQ(1u, chrome::GetBrowserCount(browser()->profile())); |
520 ASSERT_EQ(1, browser()->tab_strip_model()->count()); | 519 ASSERT_EQ(1, browser()->tab_strip_model()->count()); |
521 | 520 |
522 // The popup from the unload event handler should not show up for about:blank. | 521 // The popup from the unload event handler should not show up for about:blank. |
523 ASSERT_EQ(0, GetBlockedContentsCount()); | 522 ASSERT_EQ(0, GetBlockedContentsCount()); |
524 } | 523 } |
525 | 524 |
526 // Verify that app modal prompts can't be used to create pop unders. | 525 // Verify that JavaScript dialogs can't be used to create pop unders. |
527 IN_PROC_BROWSER_TEST_F(PopupBlockerBrowserTest, ModalPopUnder) { | 526 IN_PROC_BROWSER_TEST_F(PopupBlockerBrowserTest, ModalPopUnder) { |
528 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); | 527 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); |
529 GURL url( | 528 GURL url( |
530 embedded_test_server()->GetURL("/popup_blocker/popup-window-open.html")); | 529 embedded_test_server()->GetURL("/popup_blocker/popup-window-open.html")); |
531 HostContentSettingsMapFactory::GetForProfile(browser()->profile()) | 530 HostContentSettingsMapFactory::GetForProfile(browser()->profile()) |
532 ->SetContentSettingDefaultScope(url, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, | 531 ->SetContentSettingDefaultScope(url, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, |
533 std::string(), CONTENT_SETTING_ALLOW); | 532 std::string(), CONTENT_SETTING_ALLOW); |
534 | 533 |
535 NavigateAndCheckPopupShown(url, ExpectPopup); | 534 NavigateAndCheckPopupShown(url, ExpectPopup); |
536 | 535 |
537 Browser* popup_browser = chrome::FindLastActive(); | 536 Browser* popup_browser = chrome::FindLastActive(); |
538 ASSERT_NE(popup_browser, browser()); | 537 ASSERT_NE(popup_browser, browser()); |
539 | 538 |
540 // Showing an alert will raise the tab over the popup. | 539 // Showing an alert will raise the tab over the popup. |
541 #if !defined(OS_MACOSX) | 540 #if !defined(OS_MACOSX) |
542 // Mac doesn't activate the browser during modal dialogs, see | 541 // Mac doesn't activate the browser during modal dialogs, see |
543 // https://crbug.com/687732 for details. | 542 // https://crbug.com/687732 for details. |
544 ui_test_utils::BrowserActivationWaiter alert_waiter(browser()); | 543 ui_test_utils::BrowserActivationWaiter alert_waiter(browser()); |
545 #endif | 544 #endif |
| 545 JavaScriptDialogTabHelper* js_helper = |
| 546 JavaScriptDialogTabHelper::FromWebContents(tab); |
| 547 base::RunLoop dialog_wait; |
| 548 js_helper->SetDialogShownCallbackForTesting(dialog_wait.QuitClosure()); |
546 tab->GetMainFrame()->ExecuteJavaScriptForTests(base::UTF8ToUTF16("alert()")); | 549 tab->GetMainFrame()->ExecuteJavaScriptForTests(base::UTF8ToUTF16("alert()")); |
547 app_modal::AppModalDialog* dialog = ui_test_utils::WaitForAppModalDialog(); | 550 dialog_wait.Run(); |
548 #if !defined(OS_MACOSX) | 551 #if !defined(OS_MACOSX) |
549 if (chrome::FindLastActive() != browser()) | 552 if (chrome::FindLastActive() != browser()) |
550 alert_waiter.WaitForActivation(); | 553 alert_waiter.WaitForActivation(); |
551 #endif | 554 #endif |
552 | 555 |
553 // Verify that after the dialog is closed, the popup is in front again. | 556 // Verify that after the dialog is closed, the popup is in front again. |
554 ASSERT_TRUE(dialog->IsJavaScriptModalDialog()); | |
555 app_modal::JavaScriptAppModalDialog* js_dialog = | |
556 static_cast<app_modal::JavaScriptAppModalDialog*>(dialog); | |
557 | |
558 ui_test_utils::BrowserActivationWaiter waiter(popup_browser); | 557 ui_test_utils::BrowserActivationWaiter waiter(popup_browser); |
559 js_dialog->native_dialog()->AcceptAppModalDialog(); | 558 js_helper->HandleJavaScriptDialog(tab, true, nullptr); |
560 waiter.WaitForActivation(); | 559 waiter.WaitForActivation(); |
561 ASSERT_EQ(popup_browser, chrome::FindLastActive()); | 560 ASSERT_EQ(popup_browser, chrome::FindLastActive()); |
562 } | 561 } |
563 | 562 |
564 // Verify that setting the window.opener doesn't interfere with popup blocking. | 563 // Verify that setting the window.opener doesn't interfere with popup blocking. |
565 IN_PROC_BROWSER_TEST_F(PopupBlockerBrowserTest, ModalPopUnderWindowOpener) { | 564 IN_PROC_BROWSER_TEST_F(PopupBlockerBrowserTest, ModalPopUnderWindowOpener) { |
566 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); | 565 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); |
567 GURL url( | 566 GURL url( |
568 embedded_test_server()->GetURL("/popup_blocker/popup-window-open.html")); | 567 embedded_test_server()->GetURL("/popup_blocker/popup-window-open.html")); |
569 HostContentSettingsMapFactory::GetForProfile(browser()->profile()) | 568 HostContentSettingsMapFactory::GetForProfile(browser()->profile()) |
(...skipping 10 matching lines...) Expand all Loading... |
580 ASSERT_TRUE(popup_browser->is_type_popup()); | 579 ASSERT_TRUE(popup_browser->is_type_popup()); |
581 content::ExecuteScriptAndGetValue(popup->GetMainFrame(), | 580 content::ExecuteScriptAndGetValue(popup->GetMainFrame(), |
582 "window.open('', 'mywindow')"); | 581 "window.open('', 'mywindow')"); |
583 | 582 |
584 // Showing an alert will raise the tab over the popup. | 583 // Showing an alert will raise the tab over the popup. |
585 #if !defined(OS_MACOSX) | 584 #if !defined(OS_MACOSX) |
586 // Mac doesn't activate the browser during modal dialogs, see | 585 // Mac doesn't activate the browser during modal dialogs, see |
587 // https://crbug.com/687732 for details. | 586 // https://crbug.com/687732 for details. |
588 ui_test_utils::BrowserActivationWaiter alert_waiter(browser()); | 587 ui_test_utils::BrowserActivationWaiter alert_waiter(browser()); |
589 #endif | 588 #endif |
| 589 JavaScriptDialogTabHelper* js_helper = |
| 590 JavaScriptDialogTabHelper::FromWebContents(tab); |
| 591 base::RunLoop dialog_wait; |
| 592 js_helper->SetDialogShownCallbackForTesting(dialog_wait.QuitClosure()); |
590 tab->GetMainFrame()->ExecuteJavaScriptForTests(base::UTF8ToUTF16("alert()")); | 593 tab->GetMainFrame()->ExecuteJavaScriptForTests(base::UTF8ToUTF16("alert()")); |
591 app_modal::AppModalDialog* dialog = ui_test_utils::WaitForAppModalDialog(); | 594 dialog_wait.Run(); |
592 #if !defined(OS_MACOSX) | 595 #if !defined(OS_MACOSX) |
593 if (chrome::FindLastActive() != browser()) | 596 if (chrome::FindLastActive() != browser()) |
594 alert_waiter.WaitForActivation(); | 597 alert_waiter.WaitForActivation(); |
595 #endif | 598 #endif |
596 | 599 |
597 // Verify that after the dialog is closed, the popup is in front again. | 600 // Verify that after the dialog is closed, the popup is in front again. |
598 ASSERT_TRUE(dialog->IsJavaScriptModalDialog()); | |
599 app_modal::JavaScriptAppModalDialog* js_dialog = | |
600 static_cast<app_modal::JavaScriptAppModalDialog*>(dialog); | |
601 | |
602 ui_test_utils::BrowserActivationWaiter waiter(popup_browser); | 601 ui_test_utils::BrowserActivationWaiter waiter(popup_browser); |
603 js_dialog->native_dialog()->AcceptAppModalDialog(); | 602 js_helper->HandleJavaScriptDialog(tab, true, nullptr); |
604 waiter.WaitForActivation(); | 603 waiter.WaitForActivation(); |
605 ASSERT_EQ(popup_browser, chrome::FindLastActive()); | 604 ASSERT_EQ(popup_browser, chrome::FindLastActive()); |
606 } | 605 } |
607 | 606 |
608 // Verify that popunders from subframes are prevented. https://crbug.com/705316 | 607 // Verify that popunders from subframes are prevented. https://crbug.com/705316 |
609 IN_PROC_BROWSER_TEST_F(PopupBlockerBrowserTest, ModalPopUnderSubframe) { | 608 IN_PROC_BROWSER_TEST_F(PopupBlockerBrowserTest, ModalPopUnderSubframe) { |
610 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); | 609 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); |
611 GURL url(embedded_test_server()->GetURL( | 610 GURL url(embedded_test_server()->GetURL( |
612 "/popup_blocker/popup-window-subframe-open.html")); | 611 "/popup_blocker/popup-window-subframe-open.html")); |
613 HostContentSettingsMapFactory::GetForProfile(browser()->profile()) | 612 HostContentSettingsMapFactory::GetForProfile(browser()->profile()) |
614 ->SetContentSettingDefaultScope(url, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, | 613 ->SetContentSettingDefaultScope(url, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, |
615 std::string(), CONTENT_SETTING_ALLOW); | 614 std::string(), CONTENT_SETTING_ALLOW); |
616 | 615 |
617 NavigateAndCheckPopupShown(url, ExpectPopup); | 616 NavigateAndCheckPopupShown(url, ExpectPopup); |
618 | 617 |
619 Browser* popup_browser = chrome::FindLastActive(); | 618 Browser* popup_browser = chrome::FindLastActive(); |
620 ASSERT_NE(popup_browser, browser()); | 619 ASSERT_NE(popup_browser, browser()); |
621 | 620 |
622 // Showing an alert will raise the tab over the popup. | 621 // Showing an alert will raise the tab over the popup. |
623 #if !defined(OS_MACOSX) | 622 #if !defined(OS_MACOSX) |
624 // Mac doesn't activate the browser during modal dialogs, see | 623 // Mac doesn't activate the browser during modal dialogs, see |
625 // https://crbug.com/687732 for details. | 624 // https://crbug.com/687732 for details. |
626 ui_test_utils::BrowserActivationWaiter alert_waiter(browser()); | 625 ui_test_utils::BrowserActivationWaiter alert_waiter(browser()); |
627 #endif | 626 #endif |
| 627 JavaScriptDialogTabHelper* js_helper = |
| 628 JavaScriptDialogTabHelper::FromWebContents(tab); |
| 629 base::RunLoop dialog_wait; |
| 630 js_helper->SetDialogShownCallbackForTesting(dialog_wait.QuitClosure()); |
628 tab->GetMainFrame()->ExecuteJavaScriptForTests(base::UTF8ToUTF16("alert()")); | 631 tab->GetMainFrame()->ExecuteJavaScriptForTests(base::UTF8ToUTF16("alert()")); |
629 app_modal::AppModalDialog* dialog = ui_test_utils::WaitForAppModalDialog(); | 632 dialog_wait.Run(); |
630 #if !defined(OS_MACOSX) | 633 #if !defined(OS_MACOSX) |
631 if (chrome::FindLastActive() != browser()) | 634 if (chrome::FindLastActive() != browser()) |
632 alert_waiter.WaitForActivation(); | 635 alert_waiter.WaitForActivation(); |
633 #endif | 636 #endif |
634 | 637 |
635 // Verify that after the dialog is closed, the popup is in front again. | 638 // Verify that after the dialog is closed, the popup is in front again. |
636 ASSERT_TRUE(dialog->IsJavaScriptModalDialog()); | |
637 app_modal::JavaScriptAppModalDialog* js_dialog = | |
638 static_cast<app_modal::JavaScriptAppModalDialog*>(dialog); | |
639 | |
640 ui_test_utils::BrowserActivationWaiter waiter(popup_browser); | 639 ui_test_utils::BrowserActivationWaiter waiter(popup_browser); |
641 js_dialog->native_dialog()->AcceptAppModalDialog(); | 640 js_helper->HandleJavaScriptDialog(tab, true, nullptr); |
642 waiter.WaitForActivation(); | 641 waiter.WaitForActivation(); |
643 ASSERT_EQ(popup_browser, chrome::FindLastActive()); | 642 ASSERT_EQ(popup_browser, chrome::FindLastActive()); |
644 } | 643 } |
645 | 644 |
646 // Verify that popups without an opener don't interfere with popup blocking. | 645 // Verify that popups without an opener don't interfere with popup blocking. |
647 IN_PROC_BROWSER_TEST_F(PopupBlockerBrowserTest, ModalPopUnderNoOpener) { | 646 IN_PROC_BROWSER_TEST_F(PopupBlockerBrowserTest, ModalPopUnderNoOpener) { |
648 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); | 647 WebContents* tab = browser()->tab_strip_model()->GetActiveWebContents(); |
649 GURL url(embedded_test_server()->GetURL( | 648 GURL url(embedded_test_server()->GetURL( |
650 "/popup_blocker/popup-window-open-noopener.html")); | 649 "/popup_blocker/popup-window-open-noopener.html")); |
651 HostContentSettingsMapFactory::GetForProfile(browser()->profile()) | 650 HostContentSettingsMapFactory::GetForProfile(browser()->profile()) |
652 ->SetContentSettingDefaultScope(url, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, | 651 ->SetContentSettingDefaultScope(url, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, |
653 std::string(), CONTENT_SETTING_ALLOW); | 652 std::string(), CONTENT_SETTING_ALLOW); |
654 | 653 |
655 NavigateAndCheckPopupShown(url, ExpectPopup); | 654 NavigateAndCheckPopupShown(url, ExpectPopup); |
656 | 655 |
657 Browser* popup_browser = chrome::FindLastActive(); | 656 Browser* popup_browser = chrome::FindLastActive(); |
658 ASSERT_NE(popup_browser, browser()); | 657 ASSERT_NE(popup_browser, browser()); |
659 | 658 |
660 // Showing an alert will raise the tab over the popup. | 659 // Showing an alert will raise the tab over the popup. |
661 #if !defined(OS_MACOSX) | 660 #if !defined(OS_MACOSX) |
662 // Mac doesn't activate the browser during modal dialogs, see | 661 // Mac doesn't activate the browser during modal dialogs, see |
663 // https://crbug.com/687732 for details. | 662 // https://crbug.com/687732 for details. |
664 ui_test_utils::BrowserActivationWaiter alert_waiter(browser()); | 663 ui_test_utils::BrowserActivationWaiter alert_waiter(browser()); |
665 #endif | 664 #endif |
| 665 JavaScriptDialogTabHelper* js_helper = |
| 666 JavaScriptDialogTabHelper::FromWebContents(tab); |
| 667 base::RunLoop dialog_wait; |
| 668 js_helper->SetDialogShownCallbackForTesting(dialog_wait.QuitClosure()); |
666 tab->GetMainFrame()->ExecuteJavaScriptForTests(base::UTF8ToUTF16("alert()")); | 669 tab->GetMainFrame()->ExecuteJavaScriptForTests(base::UTF8ToUTF16("alert()")); |
667 app_modal::AppModalDialog* dialog = ui_test_utils::WaitForAppModalDialog(); | 670 dialog_wait.Run(); |
668 #if !defined(OS_MACOSX) | 671 #if !defined(OS_MACOSX) |
669 if (chrome::FindLastActive() != browser()) | 672 if (chrome::FindLastActive() != browser()) |
670 alert_waiter.WaitForActivation(); | 673 alert_waiter.WaitForActivation(); |
671 #endif | |
672 | |
673 // Verify that after the dialog is closed, the popup is in front again. | |
674 ASSERT_TRUE(dialog->IsJavaScriptModalDialog()); | |
675 app_modal::JavaScriptAppModalDialog* js_dialog = | |
676 static_cast<app_modal::JavaScriptAppModalDialog*>(dialog); | |
677 | |
678 ui_test_utils::BrowserActivationWaiter waiter(popup_browser); | |
679 js_dialog->native_dialog()->AcceptAppModalDialog(); | |
680 waiter.WaitForActivation(); | |
681 ASSERT_EQ(popup_browser, chrome::FindLastActive()); | |
682 } | |
683 | |
684 // Verify that app modal prompts can't be used to create pop unders, while the | |
685 // new auto-dismissing JavaScript dialogs are enabled. | |
686 IN_PROC_BROWSER_TEST_F(PopupBlockerBrowserTest, | |
687 ModalPopUnderAutoDismissingDialogs) { | |
688 base::test::ScopedFeatureList feature_list; | |
689 feature_list.InitAndEnableFeature(features::kAutoDismissingDialogs); | |
690 | |
691 // One tab to test in. | |
692 TabStripModel* tab_strip = browser()->tab_strip_model(); | |
693 WebContents* tab = tab_strip->GetActiveWebContents(); | |
694 EXPECT_EQ(1, tab_strip->count()); | |
695 | |
696 // One blank tab for later. | |
697 ui_test_utils::NavigateToURLWithDisposition( | |
698 browser(), GURL(url::kAboutBlankURL), | |
699 WindowOpenDisposition::NEW_BACKGROUND_TAB, | |
700 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | |
701 EXPECT_EQ(2, tab_strip->count()); | |
702 ASSERT_EQ(0, tab_strip->GetIndexOfWebContents(tab)); | |
703 | |
704 // Show a popup. | |
705 JavaScriptDialogTabHelper* js_helper = | |
706 JavaScriptDialogTabHelper::FromWebContents(tab); | |
707 GURL url( | |
708 embedded_test_server()->GetURL("/popup_blocker/popup-window-open.html")); | |
709 HostContentSettingsMapFactory::GetForProfile(browser()->profile()) | |
710 ->SetContentSettingDefaultScope(url, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, | |
711 std::string(), CONTENT_SETTING_ALLOW); | |
712 | |
713 NavigateAndCheckPopupShown(url, ExpectPopup); | |
714 | |
715 Browser* popup_browser = chrome::FindLastActive(); | |
716 ASSERT_NE(popup_browser, browser()); | |
717 | |
718 // Showing an alert will raise the tab over the popup. | |
719 #if !defined(OS_MACOSX) | |
720 // Mac doesn't activate the browser during modal dialogs, see | |
721 // https://crbug.com/687732 for details. | |
722 ui_test_utils::BrowserActivationWaiter alert_waiter(browser()); | |
723 #endif | |
724 scoped_refptr<content::MessageLoopRunner> runner = | |
725 new content::MessageLoopRunner; | |
726 js_helper->SetDialogShownCallbackForTesting(runner->QuitClosure()); | |
727 tab->GetMainFrame()->ExecuteJavaScriptForTests(base::UTF8ToUTF16("alert()")); | |
728 runner->Run(); | |
729 #if !defined(OS_MACOSX) | |
730 if (chrome::FindLastActive() != browser()) | |
731 alert_waiter.WaitForActivation(); | |
732 #endif | 674 #endif |
733 | 675 |
734 // Verify that after the dialog is closed, the popup is in front again. | 676 // Verify that after the dialog is closed, the popup is in front again. |
735 ui_test_utils::BrowserActivationWaiter waiter(popup_browser); | 677 ui_test_utils::BrowserActivationWaiter waiter(popup_browser); |
736 tab_strip->ActivateTabAt(1, true); | 678 js_helper->HandleJavaScriptDialog(tab, true, nullptr); |
737 waiter.WaitForActivation(); | 679 waiter.WaitForActivation(); |
738 ASSERT_EQ(popup_browser, chrome::FindLastActive()); | 680 ASSERT_EQ(popup_browser, chrome::FindLastActive()); |
739 } | 681 } |
740 | 682 |
741 #if BUILDFLAG(ENABLE_EXTENSIONS) | 683 #if BUILDFLAG(ENABLE_EXTENSIONS) |
742 #define MAYBE_ModalPopUnderViaGuestView DISABLED_ModalPopUnderViaGuestView | 684 #define MAYBE_ModalPopUnderViaGuestView DISABLED_ModalPopUnderViaGuestView |
743 #else | 685 #else |
744 #define MAYBE_ModalPopUnderViaGuestView ModalPopUnderViaGuestView | 686 #define MAYBE_ModalPopUnderViaGuestView ModalPopUnderViaGuestView |
745 #endif | 687 #endif |
746 IN_PROC_BROWSER_TEST_F(PopupBlockerBrowserTest, | 688 IN_PROC_BROWSER_TEST_F(PopupBlockerBrowserTest, |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
877 | 819 |
878 wait_for_new_tab.Wait(); | 820 wait_for_new_tab.Wait(); |
879 | 821 |
880 ASSERT_EQ(1u, chrome::GetBrowserCount(browser()->profile())); | 822 ASSERT_EQ(1u, chrome::GetBrowserCount(browser()->profile())); |
881 ASSERT_EQ(2, browser()->tab_strip_model()->count()); | 823 ASSERT_EQ(2, browser()->tab_strip_model()->count()); |
882 // Check that we create the background tab. | 824 // Check that we create the background tab. |
883 ASSERT_EQ(0, browser()->tab_strip_model()->active_index()); | 825 ASSERT_EQ(0, browser()->tab_strip_model()->active_index()); |
884 } | 826 } |
885 | 827 |
886 } // namespace | 828 } // namespace |
OLD | NEW |