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); |