Chromium Code Reviews| Index: chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc |
| diff --git a/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc b/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc |
| index 7b4f765c5408448c917c3efc05a3ec8e0d5baa65..c1005dc2ed074f8f20bd8be19db4df5703b08d5f 100644 |
| --- a/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc |
| +++ b/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc |
| @@ -20,7 +20,6 @@ |
| #include "chrome/common/chrome_switches.h" |
| #include "chrome/grit/generated_resources.h" |
| #include "chrome/test/base/ui_test_utils.h" |
| -#include "content/public/common/content_switches.h" |
| #include "content/public/common/url_constants.h" |
| #include "content/public/test/browser_test_utils.h" |
| #include "net/base/escape.h" |
| @@ -59,12 +58,6 @@ class NoStatePrefetchBrowserTest |
| public: |
| NoStatePrefetchBrowserTest() {} |
| - void SetUpCommandLine(base::CommandLine* command_line) override { |
| - PrerenderInProcessBrowserTest::SetUpCommandLine(command_line); |
| - command_line->AppendSwitchASCII( |
| - switches::kPrerenderMode, switches::kPrerenderModeSwitchValuePrefetch); |
| - } |
| - |
| // Set up a request counter for |path|, which is also the location of the data |
| // served by the request. |
| void CountRequestFor(const std::string& path_str, RequestCounter* counter) { |
| @@ -115,6 +108,8 @@ class NoStatePrefetchBrowserTest |
| // Checks that a page is correctly prefetched in the case of a |
| // <link rel=prerender> tag and the JavaScript on the page is not executed. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchSimple) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
|
pasko
2016/12/01 16:47:58
that's very repetitive, can we do it in c-tor or S
droger
2016/12/01 17:17:41
No.
One option would be to keep the SetUpCommandL
droger
2016/12/01 17:39:49
Maybe I spoke too soon, as SetupOnMainThread() see
|
| + |
| RequestCounter main_counter; |
| CountRequestFor(kPrefetchPage, &main_counter); |
| RequestCounter script_counter; |
| @@ -134,6 +129,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchSimple) { |
| // Check that the LOAD_PREFETCH flag is set. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchLoadFlag) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| RequestCounter main_counter; |
| RequestCounter script_counter; |
| content::BrowserThread::PostTask( |
| @@ -158,6 +155,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchLoadFlag) { |
| // Checks the prefetch of an img tag. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchImage) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| RequestCounter image_counter; |
| CountRequestFor(kPrefetchJpeg, &image_counter); |
| base::StringPairs replacement_text; |
| @@ -174,6 +173,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchImage) { |
| // Checks that a cross-domain prefetching works correctly. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchCrossDomain) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| static const std::string secondary_domain = "www.foo.com"; |
| host_resolver()->AddRule(secondary_domain, "127.0.0.1"); |
| GURL cross_domain_url(base::StringPrintf( |
| @@ -187,6 +188,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchCrossDomain) { |
| // Checks that response header CSP is respected. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, ResponseHeaderCSP) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| static const std::string secondary_domain = "foo.bar"; |
| host_resolver()->AddRule(secondary_domain, "127.0.0.1"); |
| RequestCounter main_page; |
| @@ -209,6 +212,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, ResponseHeaderCSP) { |
| // TODO(mattcary): probably this behavior should be consistent with |
| // response-header CSP. See crbug/656581. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, MetaTagCSP) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| static const std::string secondary_domain = "foo.bar"; |
| host_resolver()->AddRule(secondary_domain, "127.0.0.1"); |
| RequestCounter main_page; |
| @@ -230,6 +235,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, MetaTagCSP) { |
| // Checks that the second prefetch request succeeds. This test waits for |
| // Prerender Stop before starting the second request. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchMultipleRequest) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| RequestCounter first_main_counter; |
| CountRequestFor(kPrefetchPage, &first_main_counter); |
| RequestCounter second_main_counter; |
| @@ -250,6 +257,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchMultipleRequest) { |
| // Checks that a second prefetch request, started before the first stops, |
| // succeeds. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchSimultaneous) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| RequestCounter second_main_counter; |
| CountRequestFor(kPrefetchPage2, &second_main_counter); |
| RequestCounter second_script_counter; |
| @@ -279,12 +288,16 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchSimultaneous) { |
| // Checks a prefetch to a nonexisting page. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchNonexisting) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| std::unique_ptr<TestPrerender> test_prerender = PrefetchFromFile( |
| "nonexisting-page.html", FINAL_STATUS_UNSUPPORTED_SCHEME); |
| } |
| // Checks that a 301 redirect is followed. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, Prefetch301Redirect) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| RequestCounter script_counter; |
| CountRequestFor(kPrefetchScript, &script_counter); |
| PrefetchFromFile( |
| @@ -297,6 +310,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, Prefetch301Redirect) { |
| // Checks that the load flags are set correctly for all resources in a 301 |
| // redirect chain. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, Prefetch301LoadFlags) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| std::string redirect_path = |
| "/server-redirect/?" + |
| net::EscapeQueryParamValue(MakeAbsolute(kPrefetchPage), false); |
| @@ -319,6 +334,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, Prefetch301LoadFlags) { |
| // Checks that a subresource 301 redirect is followed. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, Prefetch301Subresource) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| RequestCounter script_counter; |
| CountRequestFor(kPrefetchScript, &script_counter); |
| PrefetchFromFile(kPrefetchSubresourceRedirectPage, |
| @@ -328,6 +345,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, Prefetch301Subresource) { |
| // Checks a client redirect is not followed. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchClientRedirect) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| RequestCounter script_counter; |
| CountRequestFor(kPrefetchScript, &script_counter); |
| // A complete load of kPrefetchPage2 is used as a sentinal. Otherwise the test |
| @@ -346,6 +365,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchClientRedirect) { |
| } |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchHttps) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| UseHttpsSrcServer(); |
| RequestCounter main_counter; |
| CountRequestFor(kPrefetchPage, &main_counter); |
| @@ -358,6 +379,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchHttps) { |
| // Checks that an SSL error prevents prefetch. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, SSLError) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| // Only send the loaded page, not the loader, through SSL. |
| net::EmbeddedTestServer https_server(net::EmbeddedTestServer::TYPE_HTTPS); |
| https_server.SetSSLConfig(net::EmbeddedTestServer::CERT_MISMATCHED_NAME); |
| @@ -372,6 +395,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, SSLError) { |
| // Checks that a subresource failing SSL does not prevent prefetch on the rest |
| // of the page. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, SSLSubresourceError) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| // First confirm that the image loads as expected. |
| // A separate HTTPS server is started for the subresource; src_server() is |
| @@ -399,6 +424,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, SSLSubresourceError) { |
| } |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, Loop) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| RequestCounter script_counter; |
| CountRequestFor(kPrefetchScript, &script_counter); |
| RequestCounter main_counter; |
| @@ -411,6 +438,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, Loop) { |
| } |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, RendererCrash) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| // Navigate to about:blank to get the session storage namespace. |
| ui_test_utils::NavigateToURL(current_browser(), GURL(url::kAboutBlankURL)); |
| content::SessionStorageNamespace* storage_namespace = |
| @@ -434,6 +463,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, RendererCrash) { |
| // Checks that the prefetch of png correctly loads the png. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, Png) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| RequestCounter counter; |
| CountRequestFor(kPrefetchPng, &counter); |
| PrefetchFromFile(kPrefetchPng, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED); |
| @@ -442,6 +473,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, Png) { |
| // Checks that the prefetch of png correctly loads the jpeg. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, Jpeg) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| RequestCounter counter; |
| CountRequestFor(kPrefetchJpeg, &counter); |
| PrefetchFromFile(kPrefetchJpeg, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED); |
| @@ -454,6 +487,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, Jpeg) { |
| // deterministically. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, |
| DISABLED_PrerenderSafeBrowsingTopLevel) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| GURL url = src_server()->GetURL(MakeAbsolute(kPrefetchPage)); |
| GetFakeSafeBrowsingDatabaseManager()->SetThreatTypeForUrl( |
| url, safe_browsing::SB_THREAT_TYPE_URL_MALWARE); |
| @@ -469,6 +504,8 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, |
| // Checks that prefetching a page does not add it to browsing history. |
| IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, HistoryUntouchedByPrefetch) { |
| + PrerenderManager::SetMode(PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); |
| + |
| // Initialize. |
| Profile* profile = current_browser()->profile(); |
| ASSERT_TRUE(profile); |