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

Side by Side Diff: chrome/browser/ui/browser_focus_uitest.cc

Issue 2248873002: Convert WindowOpenDisposition to an enum class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 3 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/ui/browser_commands.cc ('k') | chrome/browser/ui/browser_instant_controller.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/files/file_util.h" 8 #include "base/files/file_util.h"
9 #include "base/format_macros.h" 9 #include "base/format_macros.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 581 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 observer.Wait(); 592 observer.Wait();
593 } 593 }
594 content::RunAllPendingInMessageLoop(); 594 content::RunAllPendingInMessageLoop();
595 595
596 { 596 {
597 content::WindowedNotificationObserver observer( 597 content::WindowedNotificationObserver observer(
598 content::NOTIFICATION_LOAD_STOP, 598 content::NOTIFICATION_LOAD_STOP,
599 content::Source<content::NavigationController>( 599 content::Source<content::NavigationController>(
600 &browser()->tab_strip_model()->GetActiveWebContents()-> 600 &browser()->tab_strip_model()->GetActiveWebContents()->
601 GetController())); 601 GetController()));
602 chrome::Reload(browser(), CURRENT_TAB); 602 chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
603 observer.Wait(); 603 observer.Wait();
604 } 604 }
605 // Focus should stay on the location bar. 605 // Focus should stay on the location bar.
606 ASSERT_TRUE(IsViewFocused(VIEW_ID_OMNIBOX)); 606 ASSERT_TRUE(IsViewFocused(VIEW_ID_OMNIBOX));
607 607
608 // Open a regular page, focus the location bar, reload. 608 // Open a regular page, focus the location bar, reload.
609 ui_test_utils::NavigateToURL(browser(), 609 ui_test_utils::NavigateToURL(browser(),
610 embedded_test_server()->GetURL(kSimplePage)); 610 embedded_test_server()->GetURL(kSimplePage));
611 chrome::FocusLocationBar(browser()); 611 chrome::FocusLocationBar(browser());
612 ASSERT_TRUE(IsViewFocused(VIEW_ID_OMNIBOX)); 612 ASSERT_TRUE(IsViewFocused(VIEW_ID_OMNIBOX));
613 { 613 {
614 content::WindowedNotificationObserver observer( 614 content::WindowedNotificationObserver observer(
615 content::NOTIFICATION_LOAD_STOP, 615 content::NOTIFICATION_LOAD_STOP,
616 content::Source<content::NavigationController>( 616 content::Source<content::NavigationController>(
617 &browser()->tab_strip_model()->GetActiveWebContents()-> 617 &browser()->tab_strip_model()->GetActiveWebContents()->
618 GetController())); 618 GetController()));
619 chrome::Reload(browser(), CURRENT_TAB); 619 chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
620 observer.Wait(); 620 observer.Wait();
621 } 621 }
622 622
623 // Focus should now be on the tab contents. 623 // Focus should now be on the tab contents.
624 chrome::ShowDownloads(browser()); 624 chrome::ShowDownloads(browser());
625 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER)); 625 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER));
626 } 626 }
627 627
628 // Tests that focus goes where expected when using reload on a crashed tab. 628 // Tests that focus goes where expected when using reload on a crashed tab.
629 IN_PROC_BROWSER_TEST_F(BrowserFocusTest, DISABLED_FocusOnReloadCrashedTab) { 629 IN_PROC_BROWSER_TEST_F(BrowserFocusTest, DISABLED_FocusOnReloadCrashedTab) {
630 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 630 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
631 631
632 // Open a regular page, crash, reload. 632 // Open a regular page, crash, reload.
633 ui_test_utils::NavigateToURL(browser(), 633 ui_test_utils::NavigateToURL(browser(),
634 embedded_test_server()->GetURL(kSimplePage)); 634 embedded_test_server()->GetURL(kSimplePage));
635 content::CrashTab(browser()->tab_strip_model()->GetActiveWebContents()); 635 content::CrashTab(browser()->tab_strip_model()->GetActiveWebContents());
636 { 636 {
637 content::WindowedNotificationObserver observer( 637 content::WindowedNotificationObserver observer(
638 content::NOTIFICATION_LOAD_STOP, 638 content::NOTIFICATION_LOAD_STOP,
639 content::Source<content::NavigationController>( 639 content::Source<content::NavigationController>(
640 &browser()->tab_strip_model()->GetActiveWebContents()-> 640 &browser()->tab_strip_model()->GetActiveWebContents()->
641 GetController())); 641 GetController()));
642 chrome::Reload(browser(), CURRENT_TAB); 642 chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
643 observer.Wait(); 643 observer.Wait();
644 } 644 }
645 645
646 // Focus should now be on the tab contents. 646 // Focus should now be on the tab contents.
647 chrome::ShowDownloads(browser()); 647 chrome::ShowDownloads(browser());
648 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER)); 648 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER));
649 } 649 }
650 650
651 // Tests that focus goes to frame after crashed tab. 651 // Tests that focus goes to frame after crashed tab.
652 // TODO(shrikant): Find out where the focus should be deterministically. 652 // TODO(shrikant): Find out where the focus should be deterministically.
653 // Currently focused_view after crash seem to be non null in debug mode 653 // Currently focused_view after crash seem to be non null in debug mode
654 // (invalidated pointer 0xcccccc). 654 // (invalidated pointer 0xcccccc).
655 IN_PROC_BROWSER_TEST_F(BrowserFocusTest, DISABLED_FocusAfterCrashedTab) { 655 IN_PROC_BROWSER_TEST_F(BrowserFocusTest, DISABLED_FocusAfterCrashedTab) {
656 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); 656 ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
657 657
658 content::CrashTab(browser()->tab_strip_model()->GetActiveWebContents()); 658 content::CrashTab(browser()->tab_strip_model()->GetActiveWebContents());
659 659
660 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER)); 660 ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER));
661 } 661 }
662 662
663 // Tests that when a new tab is opened from the omnibox, the focus is moved from 663 // Tests that when a new tab is opened from the omnibox, the focus is moved from
664 // the omnibox for the current tab. 664 // the omnibox for the current tab.
665 IN_PROC_BROWSER_TEST_F(BrowserFocusTest, NavigateFromOmniboxIntoNewTab) { 665 IN_PROC_BROWSER_TEST_F(BrowserFocusTest, NavigateFromOmniboxIntoNewTab) {
666 GURL url("http://www.google.com/"); 666 GURL url("http://www.google.com/");
667 GURL url2("http://maps.google.com/"); 667 GURL url2("http://maps.google.com/");
668 668
669 // Navigate to url. 669 // Navigate to url.
670 chrome::NavigateParams p(browser(), url, ui::PAGE_TRANSITION_LINK); 670 chrome::NavigateParams p(browser(), url, ui::PAGE_TRANSITION_LINK);
671 p.window_action = chrome::NavigateParams::SHOW_WINDOW; 671 p.window_action = chrome::NavigateParams::SHOW_WINDOW;
672 p.disposition = CURRENT_TAB; 672 p.disposition = WindowOpenDisposition::CURRENT_TAB;
673 chrome::Navigate(&p); 673 chrome::Navigate(&p);
674 674
675 // Focus the omnibox. 675 // Focus the omnibox.
676 chrome::FocusLocationBar(browser()); 676 chrome::FocusLocationBar(browser());
677 677
678 OmniboxEditController* controller = browser()->window()->GetLocationBar()-> 678 OmniboxEditController* controller = browser()->window()->GetLocationBar()->
679 GetOmniboxView()->model()->controller(); 679 GetOmniboxView()->model()->controller();
680 680
681 // Simulate an alt-enter. 681 // Simulate an alt-enter.
682 controller->OnAutocompleteAccept(url2, NEW_FOREGROUND_TAB, 682 controller->OnAutocompleteAccept(
683 ui::PAGE_TRANSITION_TYPED, 683 url2, WindowOpenDisposition::NEW_FOREGROUND_TAB,
684 AutocompleteMatchType::URL_WHAT_YOU_TYPED); 684 ui::PAGE_TRANSITION_TYPED, AutocompleteMatchType::URL_WHAT_YOU_TYPED);
685 685
686 // Make sure the second tab is selected. 686 // Make sure the second tab is selected.
687 EXPECT_EQ(1, browser()->tab_strip_model()->active_index()); 687 EXPECT_EQ(1, browser()->tab_strip_model()->active_index());
688 688
689 // The tab contents should have the focus in the second tab. 689 // The tab contents should have the focus in the second tab.
690 EXPECT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER)); 690 EXPECT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER));
691 691
692 // Go back to the first tab. The focus should not be in the omnibox. 692 // Go back to the first tab. The focus should not be in the omnibox.
693 chrome::SelectPreviousTab(browser()); 693 chrome::SelectPreviousTab(browser());
694 EXPECT_EQ(0, browser()->tab_strip_model()->active_index()); 694 EXPECT_EQ(0, browser()->tab_strip_model()->active_index());
(...skipping 22 matching lines...) Expand all
717 base::FilePath::kCurrentDirectory), base::FilePath(kEmptyFile))); 717 base::FilePath::kCurrentDirectory), base::FilePath(kEmptyFile)));
718 ui_test_utils::NavigateToURL(browser(), file_url); 718 ui_test_utils::NavigateToURL(browser(), file_url);
719 719
720 ClickOnView(VIEW_ID_TAB_CONTAINER); 720 ClickOnView(VIEW_ID_TAB_CONTAINER);
721 721
722 // Navigate back. Should focus the location bar. 722 // Navigate back. Should focus the location bar.
723 { 723 {
724 content::WindowedNotificationObserver back_nav_observer( 724 content::WindowedNotificationObserver back_nav_observer(
725 content::NOTIFICATION_NAV_ENTRY_COMMITTED, 725 content::NOTIFICATION_NAV_ENTRY_COMMITTED,
726 content::NotificationService::AllSources()); 726 content::NotificationService::AllSources());
727 chrome::GoBack(browser(), CURRENT_TAB); 727 chrome::GoBack(browser(), WindowOpenDisposition::CURRENT_TAB);
728 back_nav_observer.Wait(); 728 back_nav_observer.Wait();
729 } 729 }
730 730
731 EXPECT_TRUE(IsViewFocused(VIEW_ID_OMNIBOX)); 731 EXPECT_TRUE(IsViewFocused(VIEW_ID_OMNIBOX));
732 732
733 // Navigate forward. Shouldn't focus the location bar. 733 // Navigate forward. Shouldn't focus the location bar.
734 ClickOnView(VIEW_ID_TAB_CONTAINER); 734 ClickOnView(VIEW_ID_TAB_CONTAINER);
735 { 735 {
736 content::WindowedNotificationObserver forward_nav_observer( 736 content::WindowedNotificationObserver forward_nav_observer(
737 content::NOTIFICATION_NAV_ENTRY_COMMITTED, 737 content::NOTIFICATION_NAV_ENTRY_COMMITTED,
738 content::NotificationService::AllSources()); 738 content::NotificationService::AllSources());
739 chrome::GoForward(browser(), CURRENT_TAB); 739 chrome::GoForward(browser(), WindowOpenDisposition::CURRENT_TAB);
740 forward_nav_observer.Wait(); 740 forward_nav_observer.Wait();
741 } 741 }
742 742
743 EXPECT_FALSE(IsViewFocused(VIEW_ID_OMNIBOX)); 743 EXPECT_FALSE(IsViewFocused(VIEW_ID_OMNIBOX));
744 } 744 }
745 745
746 // Ensure that crbug.com/567445 does not regress. This test checks that the 746 // Ensure that crbug.com/567445 does not regress. This test checks that the
747 // Omnibox does not get focused when loading about:blank in a case where it's 747 // Omnibox does not get focused when loading about:blank in a case where it's
748 // not the startup URL, e.g. when a page opens a popup to about:blank, with a 748 // not the startup URL, e.g. when a page opens a popup to about:blank, with a
749 // null opener, and then navigates it. This is a potential security issue; see 749 // null opener, and then navigates it. This is a potential security issue; see
(...skipping 12 matching lines...) Expand all
762 ASSERT_TRUE(content::ExecuteScript(web_contents, spoof)); 762 ASSERT_TRUE(content::ExecuteScript(web_contents, spoof));
763 EXPECT_EQ(url1, web_contents->GetVisibleURL()); 763 EXPECT_EQ(url1, web_contents->GetVisibleURL());
764 // After running the spoof code, |GetActiveWebContents| returns the new tab, 764 // After running the spoof code, |GetActiveWebContents| returns the new tab,
765 // not the same as |web_contents|. 765 // not the same as |web_contents|.
766 ASSERT_NO_FATAL_FAILURE(content::WaitForLoadStop( 766 ASSERT_NO_FATAL_FAILURE(content::WaitForLoadStop(
767 browser()->tab_strip_model()->GetActiveWebContents())); 767 browser()->tab_strip_model()->GetActiveWebContents()));
768 EXPECT_FALSE(IsViewFocused(VIEW_ID_OMNIBOX)); 768 EXPECT_FALSE(IsViewFocused(VIEW_ID_OMNIBOX));
769 } 769 }
770 770
771 } // namespace 771 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/ui/browser_commands.cc ('k') | chrome/browser/ui/browser_instant_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698