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

Side by Side Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 2304953002: NoState Prefetch: nostate prefetch browser tests. (Closed)
Patch Set: comments Created 4 years, 2 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 <stddef.h> 5 #include <stddef.h>
6 #include <deque> 6 #include <deque>
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <unordered_map> 9 #include <unordered_map>
10 #include <utility> 10 #include <utility>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/bind.h" 13 #include "base/bind.h"
14 #include "base/command_line.h" 14 #include "base/command_line.h"
15 #include "base/files/file_path.h" 15 #include "base/files/file_path.h"
16 #include "base/macros.h" 16 #include "base/macros.h"
17 #include "base/memory/ref_counted_memory.h" 17 #include "base/memory/ref_counted_memory.h"
18 #include "base/memory/scoped_vector.h" 18 #include "base/memory/scoped_vector.h"
19 #include "base/memory/weak_ptr.h" 19 #include "base/memory/weak_ptr.h"
20 #include "base/path_service.h" 20 #include "base/path_service.h"
21 #include "base/run_loop.h" 21 #include "base/run_loop.h"
22 #include "base/scoped_observer.h" 22 #include "base/scoped_observer.h"
23 #include "base/stl_util.h" 23 #include "base/stl_util.h"
24 #include "base/strings/string_split.h" 24 #include "base/strings/string_split.h"
25 #include "base/strings/string_util.h" 25 #include "base/strings/string_util.h"
26 #include "base/strings/stringprintf.h" 26 #include "base/strings/stringprintf.h"
27 #include "base/strings/utf_string_conversions.h" 27 #include "base/strings/utf_string_conversions.h"
28 #include "base/test/histogram_tester.h"
29 #include "base/test/scoped_feature_list.h" 28 #include "base/test/scoped_feature_list.h"
30 #include "base/test/test_timeouts.h" 29 #include "base/test/test_timeouts.h"
31 #include "base/values.h" 30 #include "base/values.h"
32 #include "build/build_config.h" 31 #include "build/build_config.h"
33 #include "chrome/browser/browsing_data/browsing_data_helper.h" 32 #include "chrome/browser/browsing_data/browsing_data_helper.h"
34 #include "chrome/browser/browsing_data/browsing_data_remover.h" 33 #include "chrome/browser/browsing_data/browsing_data_remover.h"
35 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" 34 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
36 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h" 35 #include "chrome/browser/browsing_data/browsing_data_remover_test_util.h"
37 #include "chrome/browser/chrome_content_browser_client.h" 36 #include "chrome/browser/chrome_content_browser_client.h"
38 #include "chrome/browser/chrome_notification_types.h" 37 #include "chrome/browser/chrome_notification_types.h"
(...skipping 20 matching lines...) Expand all
59 #include "chrome/browser/ui/browser.h" 58 #include "chrome/browser/ui/browser.h"
60 #include "chrome/browser/ui/browser_commands.h" 59 #include "chrome/browser/ui/browser_commands.h"
61 #include "chrome/browser/ui/browser_finder.h" 60 #include "chrome/browser/ui/browser_finder.h"
62 #include "chrome/browser/ui/browser_window.h" 61 #include "chrome/browser/ui/browser_window.h"
63 #include "chrome/browser/ui/location_bar/location_bar.h" 62 #include "chrome/browser/ui/location_bar/location_bar.h"
64 #include "chrome/browser/ui/tabs/tab_strip_model.h" 63 #include "chrome/browser/ui/tabs/tab_strip_model.h"
65 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h" 64 #include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
66 #include "chrome/common/chrome_features.h" 65 #include "chrome/common/chrome_features.h"
67 #include "chrome/common/chrome_paths.h" 66 #include "chrome/common/chrome_paths.h"
68 #include "chrome/common/chrome_switches.h" 67 #include "chrome/common/chrome_switches.h"
69 #include "chrome/grit/generated_resources.h"
70 #include "chrome/test/base/ui_test_utils.h" 68 #include "chrome/test/base/ui_test_utils.h"
71 #include "components/content_settings/core/browser/host_content_settings_map.h" 69 #include "components/content_settings/core/browser/host_content_settings_map.h"
72 #include "components/favicon/content/content_favicon_driver.h" 70 #include "components/favicon/content/content_favicon_driver.h"
73 #include "components/favicon/core/favicon_driver_observer.h" 71 #include "components/favicon/core/favicon_driver_observer.h"
74 #include "components/omnibox/browser/omnibox_edit_model.h" 72 #include "components/omnibox/browser/omnibox_edit_model.h"
75 #include "components/omnibox/browser/omnibox_popup_model.h" 73 #include "components/omnibox/browser/omnibox_popup_model.h"
76 #include "components/omnibox/browser/omnibox_view.h" 74 #include "components/omnibox/browser/omnibox_view.h"
77 #include "components/safe_browsing_db/database_manager.h" 75 #include "components/safe_browsing_db/database_manager.h"
78 #include "components/safe_browsing_db/util.h" 76 #include "components/safe_browsing_db/util.h"
79 #include "components/variations/entropy_provider.h" 77 #include "components/variations/entropy_provider.h"
(...skipping 30 matching lines...) Expand all
110 #include "net/test/cert_test_util.h" 108 #include "net/test/cert_test_util.h"
111 #include "net/test/embedded_test_server/embedded_test_server.h" 109 #include "net/test/embedded_test_server/embedded_test_server.h"
112 #include "net/test/embedded_test_server/request_handler_util.h" 110 #include "net/test/embedded_test_server/request_handler_util.h"
113 #include "net/test/test_data_directory.h" 111 #include "net/test/test_data_directory.h"
114 #include "net/url_request/url_request_context.h" 112 #include "net/url_request/url_request_context.h"
115 #include "net/url_request/url_request_context_getter.h" 113 #include "net/url_request/url_request_context_getter.h"
116 #include "net/url_request/url_request_filter.h" 114 #include "net/url_request/url_request_filter.h"
117 #include "net/url_request/url_request_job.h" 115 #include "net/url_request/url_request_job.h"
118 #include "testing/gmock/include/gmock/gmock.h" 116 #include "testing/gmock/include/gmock/gmock.h"
119 #include "testing/gtest/include/gtest/gtest.h" 117 #include "testing/gtest/include/gtest/gtest.h"
120 #include "ui/base/l10n/l10n_util.h"
121 #include "url/gurl.h" 118 #include "url/gurl.h"
122 119
123 using chrome_browser_net::NetworkPredictionOptions; 120 using chrome_browser_net::NetworkPredictionOptions;
124 using content::BrowserThread; 121 using content::BrowserThread;
125 using content::DevToolsAgentHost; 122 using content::DevToolsAgentHost;
126 using content::NavigationController; 123 using content::NavigationController;
127 using content::OpenURLParams; 124 using content::OpenURLParams;
128 using content::Referrer; 125 using content::Referrer;
129 using content::RenderFrameHost; 126 using content::RenderFrameHost;
130 using content::RenderViewHost; 127 using content::RenderViewHost;
(...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 chrome::GoBack(current_browser(), WindowOpenDisposition::CURRENT_TAB); 726 chrome::GoBack(current_browser(), WindowOpenDisposition::CURRENT_TAB);
730 back_nav_observer.Wait(); 727 back_nav_observer.Wait();
731 bool js_result; 728 bool js_result;
732 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( 729 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(
733 tab, 730 tab,
734 "window.domAutomationController.send(DidBackToOriginalPagePass())", 731 "window.domAutomationController.send(DidBackToOriginalPagePass())",
735 &js_result)); 732 &js_result));
736 EXPECT_TRUE(js_result); 733 EXPECT_TRUE(js_result);
737 } 734 }
738 735
739 void UseHttpsSrcServer() {
740 if (https_src_server_)
741 return;
742 https_src_server_.reset(
743 new net::EmbeddedTestServer(net::EmbeddedTestServer::TYPE_HTTPS));
744 https_src_server_->ServeFilesFromSourceDirectory("chrome/test/data");
745 CHECK(https_src_server_->Start());
746 }
747
748 void DisableJavascriptCalls() { 736 void DisableJavascriptCalls() {
749 call_javascript_ = false; 737 call_javascript_ = false;
750 } 738 }
751 739
752 void DisableLoadEventCheck() { 740 void DisableLoadEventCheck() {
753 check_load_events_ = false; 741 check_load_events_ = false;
754 } 742 }
755 743
756 const PrerenderLinkManager* GetPrerenderLinkManager() const { 744 const PrerenderLinkManager* GetPrerenderLinkManager() const {
757 PrerenderLinkManager* prerender_link_manager = 745 PrerenderLinkManager* prerender_link_manager =
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 std::unique_ptr<base::DictionaryValue> prerender_dict = 824 std::unique_ptr<base::DictionaryValue> prerender_dict =
837 GetPrerenderManager()->GetAsValue(); 825 GetPrerenderManager()->GetAsValue();
838 if (!prerender_dict) 826 if (!prerender_dict)
839 return std::numeric_limits<size_t>::max(); 827 return std::numeric_limits<size_t>::max();
840 base::ListValue* history_list; 828 base::ListValue* history_list;
841 if (!prerender_dict->GetList("history", &history_list)) 829 if (!prerender_dict->GetList("history", &history_list))
842 return std::numeric_limits<size_t>::max(); 830 return std::numeric_limits<size_t>::max();
843 return history_list->GetSize(); 831 return history_list->GetSize();
844 } 832 }
845 833
846 test_utils::FakeSafeBrowsingDatabaseManager*
847 GetFakeSafeBrowsingDatabaseManager() {
848 return static_cast<test_utils::FakeSafeBrowsingDatabaseManager*>(
849 safe_browsing_factory()
850 ->test_safe_browsing_service()
851 ->database_manager()
852 .get());
853 }
854
855 void SetLoaderHostOverride(const std::string& host) { 834 void SetLoaderHostOverride(const std::string& host) {
856 loader_host_override_ = host; 835 loader_host_override_ = host;
857 host_resolver()->AddRule(host, "127.0.0.1"); 836 host_resolver()->AddRule(host, "127.0.0.1");
858 } 837 }
859 838
860 void set_loader_path(const std::string& path) { 839 void set_loader_path(const std::string& path) {
861 loader_path_ = path; 840 loader_path_ = path;
862 } 841 }
863 842
864 void set_loader_query(const std::string& query) { 843 void set_loader_query(const std::string& query) {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
905 } 884 }
906 885
907 void AddPrerender(const GURL& url, int index) { 886 void AddPrerender(const GURL& url, int index) {
908 std::string javascript = base::StringPrintf( 887 std::string javascript = base::StringPrintf(
909 "AddPrerender('%s', %d)", url.spec().c_str(), index); 888 "AddPrerender('%s', %d)", url.spec().c_str(), index);
910 RenderFrameHost* render_frame_host = GetActiveWebContents()->GetMainFrame(); 889 RenderFrameHost* render_frame_host = GetActiveWebContents()->GetMainFrame();
911 render_frame_host->ExecuteJavaScriptForTests( 890 render_frame_host->ExecuteJavaScriptForTests(
912 base::ASCIIToUTF16(javascript)); 891 base::ASCIIToUTF16(javascript));
913 } 892 }
914 893
915 // Returns a string for pattern-matching TaskManager tab entries.
916 base::string16 MatchTaskManagerTab(const char* page_title) {
917 return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_TAB_PREFIX,
918 base::ASCIIToUTF16(page_title));
919 }
920
921 // Returns a string for pattern-matching TaskManager prerender entries.
922 base::string16 MatchTaskManagerPrerender(const char* page_title) {
923 return l10n_util::GetStringFUTF16(IDS_TASK_MANAGER_PRERENDER_PREFIX,
924 base::ASCIIToUTF16(page_title));
925 }
926
927 const base::HistogramTester& histogram_tester() { return histogram_tester_; }
928
929 private: 894 private:
930 // TODO(davidben): Remove this altogether so the tests don't globally assume 895 // TODO(davidben): Remove this altogether so the tests don't globally assume
931 // only one prerender. 896 // only one prerender.
932 TestPrerenderContents* GetPrerenderContents() const { 897 TestPrerenderContents* GetPrerenderContents() const {
933 return GetPrerenderContentsFor(dest_url_); 898 return GetPrerenderContentsFor(dest_url_);
934 } 899 }
935 900
936 ScopedVector<TestPrerender> PrerenderTestURLImpl( 901 ScopedVector<TestPrerender> PrerenderTestURLImpl(
937 const GURL& prerender_url, 902 const GURL& prerender_url,
938 const std::vector<FinalStatus>& expected_final_status_queue, 903 const std::vector<FinalStatus>& expected_final_status_queue,
939 int expected_number_of_loads) override { 904 int expected_number_of_loads) override {
940 dest_url_ = prerender_url; 905 dest_url_ = prerender_url;
941 906
942 base::StringPairs replacement_text; 907 base::StringPairs replacement_text;
943 replacement_text.push_back( 908 replacement_text.push_back(
944 make_pair("REPLACE_WITH_PRERENDER_URL", prerender_url.spec())); 909 make_pair("REPLACE_WITH_PRERENDER_URL", prerender_url.spec()));
945 std::string replacement_path; 910 std::string replacement_path;
946 net::test_server::GetFilePathWithReplacements( 911 net::test_server::GetFilePathWithReplacements(
947 loader_path_, replacement_text, &replacement_path); 912 loader_path_, replacement_text, &replacement_path);
948 913
949 const net::EmbeddedTestServer* src_server = embedded_test_server(); 914 GURL loader_url =
950 if (https_src_server_) 915 src_server()->GetURL(replacement_path + "&" + loader_query_);
951 src_server = https_src_server_.get();
952 GURL loader_url = src_server->GetURL(
953 replacement_path + "&" + loader_query_);
954 916
955 GURL::Replacements loader_replacements; 917 GURL::Replacements loader_replacements;
956 if (!loader_host_override_.empty()) 918 if (!loader_host_override_.empty())
957 loader_replacements.SetHostStr(loader_host_override_); 919 loader_replacements.SetHostStr(loader_host_override_);
958 loader_url = loader_url.ReplaceComponents(loader_replacements); 920 loader_url = loader_url.ReplaceComponents(loader_replacements);
959 921
960 CHECK(!expected_final_status_queue.empty()); 922 ScopedVector<TestPrerender> prerenders = NavigateWithPrerenders(
961 ScopedVector<TestPrerender> prerenders; 923 loader_url, expected_final_status_queue, expected_number_of_loads);
962 for (size_t i = 0; i < expected_final_status_queue.size(); i++) {
963 prerenders.push_back(
964 prerender_contents_factory()
965 ->ExpectPrerenderContents(expected_final_status_queue[i])
966 .release());
967 }
968 924
969 FinalStatus expected_final_status = expected_final_status_queue.front(); 925 FinalStatus expected_final_status = expected_final_status_queue.front();
970
971 // Navigate to the loader URL and then wait for the first prerender to be
972 // created.
973 ui_test_utils::NavigateToURL(current_browser(), loader_url);
974 prerenders[0]->WaitForCreate();
975 prerenders[0]->WaitForLoads(expected_number_of_loads);
976
977 if (ShouldAbortPrerenderBeforeSwap(expected_final_status)) { 926 if (ShouldAbortPrerenderBeforeSwap(expected_final_status)) {
978 // The prerender will abort on its own. Assert it does so correctly. 927 // The prerender will abort on its own. Assert it does so correctly.
979 prerenders[0]->WaitForStop(); 928 prerenders[0]->WaitForStop();
980 EXPECT_FALSE(prerenders[0]->contents()); 929 EXPECT_FALSE(prerenders[0]->contents());
981 EXPECT_TRUE(DidReceivePrerenderStopEventForLinkNumber(0)); 930 EXPECT_TRUE(DidReceivePrerenderStopEventForLinkNumber(0));
982 } else { 931 } else {
983 // Otherwise, check that it prerendered correctly. 932 // Otherwise, check that it prerendered correctly.
984 TestPrerenderContents* prerender_contents = prerenders[0]->contents(); 933 TestPrerenderContents* prerender_contents = prerenders[0]->contents();
985 CHECK(prerender_contents); 934 CHECK(prerender_contents);
986 EXPECT_EQ(FINAL_STATUS_MAX, prerender_contents->final_status()); 935 EXPECT_EQ(FINAL_STATUS_MAX, prerender_contents->final_status());
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1052 } else { 1001 } else {
1053 NavigationOrSwapObserver observer(current_browser()->tab_strip_model(), 1002 NavigationOrSwapObserver observer(current_browser()->tab_strip_model(),
1054 web_contents); 1003 web_contents);
1055 render_frame_host->ExecuteJavaScriptForTests( 1004 render_frame_host->ExecuteJavaScriptForTests(
1056 base::ASCIIToUTF16(javascript)); 1005 base::ASCIIToUTF16(javascript));
1057 observer.Wait(); 1006 observer.Wait();
1058 } 1007 }
1059 } 1008 }
1060 1009
1061 GURL dest_url_; 1010 GURL dest_url_;
1062 std::unique_ptr<net::EmbeddedTestServer> https_src_server_;
1063 bool call_javascript_; 1011 bool call_javascript_;
1064 bool check_load_events_; 1012 bool check_load_events_;
1065 std::string loader_host_override_; 1013 std::string loader_host_override_;
1066 std::string loader_path_; 1014 std::string loader_path_;
1067 std::string loader_query_; 1015 std::string loader_query_;
1068 base::HistogramTester histogram_tester_;
1069 }; 1016 };
1070 1017
1071 // Checks that a page is correctly prerendered in the case of a 1018 // Checks that a page is correctly prerendered in the case of a
1072 // <link rel=prerender> tag and then loaded into a tab in response to a 1019 // <link rel=prerender> tag and then loaded into a tab in response to a
1073 // navigation. 1020 // navigation.
1074 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPage) { 1021 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPage) {
1075 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1); 1022 PrerenderTestURL("/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
1076 EXPECT_EQ(1, GetPrerenderDomContentLoadedEventCountForLinkNumber(0)); 1023 EXPECT_EQ(1, GetPrerenderDomContentLoadedEventCountForLinkNumber(0));
1077 histogram_tester().ExpectTotalCount("Prerender.none_PerceivedPLT", 1); 1024 histogram_tester().ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
1078 histogram_tester().ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0); 1025 histogram_tester().ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0);
(...skipping 594 matching lines...) Expand 10 before | Expand all | Expand 10 after
1673 } 1620 }
1674 1621
1675 // Checks that the referrer is set when prerendering. 1622 // Checks that the referrer is set when prerendering.
1676 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderReferrer) { 1623 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderReferrer) {
1677 PrerenderTestURL("/prerender/prerender_referrer.html", FINAL_STATUS_USED, 1); 1624 PrerenderTestURL("/prerender/prerender_referrer.html", FINAL_STATUS_USED, 1);
1678 NavigateToDestURL(); 1625 NavigateToDestURL();
1679 } 1626 }
1680 1627
1681 // Checks that the referrer is not set when prerendering and the source page is 1628 // Checks that the referrer is not set when prerendering and the source page is
1682 // HTTPS. 1629 // HTTPS.
1683 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, 1630 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderNoSSLReferrer) {
1684 PrerenderNoSSLReferrer) { 1631 // Use http:// url for the prerendered page main resource.
1632 GURL url(
1633 embedded_test_server()->GetURL("/prerender/prerender_no_referrer.html"));
1634
1635 // Use https:// for all other resources.
1685 UseHttpsSrcServer(); 1636 UseHttpsSrcServer();
1686 PrerenderTestURL("/prerender/prerender_no_referrer.html", FINAL_STATUS_USED, 1637
1687 1); 1638 PrerenderTestURL(url, FINAL_STATUS_USED, 1);
1688 NavigateToDestURL(); 1639 NavigateToDestURL();
1689 } 1640 }
1690 1641
1691 // Checks that the referrer is set when prerendering is cancelled. 1642 // Checks that the referrer is set when prerendering is cancelled.
1692 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderCancelReferrer) { 1643 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderCancelReferrer) {
1693 std::unique_ptr<TestContentBrowserClient> test_content_browser_client( 1644 std::unique_ptr<TestContentBrowserClient> test_content_browser_client(
1694 new TestContentBrowserClient); 1645 new TestContentBrowserClient);
1695 content::ContentBrowserClient* original_browser_client = 1646 content::ContentBrowserClient* original_browser_client =
1696 content::SetBrowserClientForTesting(test_content_browser_client.get()); 1647 content::SetBrowserClientForTesting(test_content_browser_client.get());
1697 1648
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
2162 } 2113 }
2163 2114
2164 // Checks that xhr DELETE cancels prerenders. 2115 // Checks that xhr DELETE cancels prerenders.
2165 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderXhrDelete) { 2116 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderXhrDelete) {
2166 PrerenderTestURL("/prerender/prerender_xhr_delete.html", 2117 PrerenderTestURL("/prerender/prerender_xhr_delete.html",
2167 FINAL_STATUS_INVALID_HTTP_METHOD, 1); 2118 FINAL_STATUS_INVALID_HTTP_METHOD, 1);
2168 } 2119 }
2169 2120
2170 // Checks that a top-level page which would trigger an SSL error is canceled. 2121 // Checks that a top-level page which would trigger an SSL error is canceled.
2171 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLErrorTopLevel) { 2122 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLErrorTopLevel) {
2123 // Set up HTTPS server for prerendered page, and check that an SSL error will
pasko 2016/10/03 18:54:17 Please replace the toplevel comment for this test
mattcary 2016/10/04 08:25:12 Done.
2124 // cancel the prerender. The prerenderer loader will serve through HTTP.
pasko 2016/10/03 18:54:17 perhaps "will be served"? I do not understand how
mattcary 2016/10/04 08:25:12 Done.
2172 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); 2125 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS);
2173 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_MISMATCHED_NAME); 2126 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_MISMATCHED_NAME);
2174 https_server.ServeFilesFromSourceDirectory("chrome/test/data"); 2127 https_server.ServeFilesFromSourceDirectory("chrome/test/data");
2175 ASSERT_TRUE(https_server.Start()); 2128 ASSERT_TRUE(https_server.Start());
2176 GURL https_url = https_server.GetURL("/prerender/prerender_page.html"); 2129 GURL https_url = https_server.GetURL("/prerender/prerender_page.html");
2177 PrerenderTestURL(https_url, 2130 PrerenderTestURL(https_url, FINAL_STATUS_SSL_ERROR, 0);
2178 FINAL_STATUS_SSL_ERROR,
2179 0);
2180 } 2131 }
2181 2132
2182 // Checks that an SSL error that comes from a subresource does not cancel 2133 // Checks that an SSL error that comes from a subresource does not cancel
2183 // the page. Non-main-frame requests are simply cancelled if they run into 2134 // the page. Non-main-frame requests are simply cancelled if they run into
2184 // an SSL problem. 2135 // an SSL problem.
2185 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLErrorSubresource) { 2136 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSSLErrorSubresource) {
2186 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); 2137 net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS);
2187 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_MISMATCHED_NAME); 2138 https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_MISMATCHED_NAME);
2188 https_server.ServeFilesFromSourceDirectory("chrome/test/data"); 2139 https_server.ServeFilesFromSourceDirectory("chrome/test/data");
2189 ASSERT_TRUE(https_server.Start()); 2140 ASSERT_TRUE(https_server.Start());
(...skipping 1191 matching lines...) Expand 10 before | Expand all | Expand 10 after
3381 browser()->tab_strip_model()->GetActiveWebContents(); 3332 browser()->tab_strip_model()->GetActiveWebContents();
3382 bool display_test_result = false; 3333 bool display_test_result = false;
3383 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, 3334 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents,
3384 "DidDisplayReallyPass()", 3335 "DidDisplayReallyPass()",
3385 &display_test_result)); 3336 &display_test_result));
3386 ASSERT_TRUE(display_test_result); 3337 ASSERT_TRUE(display_test_result);
3387 } 3338 }
3388 #endif // !defined(DISABLE_NACL) 3339 #endif // !defined(DISABLE_NACL)
3389 3340
3390 } // namespace prerender 3341 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698