| 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/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "chrome/browser/prerender/prerender_manager.h" | 10 #include "chrome/browser/prerender/prerender_manager.h" |
| (...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 746 | 746 |
| 747 load_stop_waiter.Wait(); | 747 load_stop_waiter.Wait(); |
| 748 } | 748 } |
| 749 | 749 |
| 750 EXPECT_EQ(0, observer.auth_supplied_count_); | 750 EXPECT_EQ(0, observer.auth_supplied_count_); |
| 751 EXPECT_EQ(1, observer.auth_needed_count_); | 751 EXPECT_EQ(1, observer.auth_needed_count_); |
| 752 EXPECT_EQ(1, observer.auth_cancelled_count_); | 752 EXPECT_EQ(1, observer.auth_cancelled_count_); |
| 753 EXPECT_TRUE(test_server()->Stop()); | 753 EXPECT_TRUE(test_server()->Stop()); |
| 754 } | 754 } |
| 755 | 755 |
| 756 // Block crossdomain subresource login prompting as a phishing defense. | 756 // Block crossdomain image login prompting as a phishing defense. |
| 757 // Disabled per http://crbug.com/174179. | |
| 758 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, | 757 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, |
| 759 DISABLED_BlockCrossdomainPrompt) { | 758 BlockCrossdomainPrompt) { |
| 760 const char* kTestPage = "files/login/load_img_from_b.html"; | 759 const char* kTestPage = "files/login/load_img_from_b.html"; |
| 761 | 760 |
| 762 host_resolver()->AddRule("www.a.com", "127.0.0.1"); | 761 host_resolver()->AddRule("www.a.com", "127.0.0.1"); |
| 763 host_resolver()->AddRule("www.b.com", "127.0.0.1"); | 762 host_resolver()->AddRule("www.b.com", "127.0.0.1"); |
| 764 ASSERT_TRUE(test_server()->Start()); | 763 ASSERT_TRUE(test_server()->Start()); |
| 765 | 764 |
| 766 content::WebContents* contents = | 765 content::WebContents* contents = |
| 767 browser()->tab_strip_model()->GetActiveWebContents(); | 766 browser()->tab_strip_model()->GetActiveWebContents(); |
| 768 NavigationController* controller = &contents->GetController(); | 767 NavigationController* controller = &contents->GetController(); |
| 769 LoginPromptBrowserTestObserver observer; | 768 LoginPromptBrowserTestObserver observer; |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 818 ASSERT_TRUE(handler); | 817 ASSERT_TRUE(handler); |
| 819 handler->CancelAuth(); | 818 handler->CancelAuth(); |
| 820 auth_cancelled_waiter.Wait(); | 819 auth_cancelled_waiter.Wait(); |
| 821 } | 820 } |
| 822 } | 821 } |
| 823 | 822 |
| 824 EXPECT_EQ(1, observer.auth_needed_count_); | 823 EXPECT_EQ(1, observer.auth_needed_count_); |
| 825 EXPECT_TRUE(test_server()->Stop()); | 824 EXPECT_TRUE(test_server()->Stop()); |
| 826 } | 825 } |
| 827 | 826 |
| 827 // Allow crossdomain iframe login prompting despite the above. |
| 828 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, |
| 829 AllowCrossdomainPrompt) { |
| 830 const char* kTestPage = "files/login/load_iframe_from_b.html"; |
| 831 |
| 832 host_resolver()->AddRule("www.a.com", "127.0.0.1"); |
| 833 host_resolver()->AddRule("www.b.com", "127.0.0.1"); |
| 834 ASSERT_TRUE(test_server()->Start()); |
| 835 |
| 836 content::WebContents* contents = |
| 837 browser()->tab_strip_model()->GetActiveWebContents(); |
| 838 NavigationController* controller = &contents->GetController(); |
| 839 LoginPromptBrowserTestObserver observer; |
| 840 observer.Register(content::Source<NavigationController>(controller)); |
| 841 |
| 842 // Load a page that has a cross-domain iframe authentication. |
| 843 { |
| 844 GURL test_page = test_server()->GetURL(kTestPage); |
| 845 ASSERT_EQ("127.0.0.1", test_page.host()); |
| 846 |
| 847 // Change the host from 127.0.0.1 to www.a.com so that when the |
| 848 // page tries to load from b, it will be cross-origin. |
| 849 std::string new_host("www.a.com"); |
| 850 GURL::Replacements replacements; |
| 851 replacements.SetHostStr(new_host); |
| 852 test_page = test_page.ReplaceComponents(replacements); |
| 853 |
| 854 WindowedAuthNeededObserver auth_needed_waiter(controller); |
| 855 browser()->OpenURL(OpenURLParams( |
| 856 test_page, Referrer(), CURRENT_TAB, content::PAGE_TRANSITION_TYPED, |
| 857 false)); |
| 858 auth_needed_waiter.Wait(); |
| 859 ASSERT_EQ(1u, observer.handlers_.size()); |
| 860 |
| 861 while (!observer.handlers_.empty()) { |
| 862 WindowedAuthCancelledObserver auth_cancelled_waiter(controller); |
| 863 LoginHandler* handler = *observer.handlers_.begin(); |
| 864 |
| 865 ASSERT_TRUE(handler); |
| 866 handler->CancelAuth(); |
| 867 auth_cancelled_waiter.Wait(); |
| 868 } |
| 869 } |
| 870 |
| 871 EXPECT_EQ(1, observer.auth_needed_count_); |
| 872 EXPECT_TRUE(test_server()->Stop()); |
| 873 } |
| 874 |
| 828 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, SupplyRedundantAuths) { | 875 IN_PROC_BROWSER_TEST_F(LoginPromptBrowserTest, SupplyRedundantAuths) { |
| 829 ASSERT_TRUE(test_server()->Start()); | 876 ASSERT_TRUE(test_server()->Start()); |
| 830 | 877 |
| 831 // Get NavigationController for tab 1. | 878 // Get NavigationController for tab 1. |
| 832 content::WebContents* contents_1 = | 879 content::WebContents* contents_1 = |
| 833 browser()->tab_strip_model()->GetActiveWebContents(); | 880 browser()->tab_strip_model()->GetActiveWebContents(); |
| 834 NavigationController* controller_1 = &contents_1->GetController(); | 881 NavigationController* controller_1 = &contents_1->GetController(); |
| 835 | 882 |
| 836 // Open a new tab. | 883 // Open a new tab. |
| 837 ui_test_utils::NavigateToURLWithDisposition( | 884 ui_test_utils::NavigateToURLWithDisposition( |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1020 EXPECT_EQ(1, observer.auth_needed_count_); | 1067 EXPECT_EQ(1, observer.auth_needed_count_); |
| 1021 EXPECT_EQ(1, observer.auth_supplied_count_); | 1068 EXPECT_EQ(1, observer.auth_supplied_count_); |
| 1022 EXPECT_EQ(0, observer.auth_cancelled_count_); | 1069 EXPECT_EQ(0, observer.auth_cancelled_count_); |
| 1023 EXPECT_EQ(1, observer_incognito.auth_needed_count_); | 1070 EXPECT_EQ(1, observer_incognito.auth_needed_count_); |
| 1024 EXPECT_EQ(0, observer_incognito.auth_supplied_count_); | 1071 EXPECT_EQ(0, observer_incognito.auth_supplied_count_); |
| 1025 EXPECT_EQ(0, observer_incognito.auth_cancelled_count_); | 1072 EXPECT_EQ(0, observer_incognito.auth_cancelled_count_); |
| 1026 EXPECT_TRUE(test_server()->Stop()); | 1073 EXPECT_TRUE(test_server()->Stop()); |
| 1027 } | 1074 } |
| 1028 | 1075 |
| 1029 } // namespace | 1076 } // namespace |
| OLD | NEW |