| 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 <algorithm> | 5 #include <algorithm> |
| 6 #include <list> | 6 #include <list> |
| 7 #include <map> | 7 #include <map> |
| 8 | 8 |
| 9 #include "base/metrics/field_trial.h" | 9 #include "base/metrics/field_trial.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 801 } | 801 } |
| 802 } | 802 } |
| 803 | 803 |
| 804 // Should stay on the main frame's url once the prompt the iframe is closed. | 804 // Should stay on the main frame's url once the prompt the iframe is closed. |
| 805 EXPECT_EQ("www.a.com", contents->GetVisibleURL().host()); | 805 EXPECT_EQ("www.a.com", contents->GetVisibleURL().host()); |
| 806 | 806 |
| 807 EXPECT_EQ(1, observer.auth_needed_count()); | 807 EXPECT_EQ(1, observer.auth_needed_count()); |
| 808 } | 808 } |
| 809 | 809 |
| 810 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, SupplyRedundantAuths) { | 810 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, SupplyRedundantAuths) { |
| 811 if (content::IsBrowserSideNavigationEnabled()) | |
| 812 return; // TODO(jam): investigate | |
| 813 ASSERT_TRUE(embedded_test_server()->Start()); | 811 ASSERT_TRUE(embedded_test_server()->Start()); |
| 814 | 812 |
| 815 // Get NavigationController for tab 1. | 813 // Get NavigationController for tab 1. |
| 816 content::WebContents* contents_1 = | 814 content::WebContents* contents_1 = |
| 817 browser()->tab_strip_model()->GetActiveWebContents(); | 815 browser()->tab_strip_model()->GetActiveWebContents(); |
| 818 NavigationController* controller_1 = &contents_1->GetController(); | 816 NavigationController* controller_1 = &contents_1->GetController(); |
| 819 | 817 |
| 820 // Open a new tab. | 818 // Open a new tab. |
| 821 ui_test_utils::NavigateToURLWithDisposition( | 819 ui_test_utils::NavigateToURLWithDisposition( |
| 822 browser(), GURL("about:blank"), WindowOpenDisposition::NEW_FOREGROUND_TAB, | 820 browser(), GURL("about:blank"), WindowOpenDisposition::NEW_FOREGROUND_TAB, |
| 823 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 821 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 824 | 822 |
| 825 // Get NavigationController for tab 2. | 823 // Get NavigationController for tab 2. |
| 826 content::WebContents* contents_2 = | 824 content::WebContents* contents_2 = |
| 827 browser()->tab_strip_model()->GetActiveWebContents(); | 825 browser()->tab_strip_model()->GetActiveWebContents(); |
| 828 ASSERT_NE(contents_1, contents_2); | 826 ASSERT_NE(contents_1, contents_2); |
| 829 NavigationController* controller_2 = &contents_2->GetController(); | 827 NavigationController* controller_2 = &contents_2->GetController(); |
| 830 | 828 |
| 831 LoginPromptBrowserTestObserver observer; | 829 LoginPromptBrowserTestObserver observer; |
| 832 observer.Register(content::Source<NavigationController>(controller_1)); | 830 observer.Register(content::Source<NavigationController>(controller_1)); |
| 833 observer.Register(content::Source<NavigationController>(controller_2)); | 831 observer.Register(content::Source<NavigationController>(controller_2)); |
| 834 | 832 |
| 835 { | 833 { |
| 836 // Open different auth urls in each tab. | 834 // Open different auth urls in each tab. |
| 837 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); | 835 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); |
| 838 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); | |
| 839 contents_1->OpenURL(OpenURLParams( | 836 contents_1->OpenURL(OpenURLParams( |
| 840 embedded_test_server()->GetURL("/auth-basic/1"), content::Referrer(), | 837 embedded_test_server()->GetURL("/auth-basic/1"), content::Referrer(), |
| 841 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); | 838 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); |
| 839 auth_needed_waiter_1.Wait(); |
| 840 |
| 841 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); |
| 842 contents_2->OpenURL(OpenURLParams( | 842 contents_2->OpenURL(OpenURLParams( |
| 843 embedded_test_server()->GetURL("/auth-basic/2"), content::Referrer(), | 843 embedded_test_server()->GetURL("/auth-basic/2"), content::Referrer(), |
| 844 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); | 844 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); |
| 845 auth_needed_waiter_1.Wait(); | |
| 846 auth_needed_waiter_2.Wait(); | 845 auth_needed_waiter_2.Wait(); |
| 847 | 846 |
| 848 ASSERT_EQ(2U, observer.handlers().size()); | 847 ASSERT_EQ(2U, observer.handlers().size()); |
| 849 | 848 |
| 850 // Supply auth in one of the tabs. | 849 // Supply auth in one of the tabs. |
| 851 WindowedAuthSuppliedObserver auth_supplied_waiter_1(controller_1); | 850 WindowedAuthSuppliedObserver auth_supplied_waiter_1(controller_1); |
| 852 WindowedAuthSuppliedObserver auth_supplied_waiter_2(controller_2); | 851 WindowedAuthSuppliedObserver auth_supplied_waiter_2(controller_2); |
| 853 LoginHandler* handler_1 = *observer.handlers().begin(); | 852 LoginHandler* handler_1 = *observer.handlers().begin(); |
| 854 ASSERT_TRUE(handler_1); | 853 ASSERT_TRUE(handler_1); |
| 855 SetAuthFor(handler_1); | 854 SetAuthFor(handler_1); |
| 856 | 855 |
| 857 // Both tabs should be authenticated. | 856 // Both tabs should be authenticated. |
| 858 auth_supplied_waiter_1.Wait(); | 857 auth_supplied_waiter_1.Wait(); |
| 859 auth_supplied_waiter_2.Wait(); | 858 auth_supplied_waiter_2.Wait(); |
| 860 } | 859 } |
| 861 | 860 |
| 862 EXPECT_EQ(2, observer.auth_needed_count()); | 861 EXPECT_EQ(2, observer.auth_needed_count()); |
| 863 EXPECT_EQ(2, observer.auth_supplied_count()); | 862 EXPECT_EQ(2, observer.auth_supplied_count()); |
| 864 EXPECT_EQ(0, observer.auth_cancelled_count()); | 863 EXPECT_EQ(0, observer.auth_cancelled_count()); |
| 865 } | 864 } |
| 866 | 865 |
| 867 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, CancelRedundantAuths) { | 866 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, CancelRedundantAuths) { |
| 868 if (content::IsBrowserSideNavigationEnabled()) | |
| 869 return; // TODO(jam): investigate | |
| 870 ASSERT_TRUE(embedded_test_server()->Start()); | 867 ASSERT_TRUE(embedded_test_server()->Start()); |
| 871 | 868 |
| 872 // Get NavigationController for tab 1. | 869 // Get NavigationController for tab 1. |
| 873 content::WebContents* contents_1 = | 870 content::WebContents* contents_1 = |
| 874 browser()->tab_strip_model()->GetActiveWebContents(); | 871 browser()->tab_strip_model()->GetActiveWebContents(); |
| 875 NavigationController* controller_1 = &contents_1->GetController(); | 872 NavigationController* controller_1 = &contents_1->GetController(); |
| 876 | 873 |
| 877 // Open a new tab. | 874 // Open a new tab. |
| 878 ui_test_utils::NavigateToURLWithDisposition( | 875 ui_test_utils::NavigateToURLWithDisposition( |
| 879 browser(), GURL("about:blank"), WindowOpenDisposition::NEW_FOREGROUND_TAB, | 876 browser(), GURL("about:blank"), WindowOpenDisposition::NEW_FOREGROUND_TAB, |
| 880 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); | 877 ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
| 881 | 878 |
| 882 // Get NavigationController for tab 2. | 879 // Get NavigationController for tab 2. |
| 883 content::WebContents* contents_2 = | 880 content::WebContents* contents_2 = |
| 884 browser()->tab_strip_model()->GetActiveWebContents(); | 881 browser()->tab_strip_model()->GetActiveWebContents(); |
| 885 ASSERT_NE(contents_1, contents_2); | 882 ASSERT_NE(contents_1, contents_2); |
| 886 NavigationController* controller_2 = &contents_2->GetController(); | 883 NavigationController* controller_2 = &contents_2->GetController(); |
| 887 | 884 |
| 888 LoginPromptBrowserTestObserver observer; | 885 LoginPromptBrowserTestObserver observer; |
| 889 observer.Register(content::Source<NavigationController>(controller_1)); | 886 observer.Register(content::Source<NavigationController>(controller_1)); |
| 890 observer.Register(content::Source<NavigationController>(controller_2)); | 887 observer.Register(content::Source<NavigationController>(controller_2)); |
| 891 | 888 |
| 892 { | 889 { |
| 893 // Open different auth urls in each tab. | 890 // Open different auth urls in each tab. |
| 894 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); | 891 WindowedAuthNeededObserver auth_needed_waiter_1(controller_1); |
| 895 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); | |
| 896 contents_1->OpenURL(OpenURLParams( | 892 contents_1->OpenURL(OpenURLParams( |
| 897 embedded_test_server()->GetURL("/auth-basic/1"), content::Referrer(), | 893 embedded_test_server()->GetURL("/auth-basic/1"), content::Referrer(), |
| 898 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); | 894 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); |
| 895 auth_needed_waiter_1.Wait(); |
| 896 |
| 897 WindowedAuthNeededObserver auth_needed_waiter_2(controller_2); |
| 899 contents_2->OpenURL(OpenURLParams( | 898 contents_2->OpenURL(OpenURLParams( |
| 900 embedded_test_server()->GetURL("/auth-basic/2"), content::Referrer(), | 899 embedded_test_server()->GetURL("/auth-basic/2"), content::Referrer(), |
| 901 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); | 900 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); |
| 902 auth_needed_waiter_1.Wait(); | |
| 903 auth_needed_waiter_2.Wait(); | 901 auth_needed_waiter_2.Wait(); |
| 904 | 902 |
| 905 ASSERT_EQ(2U, observer.handlers().size()); | 903 ASSERT_EQ(2U, observer.handlers().size()); |
| 906 | 904 |
| 907 // Cancel auth in one of the tabs. | 905 // Cancel auth in one of the tabs. |
| 908 WindowedAuthCancelledObserver auth_cancelled_waiter_1(controller_1); | 906 WindowedAuthCancelledObserver auth_cancelled_waiter_1(controller_1); |
| 909 WindowedAuthCancelledObserver auth_cancelled_waiter_2(controller_2); | 907 WindowedAuthCancelledObserver auth_cancelled_waiter_2(controller_2); |
| 910 LoginHandler* handler_1 = *observer.handlers().begin(); | 908 LoginHandler* handler_1 = *observer.handlers().begin(); |
| 911 ASSERT_TRUE(handler_1); | 909 ASSERT_TRUE(handler_1); |
| 912 handler_1->CancelAuth(); | 910 handler_1->CancelAuth(); |
| (...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1433 // out. | 1431 // out. |
| 1434 EXPECT_TRUE( | 1432 EXPECT_TRUE( |
| 1435 WaitForRenderFrameReady(contents->GetInterstitialPage()->GetMainFrame())); | 1433 WaitForRenderFrameReady(contents->GetInterstitialPage()->GetMainFrame())); |
| 1436 EXPECT_TRUE(contents->ShowingInterstitialPage()); | 1434 EXPECT_TRUE(contents->ShowingInterstitialPage()); |
| 1437 EXPECT_EQ(SSLBlockingPage::kTypeForTesting, contents->GetInterstitialPage() | 1435 EXPECT_EQ(SSLBlockingPage::kTypeForTesting, contents->GetInterstitialPage() |
| 1438 ->GetDelegateForTesting() | 1436 ->GetDelegateForTesting() |
| 1439 ->GetTypeForTesting()); | 1437 ->GetTypeForTesting()); |
| 1440 } | 1438 } |
| 1441 | 1439 |
| 1442 } // namespace | 1440 } // namespace |
| OLD | NEW |