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

Side by Side Diff: chrome/browser/ssl/ssl_browser_tests.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
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 <utility> 5 #include <utility>
6 6
7 #include "base/base_switches.h" 7 #include "base/base_switches.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 1035 matching lines...) Expand 10 before | Expand all | Expand 10 after
1046 1046
1047 // Now go to a bad HTTPS page that shows an interstitial. 1047 // Now go to a bad HTTPS page that shows an interstitial.
1048 ui_test_utils::NavigateToURL( 1048 ui_test_utils::NavigateToURL(
1049 browser(), https_server_expired_.GetURL("/ssl/google.html")); 1049 browser(), https_server_expired_.GetURL("/ssl/google.html"));
1050 CheckAuthenticationBrokenState( 1050 CheckAuthenticationBrokenState(
1051 tab, net::CERT_STATUS_DATE_INVALID, AuthState::SHOWING_INTERSTITIAL); 1051 tab, net::CERT_STATUS_DATE_INVALID, AuthState::SHOWING_INTERSTITIAL);
1052 1052
1053 ProvisionalLoadWaiter load_failed_observer(tab); 1053 ProvisionalLoadWaiter load_failed_observer(tab);
1054 1054
1055 // Simulate user clicking on back button (crbug.com/39248). 1055 // Simulate user clicking on back button (crbug.com/39248).
1056 chrome::GoBack(browser(), CURRENT_TAB); 1056 chrome::GoBack(browser(), WindowOpenDisposition::CURRENT_TAB);
1057 1057
1058 // Wait until we hear the load failure, and make sure we haven't changed 1058 // Wait until we hear the load failure, and make sure we haven't changed
1059 // the previous RFH. Prevents regression of http://crbug.com/82667. 1059 // the previous RFH. Prevents regression of http://crbug.com/82667.
1060 load_failed_observer.Wait(); 1060 load_failed_observer.Wait();
1061 EXPECT_EQ(rfh, tab->GetMainFrame()); 1061 EXPECT_EQ(rfh, tab->GetMainFrame());
1062 1062
1063 // We should be back at the original good page. 1063 // We should be back at the original good page.
1064 EXPECT_FALSE(browser()->tab_strip_model()->GetActiveWebContents()-> 1064 EXPECT_FALSE(browser()->tab_strip_model()->GetActiveWebContents()->
1065 GetInterstitialPage()); 1065 GetInterstitialPage());
1066 CheckUnauthenticatedState(tab, AuthState::NONE); 1066 CheckUnauthenticatedState(tab, AuthState::NONE);
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after
1474 1474
1475 // There should still be an interstitial at this point. Press the 1475 // There should still be an interstitial at this point. Press the
1476 // back button on the browser. Note that this doesn't wait for a 1476 // back button on the browser. Note that this doesn't wait for a
1477 // NAV_ENTRY_COMMITTED notification because going back with an 1477 // NAV_ENTRY_COMMITTED notification because going back with an
1478 // active interstitial simply hides the interstitial. 1478 // active interstitial simply hides the interstitial.
1479 ASSERT_TRUE(tab->GetInterstitialPage() != NULL); 1479 ASSERT_TRUE(tab->GetInterstitialPage() != NULL);
1480 ASSERT_EQ( 1480 ASSERT_EQ(
1481 SSLBlockingPage::kTypeForTesting, 1481 SSLBlockingPage::kTypeForTesting,
1482 tab->GetInterstitialPage()->GetDelegateForTesting()->GetTypeForTesting()); 1482 tab->GetInterstitialPage()->GetDelegateForTesting()->GetTypeForTesting());
1483 EXPECT_TRUE(chrome::CanGoBack(browser())); 1483 EXPECT_TRUE(chrome::CanGoBack(browser()));
1484 chrome::GoBack(browser(), CURRENT_TAB); 1484 chrome::GoBack(browser(), WindowOpenDisposition::CURRENT_TAB);
1485 1485
1486 dangerous_download_observer.WaitForFinished(); 1486 dangerous_download_observer.WaitForFinished();
1487 } 1487 }
1488 1488
1489 // 1489 //
1490 // Insecure content 1490 // Insecure content
1491 // 1491 //
1492 1492
1493 #if defined(OS_WIN) 1493 #if defined(OS_WIN)
1494 // http://crbug.com/152940 Flaky on win. 1494 // http://crbug.com/152940 Flaky on win.
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
1760 CheckAuthenticatedState(tab1, AuthState::NONE); 1760 CheckAuthenticatedState(tab1, AuthState::NONE);
1761 1761
1762 // Create a new tab. 1762 // Create a new tab.
1763 std::string replacement_path; 1763 std::string replacement_path;
1764 GetFilePathWithHostAndPortReplacement( 1764 GetFilePathWithHostAndPortReplacement(
1765 "/ssl/page_displays_insecure_content.html", 1765 "/ssl/page_displays_insecure_content.html",
1766 embedded_test_server()->host_port_pair(), &replacement_path); 1766 embedded_test_server()->host_port_pair(), &replacement_path);
1767 1767
1768 GURL url = https_server_.GetURL(replacement_path); 1768 GURL url = https_server_.GetURL(replacement_path);
1769 chrome::NavigateParams params(browser(), url, ui::PAGE_TRANSITION_TYPED); 1769 chrome::NavigateParams params(browser(), url, ui::PAGE_TRANSITION_TYPED);
1770 params.disposition = NEW_FOREGROUND_TAB; 1770 params.disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB;
1771 params.tabstrip_index = 0; 1771 params.tabstrip_index = 0;
1772 params.source_contents = tab1; 1772 params.source_contents = tab1;
1773 content::WindowedNotificationObserver observer( 1773 content::WindowedNotificationObserver observer(
1774 content::NOTIFICATION_LOAD_STOP, 1774 content::NOTIFICATION_LOAD_STOP,
1775 content::NotificationService::AllSources()); 1775 content::NotificationService::AllSources());
1776 chrome::Navigate(&params); 1776 chrome::Navigate(&params);
1777 WebContents* tab2 = params.target_contents; 1777 WebContents* tab2 = params.target_contents;
1778 observer.Wait(); 1778 observer.Wait();
1779 1779
1780 // The new tab has insecure content. 1780 // The new tab has insecure content.
(...skipping 21 matching lines...) Expand all
1802 std::string replacement_path; 1802 std::string replacement_path;
1803 GetFilePathWithHostAndPortReplacement( 1803 GetFilePathWithHostAndPortReplacement(
1804 "/ssl/page_runs_insecure_content.html", 1804 "/ssl/page_runs_insecure_content.html",
1805 embedded_test_server()->host_port_pair(), &replacement_path); 1805 embedded_test_server()->host_port_pair(), &replacement_path);
1806 1806
1807 // Create a new tab in the same process. Using a NEW_FOREGROUND_TAB 1807 // Create a new tab in the same process. Using a NEW_FOREGROUND_TAB
1808 // disposition won't usually stay in the same process, but this works 1808 // disposition won't usually stay in the same process, but this works
1809 // because we are using process-per-site in SetUpCommandLine. 1809 // because we are using process-per-site in SetUpCommandLine.
1810 GURL url = https_server_.GetURL(replacement_path); 1810 GURL url = https_server_.GetURL(replacement_path);
1811 chrome::NavigateParams params(browser(), url, ui::PAGE_TRANSITION_TYPED); 1811 chrome::NavigateParams params(browser(), url, ui::PAGE_TRANSITION_TYPED);
1812 params.disposition = NEW_FOREGROUND_TAB; 1812 params.disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB;
1813 params.source_contents = tab1; 1813 params.source_contents = tab1;
1814 content::WindowedNotificationObserver observer( 1814 content::WindowedNotificationObserver observer(
1815 content::NOTIFICATION_LOAD_STOP, 1815 content::NOTIFICATION_LOAD_STOP,
1816 content::NotificationService::AllSources()); 1816 content::NotificationService::AllSources());
1817 chrome::Navigate(&params); 1817 chrome::Navigate(&params);
1818 WebContents* tab2 = params.target_contents; 1818 WebContents* tab2 = params.target_contents;
1819 observer.Wait(); 1819 observer.Wait();
1820 1820
1821 // Both tabs should have the same process. 1821 // Both tabs should have the same process.
1822 EXPECT_EQ(tab1->GetRenderProcessHost(), tab2->GetRenderProcessHost()); 1822 EXPECT_EQ(tab1->GetRenderProcessHost(), tab2->GetRenderProcessHost());
(...skipping 1105 matching lines...) Expand 10 before | Expand all | Expand 10 after
2928 https_server_url.ReplaceComponents(replacements); 2928 https_server_url.ReplaceComponents(replacements);
2929 2929
2930 WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents(); 2930 WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents();
2931 CommonNameMismatchHandler::set_state_for_testing( 2931 CommonNameMismatchHandler::set_state_for_testing(
2932 CommonNameMismatchHandler::IGNORE_REQUESTS_FOR_TESTING); 2932 CommonNameMismatchHandler::IGNORE_REQUESTS_FOR_TESTING);
2933 // Set delay long enough so that the page appears loading. 2933 // Set delay long enough so that the page appears loading.
2934 SSLErrorHandler::SetInterstitialDelayForTest(base::TimeDelta::FromHours(1)); 2934 SSLErrorHandler::SetInterstitialDelayForTest(base::TimeDelta::FromHours(1));
2935 SSLInterstitialTimerObserver interstitial_timer_observer(contents); 2935 SSLInterstitialTimerObserver interstitial_timer_observer(contents);
2936 2936
2937 ui_test_utils::NavigateToURLWithDisposition( 2937 ui_test_utils::NavigateToURLWithDisposition(
2938 browser(), https_server_mismatched_url, CURRENT_TAB, 2938 browser(), https_server_mismatched_url,
2939 ui_test_utils::BROWSER_TEST_NONE); 2939 WindowOpenDisposition::CURRENT_TAB, ui_test_utils::BROWSER_TEST_NONE);
2940 interstitial_timer_observer.WaitForTimerStarted(); 2940 interstitial_timer_observer.WaitForTimerStarted();
2941 2941
2942 EXPECT_TRUE(contents->IsLoading()); 2942 EXPECT_TRUE(contents->IsLoading());
2943 content::WindowedNotificationObserver observer( 2943 content::WindowedNotificationObserver observer(
2944 content::NOTIFICATION_LOAD_STOP, 2944 content::NOTIFICATION_LOAD_STOP,
2945 content::NotificationService::AllSources()); 2945 content::NotificationService::AllSources());
2946 contents->Stop(); 2946 contents->Stop();
2947 observer.Wait(); 2947 observer.Wait();
2948 2948
2949 SSLErrorHandler* ssl_error_handler = 2949 SSLErrorHandler* ssl_error_handler =
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
2996 https_server_url.ReplaceComponents(replacements); 2996 https_server_url.ReplaceComponents(replacements);
2997 2997
2998 WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents(); 2998 WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents();
2999 CommonNameMismatchHandler::set_state_for_testing( 2999 CommonNameMismatchHandler::set_state_for_testing(
3000 CommonNameMismatchHandler::IGNORE_REQUESTS_FOR_TESTING); 3000 CommonNameMismatchHandler::IGNORE_REQUESTS_FOR_TESTING);
3001 // Set delay long enough so that the page appears loading. 3001 // Set delay long enough so that the page appears loading.
3002 SSLErrorHandler::SetInterstitialDelayForTest(base::TimeDelta::FromHours(1)); 3002 SSLErrorHandler::SetInterstitialDelayForTest(base::TimeDelta::FromHours(1));
3003 SSLInterstitialTimerObserver interstitial_timer_observer(contents); 3003 SSLInterstitialTimerObserver interstitial_timer_observer(contents);
3004 3004
3005 ui_test_utils::NavigateToURLWithDisposition( 3005 ui_test_utils::NavigateToURLWithDisposition(
3006 browser(), https_server_mismatched_url, CURRENT_TAB, 3006 browser(), https_server_mismatched_url,
3007 ui_test_utils::BROWSER_TEST_NONE); 3007 WindowOpenDisposition::CURRENT_TAB, ui_test_utils::BROWSER_TEST_NONE);
3008 interstitial_timer_observer.WaitForTimerStarted(); 3008 interstitial_timer_observer.WaitForTimerStarted();
3009 3009
3010 EXPECT_TRUE(contents->IsLoading()); 3010 EXPECT_TRUE(contents->IsLoading());
3011 content::TestNavigationObserver observer(contents, 1); 3011 content::TestNavigationObserver observer(contents, 1);
3012 chrome::Reload(browser(), CURRENT_TAB); 3012 chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB);
3013 observer.Wait(); 3013 observer.Wait();
3014 3014
3015 SSLErrorHandler* ssl_error_handler = 3015 SSLErrorHandler* ssl_error_handler =
3016 SSLErrorHandler::FromWebContents(contents); 3016 SSLErrorHandler::FromWebContents(contents);
3017 // Make sure that the |SSLErrorHandler| is deleted. 3017 // Make sure that the |SSLErrorHandler| is deleted.
3018 EXPECT_FALSE(ssl_error_handler); 3018 EXPECT_FALSE(ssl_error_handler);
3019 EXPECT_FALSE(contents->ShowingInterstitialPage()); 3019 EXPECT_FALSE(contents->ShowingInterstitialPage());
3020 EXPECT_FALSE(contents->IsLoading()); 3020 EXPECT_FALSE(contents->IsLoading());
3021 } 3021 }
3022 3022
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
3062 https_server_url.ReplaceComponents(replacements); 3062 https_server_url.ReplaceComponents(replacements);
3063 3063
3064 WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents(); 3064 WebContents* contents = browser()->tab_strip_model()->GetActiveWebContents();
3065 CommonNameMismatchHandler::set_state_for_testing( 3065 CommonNameMismatchHandler::set_state_for_testing(
3066 CommonNameMismatchHandler::IGNORE_REQUESTS_FOR_TESTING); 3066 CommonNameMismatchHandler::IGNORE_REQUESTS_FOR_TESTING);
3067 // Set delay long enough so that the page appears loading. 3067 // Set delay long enough so that the page appears loading.
3068 SSLErrorHandler::SetInterstitialDelayForTest(base::TimeDelta::FromHours(1)); 3068 SSLErrorHandler::SetInterstitialDelayForTest(base::TimeDelta::FromHours(1));
3069 SSLInterstitialTimerObserver interstitial_timer_observer(contents); 3069 SSLInterstitialTimerObserver interstitial_timer_observer(contents);
3070 3070
3071 ui_test_utils::NavigateToURLWithDisposition( 3071 ui_test_utils::NavigateToURLWithDisposition(
3072 browser(), https_server_mismatched_url, CURRENT_TAB, 3072 browser(), https_server_mismatched_url,
3073 ui_test_utils::BROWSER_TEST_NONE); 3073 WindowOpenDisposition::CURRENT_TAB, ui_test_utils::BROWSER_TEST_NONE);
3074 interstitial_timer_observer.WaitForTimerStarted(); 3074 interstitial_timer_observer.WaitForTimerStarted();
3075 3075
3076 EXPECT_TRUE(contents->IsLoading()); 3076 EXPECT_TRUE(contents->IsLoading());
3077 content::TestNavigationObserver observer(contents, 1); 3077 content::TestNavigationObserver observer(contents, 1);
3078 browser()->OpenURL(content::OpenURLParams(GURL("https://google.com"), 3078 browser()->OpenURL(content::OpenURLParams(
3079 content::Referrer(), CURRENT_TAB, 3079 GURL("https://google.com"), content::Referrer(),
3080 ui::PAGE_TRANSITION_TYPED, false)); 3080 WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false));
3081 observer.Wait(); 3081 observer.Wait();
3082 3082
3083 SSLErrorHandler* ssl_error_handler = 3083 SSLErrorHandler* ssl_error_handler =
3084 SSLErrorHandler::FromWebContents(contents); 3084 SSLErrorHandler::FromWebContents(contents);
3085 // Make sure that the |SSLErrorHandler| is deleted. 3085 // Make sure that the |SSLErrorHandler| is deleted.
3086 EXPECT_FALSE(ssl_error_handler); 3086 EXPECT_FALSE(ssl_error_handler);
3087 EXPECT_FALSE(contents->ShowingInterstitialPage()); 3087 EXPECT_FALSE(contents->ShowingInterstitialPage());
3088 EXPECT_FALSE(contents->IsLoading()); 3088 EXPECT_FALSE(contents->IsLoading());
3089 } 3089 }
3090 3090
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
3129 3129
3130 // Visit a page over https that contains a frame with a redirect. 3130 // Visit a page over https that contains a frame with a redirect.
3131 3131
3132 // XMLHttpRequest insecure content in synchronous mode. 3132 // XMLHttpRequest insecure content in synchronous mode.
3133 3133
3134 // XMLHttpRequest insecure content in asynchronous mode. 3134 // XMLHttpRequest insecure content in asynchronous mode.
3135 3135
3136 // XMLHttpRequest over bad ssl in synchronous mode. 3136 // XMLHttpRequest over bad ssl in synchronous mode.
3137 3137
3138 // XMLHttpRequest over OK ssl in synchronous mode. 3138 // XMLHttpRequest over OK ssl in synchronous mode.
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698