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

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

Issue 2851103002: Update some host_resolver()->AddRules in chrome/browser. (Closed)
Patch Set: fix Created 3 years, 7 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 "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/memory/ptr_util.h" 6 #include "base/memory/ptr_util.h"
7 #include "base/memory/ref_counted.h" 7 #include "base/memory/ref_counted.h"
8 #include "base/strings/string16.h" 8 #include "base/strings/string16.h"
9 #include "base/strings/string_split.h" 9 #include "base/strings/string_split.h"
10 #include "base/strings/stringprintf.h" 10 #include "base/strings/stringprintf.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 66
67 class NoStatePrefetchBrowserTest 67 class NoStatePrefetchBrowserTest
68 : public test_utils::PrerenderInProcessBrowserTest { 68 : public test_utils::PrerenderInProcessBrowserTest {
69 public: 69 public:
70 NoStatePrefetchBrowserTest() {} 70 NoStatePrefetchBrowserTest() {}
71 71
72 void SetUpOnMainThread() override { 72 void SetUpOnMainThread() override {
73 test_utils::PrerenderInProcessBrowserTest::SetUpOnMainThread(); 73 test_utils::PrerenderInProcessBrowserTest::SetUpOnMainThread();
74 PrerenderManager::SetMode( 74 PrerenderManager::SetMode(
75 PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH); 75 PrerenderManager::PRERENDER_MODE_NOSTATE_PREFETCH);
76 host_resolver()->AddRule("*", "127.0.0.1");
76 } 77 }
77 78
78 // Set up a request counter for |path|, which is also the location of the data 79 // Set up a request counter for |path|, which is also the location of the data
79 // served by the request. 80 // served by the request.
80 void CountRequestFor(const std::string& path_str, RequestCounter* counter) { 81 void CountRequestFor(const std::string& path_str, RequestCounter* counter) {
81 url::StringPieceReplacements<base::FilePath::StringType> replacement; 82 url::StringPieceReplacements<base::FilePath::StringType> replacement;
82 base::FilePath file_path = base::FilePath::FromUTF8Unsafe(path_str); 83 base::FilePath file_path = base::FilePath::FromUTF8Unsafe(path_str);
83 replacement.SetPathStr(file_path.value()); 84 replacement.SetPathStr(file_path.value());
84 const GURL url = src_server()->base_url().ReplaceComponents(replacement); 85 const GURL url = src_server()->base_url().ReplaceComponents(replacement);
85 CountRequestForUrl(url, path_str, counter); 86 CountRequestForUrl(url, path_str, counter);
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 GURL main_page_url = 262 GURL main_page_url =
262 GetURLWithReplacement(kPrefetchImagePage, "REPLACE_WITH_IMAGE_URL", 263 GetURLWithReplacement(kPrefetchImagePage, "REPLACE_WITH_IMAGE_URL",
263 MakeAbsolute(kPrefetchJpeg)); 264 MakeAbsolute(kPrefetchJpeg));
264 PrefetchFromURL(main_page_url, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED); 265 PrefetchFromURL(main_page_url, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED);
265 image_counter.WaitForCount(1); 266 image_counter.WaitForCount(1);
266 } 267 }
267 268
268 // Checks that a cross-domain prefetching works correctly. 269 // Checks that a cross-domain prefetching works correctly.
269 IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchCrossDomain) { 270 IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchCrossDomain) {
270 static const std::string secondary_domain = "www.foo.com"; 271 static const std::string secondary_domain = "www.foo.com";
271 host_resolver()->AddRule(secondary_domain, "127.0.0.1");
272 GURL cross_domain_url(base::StringPrintf( 272 GURL cross_domain_url(base::StringPrintf(
273 "http://%s:%d/%s", secondary_domain.c_str(), 273 "http://%s:%d/%s", secondary_domain.c_str(),
274 embedded_test_server()->host_port_pair().port(), kPrefetchPage)); 274 embedded_test_server()->host_port_pair().port(), kPrefetchPage));
275 RequestCounter cross_domain_counter; 275 RequestCounter cross_domain_counter;
276 CountRequestForUrl(cross_domain_url, kPrefetchPage, &cross_domain_counter); 276 CountRequestForUrl(cross_domain_url, kPrefetchPage, &cross_domain_counter);
277 PrefetchFromURL(cross_domain_url, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED); 277 PrefetchFromURL(cross_domain_url, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED);
278 cross_domain_counter.WaitForCount(1); 278 cross_domain_counter.WaitForCount(1);
279 } 279 }
280 280
281 // Checks that response header CSP is respected. 281 // Checks that response header CSP is respected.
282 IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, ResponseHeaderCSP) { 282 IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, ResponseHeaderCSP) {
283 static const std::string secondary_domain = "foo.bar"; 283 static const std::string secondary_domain = "foo.bar";
284 host_resolver()->AddRule(secondary_domain, "127.0.0.1");
285 RequestCounter main_page; 284 RequestCounter main_page;
286 CountRequestFor(kPrefetchResponseHeaderCSP, &main_page); 285 CountRequestFor(kPrefetchResponseHeaderCSP, &main_page);
287 RequestCounter first_script; 286 RequestCounter first_script;
288 CountRequestFor(kPrefetchScript, &first_script); 287 CountRequestFor(kPrefetchScript, &first_script);
289 RequestCounter second_script; 288 RequestCounter second_script;
290 GURL second_script_url(std::string("http://foo.bar/") + kPrefetchScript2); 289 GURL second_script_url(std::string("http://foo.bar/") + kPrefetchScript2);
291 CountRequestForUrl(second_script_url, kPrefetchScript2, &second_script); 290 CountRequestForUrl(second_script_url, kPrefetchScript2, &second_script);
292 PrefetchFromFile(kPrefetchResponseHeaderCSP, 291 PrefetchFromFile(kPrefetchResponseHeaderCSP,
293 FINAL_STATUS_NOSTATE_PREFETCH_FINISHED); 292 FINAL_STATUS_NOSTATE_PREFETCH_FINISHED);
294 // The second script is in the correct domain for CSP, but the first script is 293 // The second script is in the correct domain for CSP, but the first script is
295 // not. 294 // not.
296 main_page.WaitForCount(1); 295 main_page.WaitForCount(1);
297 second_script.WaitForCount(1); 296 second_script.WaitForCount(1);
298 first_script.WaitForCount(0); 297 first_script.WaitForCount(0);
299 } 298 }
300 299
301 // Checks that CSP in the meta tag cancels the prefetch. 300 // Checks that CSP in the meta tag cancels the prefetch.
302 // TODO(mattcary): probably this behavior should be consistent with 301 // TODO(mattcary): probably this behavior should be consistent with
303 // response-header CSP. See crbug/656581. 302 // response-header CSP. See crbug/656581.
304 IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, MetaTagCSP) { 303 IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, MetaTagCSP) {
305 static const std::string secondary_domain = "foo.bar"; 304 static const std::string secondary_domain = "foo.bar";
306 host_resolver()->AddRule(secondary_domain, "127.0.0.1");
307 RequestCounter main_page; 305 RequestCounter main_page;
308 CountRequestFor(kPrefetchMetaCSP, &main_page); 306 CountRequestFor(kPrefetchMetaCSP, &main_page);
309 RequestCounter first_script; 307 RequestCounter first_script;
310 CountRequestFor(kPrefetchScript, &first_script); 308 CountRequestFor(kPrefetchScript, &first_script);
311 RequestCounter second_script; 309 RequestCounter second_script;
312 GURL second_script_url(std::string("http://foo.bar/") + kPrefetchScript2); 310 GURL second_script_url(std::string("http://foo.bar/") + kPrefetchScript2);
313 CountRequestForUrl(second_script_url, kPrefetchScript2, &second_script); 311 CountRequestForUrl(second_script_url, kPrefetchScript2, &second_script);
314 PrefetchFromFile(kPrefetchMetaCSP, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED); 312 PrefetchFromFile(kPrefetchMetaCSP, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED);
315 // TODO(mattcary): See test comment above. If the meta CSP tag were parsed, 313 // TODO(mattcary): See test comment above. If the meta CSP tag were parsed,
316 // |second_script| would be loaded. Instead as the background scanner bails as 314 // |second_script| would be loaded. Instead as the background scanner bails as
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 CountRequestFor(kPrefetchPage, &page_counter); 747 CountRequestFor(kPrefetchPage, &page_counter);
750 RequestCounter script_counter; 748 RequestCounter script_counter;
751 CountRequestFor(kPrefetchScript, &script_counter); 749 CountRequestFor(kPrefetchScript, &script_counter);
752 PrefetchFromURL(prefetch_page_url, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED); 750 PrefetchFromURL(prefetch_page_url, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED);
753 // Neither the page nor the script should be prefetched. 751 // Neither the page nor the script should be prefetched.
754 script_counter.WaitForCount(0); 752 script_counter.WaitForCount(0);
755 page_counter.WaitForCount(0); 753 page_counter.WaitForCount(0);
756 } 754 }
757 755
758 } // namespace prerender 756 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_browsertest.cc ('k') | chrome/browser/search_engines/template_url_scraper_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698