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

Unified Diff: chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc

Issue 2537503002: [Prerender] Get the prerender mode from Finch field trial. (Closed)
Patch Set: Feature API Created 4 years 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 side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698