[Net] Assert that URLRequests with LOAD_IGNORE_LIMITS have MAXIMUM_PRIORITY

Also remove the priority juggling in ClientSocketPoolBaseHelper, and instead
assert that any requests with ignore_limits = true also has priority =
MAXIMUM_PRIORITY.

BUG=166689
[email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
[email protected], [email protected]

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=232802

Review URL: https://codereview.chromium.org/51683002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234964 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/url_request/url_request_unittest.cc b/net/url_request/url_request_unittest.cc
index 8ba6187..dd7dc77 100644
--- a/net/url_request/url_request_unittest.cc
+++ b/net/url_request/url_request_unittest.cc
@@ -1931,6 +1931,31 @@
   EXPECT_EQ(MEDIUM, job->priority());
 }
 
+// Setting the IGNORE_LIMITS load flag should be okay if the priority
+// is MAXIMUM_PRIORITY.
+TEST_F(URLRequestTest, PriorityIgnoreLimits) {
+  TestDelegate d;
+  URLRequest req(GURL("http://test_intercept/foo"),
+                 MAXIMUM_PRIORITY,
+                 &d,
+                 &default_context_);
+  EXPECT_EQ(MAXIMUM_PRIORITY, req.priority());
+
+  scoped_refptr<URLRequestTestJob> job =
+      new URLRequestTestJob(&req, &default_network_delegate_);
+  AddTestInterceptor()->set_main_intercept_job(job.get());
+
+  req.SetLoadFlags(LOAD_IGNORE_LIMITS);
+  EXPECT_EQ(MAXIMUM_PRIORITY, req.priority());
+
+  req.SetPriority(MAXIMUM_PRIORITY);
+  EXPECT_EQ(MAXIMUM_PRIORITY, req.priority());
+
+  req.Start();
+  EXPECT_EQ(MAXIMUM_PRIORITY, req.priority());
+  EXPECT_EQ(MAXIMUM_PRIORITY, job->priority());
+}
+
 // TODO(droger): Support SpawnedTestServer on iOS (see http://crbug.com/148666).
 #if !defined(OS_IOS)
 // A subclass of SpawnedTestServer that uses a statically-configured hostname.
@@ -2039,7 +2064,7 @@
                    DEFAULT_PRIORITY,
                    &d,
                    &default_context_);
-    req.set_load_flags(LOAD_DO_NOT_SEND_COOKIES);
+    req.SetLoadFlags(LOAD_DO_NOT_SEND_COOKIES);
     req.Start();
     base::RunLoop().Run();
 
@@ -2083,7 +2108,7 @@
         DEFAULT_PRIORITY,
         &d,
         &default_context_);
-    req.set_load_flags(LOAD_DO_NOT_SAVE_COOKIES);
+    req.SetLoadFlags(LOAD_DO_NOT_SAVE_COOKIES);
     req.Start();
 
     base::RunLoop().Run();
@@ -2525,7 +2550,7 @@
     HttpRequestHeaders headers;
     headers.SetHeader(HttpRequestHeaders::kReferer, "http://bar.com/");
     req.SetExtraRequestHeaders(headers);
-    req.set_load_flags(LOAD_VALIDATE_CACHE);
+    req.SetLoadFlags(LOAD_VALIDATE_CACHE);
 
     req.Start();
     base::RunLoop().Run();
@@ -5371,7 +5396,7 @@
                  DEFAULT_PRIORITY,
                  &d,
                  &default_context_);
-    r.set_load_flags(LOAD_VALIDATE_CACHE);
+    r.SetLoadFlags(LOAD_VALIDATE_CACHE);
     r.Start();
 
     base::RunLoop().Run();
@@ -5491,7 +5516,7 @@
                  DEFAULT_PRIORITY,
                  &d,
                  &default_context_);
-    r.set_load_flags(LOAD_VALIDATE_CACHE);
+    r.SetLoadFlags(LOAD_VALIDATE_CACHE);
     r.Start();
 
     base::RunLoop().Run();