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

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

Issue 2540203002: NoStatePrefetch: Add a test to verify request priority (Closed)
Patch Set: removed include url_request_filter.h 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
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_test_utils.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..4328920f08de19906dac2753191da78e436cf6e4 100644
--- a/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc
+++ b/chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc
@@ -24,13 +24,12 @@
#include "content/public/common/url_constants.h"
#include "content/public/test/browser_test_utils.h"
#include "net/base/escape.h"
+#include "net/base/load_flags.h"
#include "net/dns/mock_host_resolver.h"
#include "net/test/embedded_test_server/request_handler_util.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/base/l10n/l10n_util.h"
-using prerender::test_utils::CreateCountingInterceptorOnIO;
-using prerender::test_utils::CreatePrefetchOnlyInterceptorOnIO;
using prerender::test_utils::DestructionWaiter;
using prerender::test_utils::RequestCounter;
using prerender::test_utils::TestPrerender;
@@ -83,8 +82,8 @@ class NoStatePrefetchBrowserTest
base::FilePath(), base::FilePath::FromUTF8Unsafe(path_str));
content::BrowserThread::PostTask(
content::BrowserThread::IO, FROM_HERE,
- base::Bind(&CreateCountingInterceptorOnIO, url, url_file,
- counter->AsWeakPtr()));
+ base::Bind(&prerender::test_utils::CreateCountingInterceptorOnIO, url,
+ url_file, counter->AsWeakPtr()));
}
protected:
@@ -136,16 +135,16 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchSimple) {
IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, PrefetchLoadFlag) {
RequestCounter main_counter;
RequestCounter script_counter;
- content::BrowserThread::PostTask(
- content::BrowserThread::IO, FROM_HERE,
- base::Bind(&CreatePrefetchOnlyInterceptorOnIO,
- src_server()->GetURL(MakeAbsolute(kPrefetchPage)),
- main_counter.AsWeakPtr()));
- content::BrowserThread::PostTask(
- content::BrowserThread::IO, FROM_HERE,
- base::Bind(&CreatePrefetchOnlyInterceptorOnIO,
- src_server()->GetURL(MakeAbsolute(kPrefetchScript)),
- script_counter.AsWeakPtr()));
+ auto verify_prefetch_only = base::Bind([](net::URLRequest* request) {
+ EXPECT_TRUE(request->load_flags() & net::LOAD_PREFETCH);
+ });
+
+ prerender::test_utils::InterceptRequestAndCount(
+ src_server()->GetURL(MakeAbsolute(kPrefetchPage)), &main_counter,
+ verify_prefetch_only);
+ prerender::test_utils::InterceptRequestAndCount(
+ src_server()->GetURL(MakeAbsolute(kPrefetchScript)), &script_counter,
+ verify_prefetch_only);
std::unique_ptr<TestPrerender> test_prerender =
PrefetchFromFile(kPrefetchPage, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED);
@@ -303,15 +302,14 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, Prefetch301LoadFlags) {
GURL redirect_url = src_server()->GetURL(redirect_path);
GURL page_url = src_server()->GetURL(MakeAbsolute(kPrefetchPage));
RequestCounter redirect_counter;
- content::BrowserThread::PostTask(
- content::BrowserThread::IO, FROM_HERE,
- base::Bind(&CreatePrefetchOnlyInterceptorOnIO, redirect_url,
- redirect_counter.AsWeakPtr()));
+ auto verify_prefetch_only = base::Bind([](net::URLRequest* request) {
+ EXPECT_TRUE(request->load_flags() & net::LOAD_PREFETCH);
+ });
+ prerender::test_utils::InterceptRequestAndCount(
+ redirect_url, &redirect_counter, verify_prefetch_only);
RequestCounter page_counter;
- content::BrowserThread::PostTask(
- content::BrowserThread::IO, FROM_HERE,
- base::Bind(&CreatePrefetchOnlyInterceptorOnIO, page_url,
- page_counter.AsWeakPtr()));
+ prerender::test_utils::InterceptRequestAndCount(page_url, &page_counter,
+ verify_prefetch_only);
PrefetchFromFile(redirect_path, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED);
redirect_counter.WaitForCount(1);
page_counter.WaitForCount(1);
@@ -498,4 +496,24 @@ IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest, HistoryUntouchedByPrefetch) {
EXPECT_EQ(2U, urls.size());
}
+// Checks that prefetch requests have net::IDLE priority.
+// On Android requests from prerenders do not get downgraded priority.
+// See: https://crbug.com/652746.
+#if defined(OS_ANDROID)
+#define MAYBE_IssuesIdlePriorityRequests DISABLED_IssuesIdlePriorityRequests
droger 2016/12/01 10:57:00 Should we keep the test enabled on Android, but ch
pasko 2016/12/01 12:04:54 Good idea. Done. PTAL. Since to bind a lambda the
+#else
+#define MAYBE_IssuesIdlePriorityRequests IssuesIdlePriorityRequests
+#endif
+IN_PROC_BROWSER_TEST_F(NoStatePrefetchBrowserTest,
+ MAYBE_IssuesIdlePriorityRequests) {
+ GURL script_url = src_server()->GetURL(MakeAbsolute(kPrefetchScript));
+ RequestCounter script_counter;
+ prerender::test_utils::InterceptRequestAndCount(
+ script_url, &script_counter, base::Bind([](net::URLRequest* request) {
+ EXPECT_EQ(net::IDLE, request->priority());
+ }));
+ PrefetchFromFile(kPrefetchPage, FINAL_STATUS_NOSTATE_PREFETCH_FINISHED);
+ script_counter.WaitForCount(1);
+}
+
} // namespace prerender
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698