| Index: net/http/http_network_transaction_unittest.cc
|
| diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
|
| index e2397215272d8e11a951547b5266654d1064cb28..84b758a4408d91e9df2c8a8395bb89a929273214 100644
|
| --- a/net/http/http_network_transaction_unittest.cc
|
| +++ b/net/http/http_network_transaction_unittest.cc
|
| @@ -10,6 +10,7 @@
|
|
|
| #include <limits>
|
| #include <memory>
|
| +#include <set>
|
| #include <string>
|
| #include <utility>
|
| #include <vector>
|
| @@ -34,6 +35,7 @@
|
| #include "net/base/load_timing_info.h"
|
| #include "net/base/load_timing_info_test_util.h"
|
| #include "net/base/net_errors.h"
|
| +#include "net/base/network_throttle_manager.h"
|
| #include "net/base/proxy_delegate.h"
|
| #include "net/base/request_priority.h"
|
| #include "net/base/test_completion_callback.h"
|
| @@ -109,6 +111,101 @@ namespace net {
|
|
|
| namespace {
|
|
|
| +class TestNetworkStreamThrottler : public NetworkThrottleManager {
|
| + public:
|
| + TestNetworkStreamThrottler()
|
| + : throttle_new_requests_(false),
|
| + num_set_priority_calls_(0),
|
| + last_priority_set_(IDLE) {}
|
| +
|
| + ~TestNetworkStreamThrottler() override {
|
| + EXPECT_TRUE(outstanding_throttles_.empty());
|
| + }
|
| +
|
| + // NetworkThrottleManager
|
| + std::unique_ptr<Throttle> CreateThrottle(ThrottleDelegate* delegate,
|
| + RequestPriority priority,
|
| + bool ignore_limits) override {
|
| + std::unique_ptr<TestThrottle> test_throttle(
|
| + new TestThrottle(throttle_new_requests_, delegate, this));
|
| + outstanding_throttles_.insert(test_throttle.get());
|
| + return std::move(test_throttle);
|
| + }
|
| +
|
| + void UnthrottleAllRequests() {
|
| + std::set<TestThrottle*> outstanding_throttles_copy(outstanding_throttles_);
|
| + for (auto& throttle : outstanding_throttles_copy) {
|
| + if (throttle->IsThrottled())
|
| + throttle->Unthrottle();
|
| + }
|
| + }
|
| +
|
| + void set_throttle_new_requests(bool throttle_new_requests) {
|
| + throttle_new_requests_ = throttle_new_requests;
|
| + }
|
| +
|
| + // Includes both throttled and unthrottled throttles.
|
| + size_t num_outstanding_requests() const {
|
| + return outstanding_throttles_.size();
|
| + }
|
| +
|
| + int num_set_priority_calls() const { return num_set_priority_calls_; }
|
| + RequestPriority last_priority_set() const { return last_priority_set_; }
|
| + void set_priority_change_closure(
|
| + const base::Closure& priority_change_closure) {
|
| + priority_change_closure_ = priority_change_closure;
|
| + }
|
| +
|
| + private:
|
| + class TestThrottle : public NetworkThrottleManager::Throttle {
|
| + public:
|
| + ~TestThrottle() override { throttler_->OnThrottleDestroyed(this); }
|
| +
|
| + // Throttle
|
| + bool IsThrottled() const override { return throttled_; }
|
| + void SetPriority(RequestPriority priority) override {
|
| + throttler_->SetPriorityCalled(priority);
|
| + }
|
| +
|
| + TestThrottle(bool throttled,
|
| + ThrottleDelegate* delegate,
|
| + TestNetworkStreamThrottler* throttler)
|
| + : throttled_(throttled), delegate_(delegate), throttler_(throttler) {}
|
| +
|
| + void Unthrottle() {
|
| + EXPECT_TRUE(throttled_);
|
| +
|
| + throttled_ = false;
|
| + delegate_->OnThrottleStateChanged();
|
| + }
|
| +
|
| + bool throttled_;
|
| + ThrottleDelegate* delegate_;
|
| + TestNetworkStreamThrottler* throttler_;
|
| + };
|
| +
|
| + void OnThrottleDestroyed(TestThrottle* throttle) {
|
| + EXPECT_NE(0u, outstanding_throttles_.count(throttle));
|
| + outstanding_throttles_.erase(throttle);
|
| + }
|
| +
|
| + void SetPriorityCalled(RequestPriority priority) {
|
| + ++num_set_priority_calls_;
|
| + last_priority_set_ = priority;
|
| + if (!priority_change_closure_.is_null())
|
| + priority_change_closure_.Run();
|
| + }
|
| +
|
| + // Includes both throttled and unthrottled throttles.
|
| + std::set<TestThrottle*> outstanding_throttles_;
|
| + bool throttle_new_requests_;
|
| + int num_set_priority_calls_;
|
| + RequestPriority last_priority_set_;
|
| + base::Closure priority_change_closure_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(TestNetworkStreamThrottler);
|
| +};
|
| +
|
| const base::string16 kBar(ASCIIToUTF16("bar"));
|
| const base::string16 kBar2(ASCIIToUTF16("bar2"));
|
| const base::string16 kBar3(ASCIIToUTF16("bar3"));
|
| @@ -257,6 +354,24 @@ std::unique_ptr<HttpNetworkSession> CreateSession(
|
| return SpdySessionDependencies::SpdyCreateSession(session_deps);
|
| }
|
|
|
| +// Note that the pointer written into |*throttler| will only be valid
|
| +// for the lifetime of the returned HttpNetworkSession.
|
| +std::unique_ptr<HttpNetworkSession> CreateSessionWithThrottler(
|
| + SpdySessionDependencies* session_deps,
|
| + TestNetworkStreamThrottler** throttler) {
|
| + std::unique_ptr<HttpNetworkSession> session(
|
| + SpdySessionDependencies::SpdyCreateSession(session_deps));
|
| +
|
| + std::unique_ptr<TestNetworkStreamThrottler> owned_throttler(
|
| + new TestNetworkStreamThrottler);
|
| + *throttler = owned_throttler.get();
|
| +
|
| + HttpNetworkSessionPeer peer(session.get());
|
| + peer.SetNetworkStreamThrottler(std::move(owned_throttler));
|
| +
|
| + return session;
|
| +}
|
| +
|
| } // namespace
|
|
|
| class HttpNetworkTransactionTest : public PlatformTest {
|
| @@ -328,7 +443,6 @@ class HttpNetworkTransactionTest : public PlatformTest {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| BoundTestNetLog log;
|
| session_deps_.net_log = log.bound().net_log();
|
| @@ -1051,7 +1165,6 @@ TEST_F(HttpNetworkTransactionTest, TwoIdenticalLocationHeaders) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://redirect.com/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -1096,7 +1209,6 @@ TEST_F(HttpNetworkTransactionTest, Head) {
|
| HttpRequestInfo request;
|
| request.method = "HEAD";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -1177,7 +1289,6 @@ TEST_F(HttpNetworkTransactionTest, ReuseConnection) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
|
|
| @@ -1213,7 +1324,6 @@ TEST_F(HttpNetworkTransactionTest, Ignores100) {
|
| request.method = "POST";
|
| request.url = GURL("http://www.foo.com/");
|
| request.upload_data_stream = &upload_data_stream;
|
| - request.load_flags = 0;
|
|
|
| // Check the upload progress returned before initialization is correct.
|
| UploadProgress progress = request.upload_data_stream->GetUploadProgress();
|
| @@ -1259,7 +1369,6 @@ TEST_F(HttpNetworkTransactionTest, Ignores1xx) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.foo.com/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -1297,7 +1406,6 @@ TEST_F(HttpNetworkTransactionTest, Incomplete100ThenEOF) {
|
| HttpRequestInfo request;
|
| request.method = "POST";
|
| request.url = GURL("http://www.foo.com/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -1327,7 +1435,6 @@ TEST_F(HttpNetworkTransactionTest, EmptyResponse) {
|
| HttpRequestInfo request;
|
| request.method = "POST";
|
| request.url = GURL("http://www.foo.com/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -1353,7 +1460,6 @@ void HttpNetworkTransactionTest::KeepAliveConnectionResendRequestTest(
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.foo.com/");
|
| - request.load_flags = 0;
|
|
|
| TestNetLog net_log;
|
| session_deps_.net_log = &net_log;
|
| @@ -1443,7 +1549,6 @@ void HttpNetworkTransactionTest::PreconnectErrorResendRequestTest(
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.foo.com/");
|
| - request.load_flags = 0;
|
|
|
| TestNetLog net_log;
|
| session_deps_.net_log = &net_log;
|
| @@ -1637,7 +1742,6 @@ TEST_F(HttpNetworkTransactionTest, NonKeepAliveConnectionReset) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -1693,7 +1797,6 @@ TEST_F(HttpNetworkTransactionTest, KeepAliveEarlyClose) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| std::unique_ptr<HttpNetworkTransaction> trans(
|
| @@ -1734,7 +1837,6 @@ TEST_F(HttpNetworkTransactionTest, KeepAliveEarlyClose2) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| std::unique_ptr<HttpNetworkTransaction> trans(
|
| @@ -1774,7 +1876,6 @@ TEST_F(HttpNetworkTransactionTest, KeepAliveAfterUnreadBody) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.foo.com/");
|
| - request.load_flags = 0;
|
|
|
| TestNetLog net_log;
|
| session_deps_.net_log = &net_log;
|
| @@ -2191,7 +2292,6 @@ TEST_F(HttpNetworkTransactionTest, BasicAuth) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| TestNetLog log;
|
| session_deps_.net_log = &log;
|
| @@ -2298,7 +2398,6 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthWithAddressChange) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| TestNetLog log;
|
| MockHostResolver* resolver = new MockHostResolver();
|
| @@ -2463,7 +2562,6 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthKeepAlive) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| TestNetLog log;
|
| session_deps_.net_log = &log;
|
| @@ -2553,7 +2651,6 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthKeepAliveNoBody) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| @@ -2627,7 +2724,6 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthKeepAliveLargeBody) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| @@ -2709,7 +2805,6 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthKeepAliveImpatientServer) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| @@ -3480,7 +3575,6 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthProxyCancelTunnel) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // Configure against proxy server "myproxy:70".
|
| session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70");
|
| @@ -3538,7 +3632,6 @@ TEST_F(HttpNetworkTransactionTest, SanitizeProxyAuthHeaders) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // Configure against proxy server "myproxy:70".
|
| session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70");
|
| @@ -3599,7 +3692,6 @@ TEST_F(HttpNetworkTransactionTest, UnexpectedProxyAuth) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // We are using a DIRECT connection (i.e. no proxy) for this session.
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| @@ -4532,7 +4624,6 @@ TEST_F(HttpNetworkTransactionTest, HttpsProxySpdyGet) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // Configure against https proxy server "proxy:70".
|
| session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70");
|
| @@ -4592,7 +4683,6 @@ TEST_F(HttpNetworkTransactionTest, HttpsProxySpdyGetWithSessionRace) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // Configure SPDY proxy server "proxy:70".
|
| session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70");
|
| @@ -4660,7 +4750,6 @@ TEST_F(HttpNetworkTransactionTest, HttpsProxySpdyGetWithProxyAuth) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // Configure against https proxy server "myproxy:70".
|
| session_deps_.proxy_service = ProxyService::CreateFixed("https://myproxy:70");
|
| @@ -4753,7 +4842,6 @@ TEST_F(HttpNetworkTransactionTest, HttpsProxySpdyConnectHttps) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // Configure against https proxy server "proxy:70".
|
| session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70");
|
| @@ -4836,7 +4924,6 @@ TEST_F(HttpNetworkTransactionTest, HttpsProxySpdyConnectSpdy) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // Configure against https proxy server "proxy:70".
|
| session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70");
|
| @@ -4923,7 +5010,6 @@ TEST_F(HttpNetworkTransactionTest, HttpsProxySpdyConnectFailure) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // Configure against https proxy server "proxy:70".
|
| session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70");
|
| @@ -5421,7 +5507,6 @@ void HttpNetworkTransactionTest::ConnectStatusHelperWithExpectedStatus(
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // Configure against proxy server "myproxy:70".
|
| session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70");
|
| @@ -5636,7 +5721,6 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthProxyThenServer) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // Configure against proxy server "myproxy:70".
|
| session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70");
|
| @@ -5898,7 +5982,6 @@ TEST_F(HttpNetworkTransactionTest, NTLMAuth2) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://172.22.68.17/kids/login.aspx");
|
| - request.load_flags = 0;
|
|
|
| HttpAuthHandlerNTLM::ScopedProcSetter proc_setter(MockGenerateRandom2,
|
| MockGetHostName);
|
| @@ -6099,7 +6182,6 @@ TEST_F(HttpNetworkTransactionTest, LargeHeadersNoBody) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -6133,7 +6215,6 @@ TEST_F(HttpNetworkTransactionTest, DontRecycleTransportSocketForSSLTunnel) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // Configure against proxy server "myproxy:70".
|
| session_deps_.proxy_service = ProxyService::CreateFixed("myproxy:70");
|
| @@ -6189,7 +6270,6 @@ TEST_F(HttpNetworkTransactionTest, RecycleSocket) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| @@ -6244,7 +6324,6 @@ TEST_F(HttpNetworkTransactionTest, RecycleSSLSocket) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| MockWrite data_writes[] = {
|
| MockWrite(
|
| @@ -6303,7 +6382,6 @@ TEST_F(HttpNetworkTransactionTest, RecycleDeadSSLSocket) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| MockWrite data_writes[] = {
|
| MockWrite(
|
| @@ -6534,7 +6612,6 @@ TEST_F(HttpNetworkTransactionTest, RecycleSocketAfterZeroContentLength) {
|
| "tran=undefined&ei=mAXcSeegAo-SMurloeUN&"
|
| "e=17259,18167,19592,19773,19981,20133,20173,20233&"
|
| "rt=prt.2642,ol.2649,xjs.2951");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| @@ -6951,7 +7028,6 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/x/y/z");
|
| - request.load_flags = 0;
|
|
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
|
|
| @@ -7028,7 +7104,6 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) {
|
| // Note that Transaction 1 was at /x/y/z, so this is in the same
|
| // protection space as MyRealm1.
|
| request.url = GURL("http://www.example.org/x/y/a/b");
|
| - request.load_flags = 0;
|
|
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
|
|
| @@ -7113,7 +7188,6 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/x/y/z2");
|
| - request.load_flags = 0;
|
|
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
|
|
| @@ -7161,7 +7235,6 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/x/1");
|
| - request.load_flags = 0;
|
|
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
|
|
| @@ -7232,7 +7305,6 @@ TEST_F(HttpNetworkTransactionTest, BasicAuthCacheAndPreauth) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/p/q/t");
|
| - request.load_flags = 0;
|
|
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
|
|
| @@ -7346,7 +7418,6 @@ TEST_F(HttpNetworkTransactionTest, DigestPreAuthNonceCount) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/x/y/z");
|
| - request.load_flags = 0;
|
|
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
|
|
| @@ -7426,7 +7497,6 @@ TEST_F(HttpNetworkTransactionTest, DigestPreAuthNonceCount) {
|
| // Note that Transaction 1 was at /x/y/z, so this is in the same
|
| // protection space as digest.
|
| request.url = GURL("http://www.example.org/x/y/a/b");
|
| - request.load_flags = 0;
|
|
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
|
|
| @@ -7513,7 +7583,6 @@ TEST_F(HttpNetworkTransactionTest, HTTPSBadCertificate) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -7571,7 +7640,6 @@ TEST_F(HttpNetworkTransactionTest, HTTPSBadCertificateViaProxy) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| MockWrite proxy_writes[] = {
|
| MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n"
|
| @@ -7652,7 +7720,6 @@ TEST_F(HttpNetworkTransactionTest, HTTPSViaHttpsProxy) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| MockWrite data_writes[] = {
|
| MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n"
|
| @@ -7716,7 +7783,6 @@ TEST_F(HttpNetworkTransactionTest, RedirectOfHttpsConnectViaHttpsProxy) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| MockWrite data_writes[] = {
|
| MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n"
|
| @@ -7788,7 +7854,6 @@ TEST_F(HttpNetworkTransactionTest, RedirectOfHttpsConnectViaSpdyProxy) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| SpdySerializedFrame conn(spdy_util_.ConstructSpdyConnect(
|
| NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443)));
|
| @@ -7844,7 +7909,6 @@ TEST_F(HttpNetworkTransactionTest, ErrorResponseToHttpsConnectViaHttpsProxy) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| MockWrite data_writes[] = {
|
| MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n"
|
| @@ -7887,7 +7951,6 @@ TEST_F(HttpNetworkTransactionTest, ErrorResponseToHttpsConnectViaSpdyProxy) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| SpdySerializedFrame conn(spdy_util_.ConstructSpdyConnect(
|
| NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443)));
|
| @@ -8355,7 +8418,6 @@ TEST_F(HttpNetworkTransactionTest, HTTPSBadCertificateViaHttpsProxy) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // Attempt to fetch the URL from a server with a bad cert
|
| MockWrite bad_cert_writes[] = {
|
| @@ -8509,7 +8571,6 @@ TEST_F(HttpNetworkTransactionTest, BuildRequest_Referer) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
| request.extra_headers.SetHeader(HttpRequestHeaders::kReferer,
|
| "http://the.previous.site.com/");
|
|
|
| @@ -8815,7 +8876,6 @@ TEST_F(HttpNetworkTransactionTest, SOCKS4_HTTP_GET) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| session_deps_.proxy_service =
|
| ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080");
|
| @@ -8874,7 +8934,6 @@ TEST_F(HttpNetworkTransactionTest, SOCKS4_SSL_GET) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| session_deps_.proxy_service =
|
| ProxyService::CreateFixedFromPacResult("SOCKS myproxy:1080");
|
| @@ -8938,7 +8997,6 @@ TEST_F(HttpNetworkTransactionTest, SOCKS4_HTTP_GET_no_PAC) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| session_deps_.proxy_service =
|
| ProxyService::CreateFixed("socks4://myproxy:1080");
|
| @@ -8996,7 +9054,6 @@ TEST_F(HttpNetworkTransactionTest, SOCKS5_HTTP_GET) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| session_deps_.proxy_service =
|
| ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080");
|
| @@ -9068,7 +9125,6 @@ TEST_F(HttpNetworkTransactionTest, SOCKS5_SSL_GET) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| session_deps_.proxy_service =
|
| ProxyService::CreateFixedFromPacResult("SOCKS5 myproxy:1080");
|
| @@ -9173,7 +9229,6 @@ int GroupNameTransactionHelper(const std::string& url,
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL(url);
|
| - request.load_flags = 0;
|
|
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session);
|
|
|
| @@ -9487,7 +9542,6 @@ TEST_F(HttpNetworkTransactionTest, RequestWriteError) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.foo.com/");
|
| - request.load_flags = 0;
|
|
|
| MockWrite write_failure[] = {
|
| MockWrite(ASYNC, ERR_CONNECTION_RESET),
|
| @@ -9517,7 +9571,6 @@ TEST_F(HttpNetworkTransactionTest, ConnectionClosedAfterStartOfHeaders) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.foo.com/");
|
| - request.load_flags = 0;
|
|
|
| MockRead data_reads[] = {
|
| MockRead("HTTP/1."),
|
| @@ -9560,7 +9613,6 @@ TEST_F(HttpNetworkTransactionTest, DrainResetOK) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| MockWrite data_writes1[] = {
|
| MockWrite(
|
| @@ -9640,7 +9692,6 @@ TEST_F(HttpNetworkTransactionTest, HTTPSViaProxyWithExtraData) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| MockRead proxy_reads[] = {
|
| MockRead("HTTP/1.0 200 Connected\r\n\r\nExtra data"),
|
| @@ -9671,7 +9722,6 @@ TEST_F(HttpNetworkTransactionTest, LargeContentLengthThenClose) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -9719,7 +9769,6 @@ TEST_F(HttpNetworkTransactionTest, UploadFileSmallerThanLength) {
|
| request.method = "POST";
|
| request.url = GURL("http://www.example.org/upload");
|
| request.upload_data_stream = &upload_data_stream;
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -9766,7 +9815,6 @@ TEST_F(HttpNetworkTransactionTest, UploadUnreadableFile) {
|
| request.method = "POST";
|
| request.url = GURL("http://www.example.org/upload");
|
| request.upload_data_stream = &upload_data_stream;
|
| - request.load_flags = 0;
|
|
|
| // If we try to upload an unreadable file, the transaction should fail.
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| @@ -9820,7 +9868,6 @@ TEST_F(HttpNetworkTransactionTest, CancelDuringInitRequestBody) {
|
| request.method = "POST";
|
| request.url = GURL("http://www.example.org/upload");
|
| request.upload_data_stream = &upload_data_stream;
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| std::unique_ptr<HttpNetworkTransaction> trans(
|
| @@ -9847,7 +9894,6 @@ TEST_F(HttpNetworkTransactionTest, ChangeAuthRealms) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // First transaction will request a resource and receive a Basic challenge
|
| // with realm="first_realm".
|
| @@ -10009,7 +10055,6 @@ TEST_F(HttpNetworkTransactionTest, HonorAlternativeServiceHeader) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -10223,7 +10268,6 @@ TEST_F(HttpNetworkTransactionTest, ClearAlternativeServices) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| TestCompletionCallback callback;
|
|
|
| @@ -10260,7 +10304,6 @@ TEST_F(HttpNetworkTransactionTest, HonorMultipleAlternativeServiceHeaders) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
|
| session_deps_.socket_factory->AddSocketDataProvider(&data);
|
| @@ -10356,7 +10399,6 @@ TEST_F(HttpNetworkTransactionTest, IdentifyQuicBroken) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL(origin_url);
|
| - request.load_flags = 0;
|
| TestCompletionCallback callback;
|
| NetErrorDetails details;
|
| EXPECT_FALSE(details.quic_broken);
|
| @@ -10430,7 +10472,6 @@ TEST_F(HttpNetworkTransactionTest, IdentifyQuicNotBroken) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL(origin_url);
|
| - request.load_flags = 0;
|
| TestCompletionCallback callback;
|
| NetErrorDetails details;
|
| EXPECT_FALSE(details.quic_broken);
|
| @@ -10444,7 +10485,6 @@ TEST_F(HttpNetworkTransactionTest, MarkBrokenAlternateProtocolAndFallback) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| MockConnect mock_connect(ASYNC, ERR_CONNECTION_REFUSED);
|
| StaticSocketDataProvider first_data;
|
| @@ -10759,7 +10799,6 @@ TEST_F(HttpNetworkTransactionTest, AlternateProtocolUnsafeBlocked) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // The alternate protocol request will error out before we attempt to connect,
|
| // so only the standard HTTP request will try to connect.
|
| @@ -10806,7 +10845,6 @@ TEST_F(HttpNetworkTransactionTest, UseAlternateProtocolForNpnSpdy) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| MockRead data_reads[] = {
|
| MockRead("HTTP/1.1 200 OK\r\n"),
|
| @@ -10887,7 +10925,6 @@ TEST_F(HttpNetworkTransactionTest, AlternateProtocolWithSpdyLateBinding) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // First transaction receives Alt-Svc header over HTTP/1.1.
|
| MockRead data_reads[] = {
|
| @@ -11000,7 +11037,6 @@ TEST_F(HttpNetworkTransactionTest, StallAlternativeServiceForNpnSpdy) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| MockRead data_reads[] = {
|
| MockRead("HTTP/1.1 200 OK\r\n"),
|
| @@ -11215,7 +11251,6 @@ TEST_F(HttpNetworkTransactionTest, UseAlternativeServiceForTunneledNpnSpdy) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| MockRead data_reads[] = {
|
| MockRead("HTTP/1.1 200 OK\r\n"),
|
| @@ -11319,7 +11354,6 @@ TEST_F(HttpNetworkTransactionTest,
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| MockRead data_reads[] = {
|
| MockRead("HTTP/1.1 200 OK\r\n"),
|
| @@ -12147,7 +12181,6 @@ TEST_F(HttpNetworkTransactionTest, GenerateAuthToken) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL(test_config.server_url);
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| @@ -12251,7 +12284,6 @@ TEST_F(HttpNetworkTransactionTest, MultiRoundAuth) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = origin;
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
|
|
| @@ -12414,7 +12446,6 @@ TEST_F(HttpNetworkTransactionTest, NpnWithHttpOverSSL) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| MockWrite data_writes[] = {
|
| MockWrite(
|
| @@ -12470,7 +12501,6 @@ TEST_F(HttpNetworkTransactionTest, SpdyPostNPNServerHangup) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| SSLSocketDataProvider ssl(ASYNC, OK);
|
| ssl.next_proto = kProtoHTTP2;
|
| @@ -12539,7 +12569,6 @@ TEST_F(HttpNetworkTransactionTest, SimpleCancel) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| session_deps_.host_resolver->set_synchronous_mode(true);
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| @@ -12586,7 +12615,6 @@ TEST_F(HttpNetworkTransactionTest, CancelAfterHeaders) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| TestCompletionCallback callback;
|
| @@ -12920,7 +12948,6 @@ TEST_F(HttpNetworkTransactionTest, PreconnectWithExistingSpdySession) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| // This is the important line that marks this as a preconnect.
|
| request.motivation = HttpRequestInfo::PRECONNECT_MOTIVATED;
|
| @@ -13688,7 +13715,6 @@ TEST_F(HttpNetworkTransactionTest, AlternativeServiceNotOnHttp11) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("https://www.example.org:443");
|
| - request.load_flags = 0;
|
| TestCompletionCallback callback;
|
|
|
| // HTTP/2 (or SPDY) is required for alternative service, if HTTP/1.1 is
|
| @@ -14388,7 +14414,6 @@ TEST_F(HttpNetworkTransactionTest, HttpSyncConnectError) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -14424,7 +14449,6 @@ TEST_F(HttpNetworkTransactionTest, HttpAsyncConnectError) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -14460,7 +14484,6 @@ TEST_F(HttpNetworkTransactionTest, HttpSyncWriteError) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -14493,7 +14516,6 @@ TEST_F(HttpNetworkTransactionTest, HttpAsyncWriteError) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -14526,7 +14548,6 @@ TEST_F(HttpNetworkTransactionTest, HttpSyncReadError) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -14562,7 +14583,6 @@ TEST_F(HttpNetworkTransactionTest, HttpAsyncReadError) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -14598,7 +14618,6 @@ TEST_F(HttpNetworkTransactionTest, GetFullRequestHeadersIncludesExtraHeader) {
|
| HttpRequestInfo request;
|
| request.method = "GET";
|
| request.url = GURL("http://www.example.org/");
|
| - request.load_flags = 0;
|
| request.extra_headers.SetHeader("X-Foo", "bar");
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| @@ -15287,7 +15306,6 @@ TEST_F(HttpNetworkTransactionTest, PostReadsErrorResponseAfterReset) {
|
| request.method = "POST";
|
| request.url = GURL("http://www.foo.com/");
|
| request.upload_data_stream = &upload_data_stream;
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -15426,7 +15444,6 @@ TEST_F(HttpNetworkTransactionTest,
|
| request.method = "POST";
|
| request.url = GURL("http://www.foo.com/");
|
| request.upload_data_stream = &upload_data_stream;
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -15478,7 +15495,6 @@ TEST_F(HttpNetworkTransactionTest, ChunkedPostReadsErrorResponseAfterReset) {
|
| request.method = "POST";
|
| request.url = GURL("http://www.foo.com/");
|
| request.upload_data_stream = &upload_data_stream;
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -15537,7 +15553,6 @@ TEST_F(HttpNetworkTransactionTest, PostReadsErrorResponseAfterResetAnd100) {
|
| request.method = "POST";
|
| request.url = GURL("http://www.foo.com/");
|
| request.upload_data_stream = &upload_data_stream;
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -15590,7 +15605,6 @@ TEST_F(HttpNetworkTransactionTest, PostIgnoresNonErrorResponseAfterReset) {
|
| request.method = "POST";
|
| request.url = GURL("http://www.foo.com/");
|
| request.upload_data_stream = &upload_data_stream;
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -15632,7 +15646,6 @@ TEST_F(HttpNetworkTransactionTest,
|
| request.method = "POST";
|
| request.url = GURL("http://www.foo.com/");
|
| request.upload_data_stream = &upload_data_stream;
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -15675,7 +15688,6 @@ TEST_F(HttpNetworkTransactionTest, PostIgnoresHttp09ResponseAfterReset) {
|
| request.method = "POST";
|
| request.url = GURL("http://www.foo.com/");
|
| request.upload_data_stream = &upload_data_stream;
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -15715,7 +15727,6 @@ TEST_F(HttpNetworkTransactionTest, PostIgnoresPartial400HeadersAfterReset) {
|
| request.method = "POST";
|
| request.url = GURL("http://www.foo.com/");
|
| request.upload_data_stream = &upload_data_stream;
|
| - request.load_flags = 0;
|
|
|
| std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
|
| HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get());
|
| @@ -16065,6 +16076,296 @@ TEST_F(HttpNetworkTransactionTest, TotalNetworkBytesChunkedPost) {
|
| trans.GetTotalReceivedBytes());
|
| }
|
|
|
| +// Confirm that transactions whose throttle is created in (and stays in)
|
| +// the unthrottled state are not blocked.
|
| +TEST_F(HttpNetworkTransactionTest, ThrottlingUnthrottled) {
|
| + TestNetworkStreamThrottler* throttler(nullptr);
|
| + std::unique_ptr<HttpNetworkSession> session(
|
| + CreateSessionWithThrottler(&session_deps_, &throttler));
|
| +
|
| + // Send a simple request and make sure it goes through.
|
| + HttpRequestInfo request;
|
| + request.method = "GET";
|
| + request.url = GURL("http://www.example.org/");
|
| +
|
| + std::unique_ptr<HttpTransaction> trans(
|
| + new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
| +
|
| + MockWrite data_writes[] = {
|
| + MockWrite("GET / HTTP/1.1\r\n"
|
| + "Host: www.example.org\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + };
|
| + MockRead data_reads[] = {
|
| + MockRead("HTTP/1.0 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| + StaticSocketDataProvider reads(data_reads, arraysize(data_reads), data_writes,
|
| + arraysize(data_writes));
|
| + session_deps_.socket_factory->AddSocketDataProvider(&reads);
|
| +
|
| + TestCompletionCallback callback;
|
| + trans->Start(&request, callback.callback(), NetLogWithSource());
|
| + EXPECT_EQ(OK, callback.WaitForResult());
|
| +}
|
| +
|
| +// Confirm requests can be blocked by a throttler, and are resumed
|
| +// when the throttle is unblocked.
|
| +TEST_F(HttpNetworkTransactionTest, ThrottlingBasic) {
|
| + TestNetworkStreamThrottler* throttler(nullptr);
|
| + std::unique_ptr<HttpNetworkSession> session(
|
| + CreateSessionWithThrottler(&session_deps_, &throttler));
|
| +
|
| + // Send a simple request and make sure it goes through.
|
| + HttpRequestInfo request;
|
| + request.method = "GET";
|
| + request.url = GURL("http://www.example.org/");
|
| +
|
| + MockWrite data_writes[] = {
|
| + MockWrite("GET / HTTP/1.1\r\n"
|
| + "Host: www.example.org\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + };
|
| + MockRead data_reads[] = {
|
| + MockRead("HTTP/1.0 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| + StaticSocketDataProvider reads(data_reads, arraysize(data_reads), data_writes,
|
| + arraysize(data_writes));
|
| + session_deps_.socket_factory->AddSocketDataProvider(&reads);
|
| +
|
| + // Start a request that will be throttled at start; confirm it
|
| + // doesn't complete.
|
| + throttler->set_throttle_new_requests(true);
|
| + std::unique_ptr<HttpTransaction> trans(
|
| + new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
| +
|
| + TestCompletionCallback callback;
|
| + int rv = trans->Start(&request, callback.callback(), NetLogWithSource());
|
| + EXPECT_EQ(ERR_IO_PENDING, rv);
|
| +
|
| + base::RunLoop().RunUntilIdle();
|
| + EXPECT_EQ(LOAD_STATE_THROTTLED, trans->GetLoadState());
|
| + EXPECT_FALSE(callback.have_result());
|
| +
|
| + // Confirm the request goes on to complete when unthrottled.
|
| + throttler->UnthrottleAllRequests();
|
| + base::RunLoop().RunUntilIdle();
|
| + ASSERT_TRUE(callback.have_result());
|
| + EXPECT_EQ(OK, callback.WaitForResult());
|
| +}
|
| +
|
| +// Destroy a request while it's throttled.
|
| +TEST_F(HttpNetworkTransactionTest, ThrottlingDestruction) {
|
| + TestNetworkStreamThrottler* throttler(nullptr);
|
| + std::unique_ptr<HttpNetworkSession> session(
|
| + CreateSessionWithThrottler(&session_deps_, &throttler));
|
| +
|
| + // Send a simple request and make sure it goes through.
|
| + HttpRequestInfo request;
|
| + request.method = "GET";
|
| + request.url = GURL("http://www.example.org/");
|
| +
|
| + MockWrite data_writes[] = {
|
| + MockWrite("GET / HTTP/1.1\r\n"
|
| + "Host: www.example.org\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + };
|
| + MockRead data_reads[] = {
|
| + MockRead("HTTP/1.0 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| + StaticSocketDataProvider reads(data_reads, arraysize(data_reads), data_writes,
|
| + arraysize(data_writes));
|
| + session_deps_.socket_factory->AddSocketDataProvider(&reads);
|
| +
|
| + // Start a request that will be throttled at start; confirm it
|
| + // doesn't complete.
|
| + throttler->set_throttle_new_requests(true);
|
| + std::unique_ptr<HttpTransaction> trans(
|
| + new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
| +
|
| + TestCompletionCallback callback;
|
| + int rv = trans->Start(&request, callback.callback(), NetLogWithSource());
|
| + EXPECT_EQ(ERR_IO_PENDING, rv);
|
| +
|
| + base::RunLoop().RunUntilIdle();
|
| + EXPECT_EQ(LOAD_STATE_THROTTLED, trans->GetLoadState());
|
| + EXPECT_FALSE(callback.have_result());
|
| +
|
| + EXPECT_EQ(1u, throttler->num_outstanding_requests());
|
| + trans.reset();
|
| + EXPECT_EQ(0u, throttler->num_outstanding_requests());
|
| +}
|
| +
|
| +// Confirm the throttler receives SetPriority calls.
|
| +TEST_F(HttpNetworkTransactionTest, ThrottlingPrioritySet) {
|
| + TestNetworkStreamThrottler* throttler(nullptr);
|
| + std::unique_ptr<HttpNetworkSession> session(
|
| + CreateSessionWithThrottler(&session_deps_, &throttler));
|
| +
|
| + // Send a simple request and make sure it goes through.
|
| + HttpRequestInfo request;
|
| + request.method = "GET";
|
| + request.url = GURL("http://www.example.org/");
|
| +
|
| + MockWrite data_writes[] = {
|
| + MockWrite("GET / HTTP/1.1\r\n"
|
| + "Host: www.example.org\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + };
|
| + MockRead data_reads[] = {
|
| + MockRead("HTTP/1.0 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| + StaticSocketDataProvider reads(data_reads, arraysize(data_reads), data_writes,
|
| + arraysize(data_writes));
|
| + session_deps_.socket_factory->AddSocketDataProvider(&reads);
|
| +
|
| + throttler->set_throttle_new_requests(true);
|
| + std::unique_ptr<HttpTransaction> trans(
|
| + new HttpNetworkTransaction(IDLE, session.get()));
|
| + // Start the transaction to associate a throttle with it.
|
| + TestCompletionCallback callback;
|
| + int rv = trans->Start(&request, callback.callback(), NetLogWithSource());
|
| + EXPECT_EQ(ERR_IO_PENDING, rv);
|
| +
|
| + EXPECT_EQ(0, throttler->num_set_priority_calls());
|
| + trans->SetPriority(LOW);
|
| + EXPECT_EQ(1, throttler->num_set_priority_calls());
|
| + EXPECT_EQ(LOW, throttler->last_priority_set());
|
| +
|
| + throttler->UnthrottleAllRequests();
|
| + base::RunLoop().RunUntilIdle();
|
| + ASSERT_TRUE(callback.have_result());
|
| + EXPECT_EQ(OK, callback.WaitForResult());
|
| +}
|
| +
|
| +// Confirm that unthrottling from a SetPriority call by the
|
| +// throttler works properly.
|
| +TEST_F(HttpNetworkTransactionTest, ThrottlingPrioritySetUnthrottle) {
|
| + TestNetworkStreamThrottler* throttler(nullptr);
|
| + std::unique_ptr<HttpNetworkSession> session(
|
| + CreateSessionWithThrottler(&session_deps_, &throttler));
|
| +
|
| + // Send a simple request and make sure it goes through.
|
| + HttpRequestInfo request;
|
| + request.method = "GET";
|
| + request.url = GURL("http://www.example.org/");
|
| +
|
| + MockWrite data_writes[] = {
|
| + MockWrite("GET / HTTP/1.1\r\n"
|
| + "Host: www.example.org\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + };
|
| + MockRead data_reads[] = {
|
| + MockRead("HTTP/1.0 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| + StaticSocketDataProvider reads(data_reads, arraysize(data_reads), data_writes,
|
| + arraysize(data_writes));
|
| + session_deps_.socket_factory->AddSocketDataProvider(&reads);
|
| +
|
| + StaticSocketDataProvider reads1(data_reads, arraysize(data_reads),
|
| + data_writes, arraysize(data_writes));
|
| + session_deps_.socket_factory->AddSocketDataProvider(&reads1);
|
| +
|
| + // Start a request that will be throttled at start; confirm it
|
| + // doesn't complete.
|
| + throttler->set_throttle_new_requests(true);
|
| + std::unique_ptr<HttpTransaction> trans(
|
| + new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
| +
|
| + TestCompletionCallback callback;
|
| + int rv = trans->Start(&request, callback.callback(), NetLogWithSource());
|
| + EXPECT_EQ(ERR_IO_PENDING, rv);
|
| +
|
| + base::RunLoop().RunUntilIdle();
|
| + EXPECT_EQ(LOAD_STATE_THROTTLED, trans->GetLoadState());
|
| + EXPECT_FALSE(callback.have_result());
|
| +
|
| + // Create a new request, call SetPriority on it to unthrottle,
|
| + // and make sure that allows the original request to complete.
|
| + std::unique_ptr<HttpTransaction> trans1(
|
| + new HttpNetworkTransaction(LOW, session.get()));
|
| + throttler->set_priority_change_closure(
|
| + base::Bind(&TestNetworkStreamThrottler::UnthrottleAllRequests,
|
| + base::Unretained(throttler)));
|
| +
|
| + // Start the transaction to associate a throttle with it.
|
| + TestCompletionCallback callback1;
|
| + rv = trans1->Start(&request, callback1.callback(), NetLogWithSource());
|
| + EXPECT_EQ(ERR_IO_PENDING, rv);
|
| +
|
| + trans1->SetPriority(IDLE);
|
| +
|
| + base::RunLoop().RunUntilIdle();
|
| + ASSERT_TRUE(callback.have_result());
|
| + EXPECT_EQ(OK, callback.WaitForResult());
|
| + ASSERT_TRUE(callback1.have_result());
|
| + EXPECT_EQ(OK, callback1.WaitForResult());
|
| +}
|
| +
|
| +// Transaction will be destroyed when the unique_ptr goes out of scope.
|
| +void DestroyTransaction(std::unique_ptr<HttpTransaction> transaction) {}
|
| +
|
| +// Confirm that destroying a transaction from a SetPriority call by the
|
| +// throttler works properly.
|
| +TEST_F(HttpNetworkTransactionTest, ThrottlingPrioritySetDestroy) {
|
| + TestNetworkStreamThrottler* throttler(nullptr);
|
| + std::unique_ptr<HttpNetworkSession> session(
|
| + CreateSessionWithThrottler(&session_deps_, &throttler));
|
| +
|
| + // Send a simple request and make sure it goes through.
|
| + HttpRequestInfo request;
|
| + request.method = "GET";
|
| + request.url = GURL("http://www.example.org/");
|
| +
|
| + MockWrite data_writes[] = {
|
| + MockWrite("GET / HTTP/1.1\r\n"
|
| + "Host: www.example.org\r\n"
|
| + "Connection: keep-alive\r\n\r\n"),
|
| + };
|
| + MockRead data_reads[] = {
|
| + MockRead("HTTP/1.0 200 OK\r\n\r\n"), MockRead("hello world"),
|
| + MockRead(SYNCHRONOUS, OK),
|
| + };
|
| + StaticSocketDataProvider reads(data_reads, arraysize(data_reads), data_writes,
|
| + arraysize(data_writes));
|
| + session_deps_.socket_factory->AddSocketDataProvider(&reads);
|
| +
|
| + StaticSocketDataProvider reads1(data_reads, arraysize(data_reads),
|
| + data_writes, arraysize(data_writes));
|
| + session_deps_.socket_factory->AddSocketDataProvider(&reads1);
|
| +
|
| + // Start a request that will be throttled at start; confirm it
|
| + // doesn't complete.
|
| + throttler->set_throttle_new_requests(true);
|
| + std::unique_ptr<HttpTransaction> trans(
|
| + new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get()));
|
| +
|
| + TestCompletionCallback callback;
|
| + int rv = trans->Start(&request, callback.callback(), NetLogWithSource());
|
| + EXPECT_EQ(ERR_IO_PENDING, rv);
|
| +
|
| + base::RunLoop().RunUntilIdle();
|
| + EXPECT_EQ(LOAD_STATE_THROTTLED, trans->GetLoadState());
|
| + EXPECT_FALSE(callback.have_result());
|
| +
|
| + // Arrange for the set priority call on the above transaction to delete
|
| + // the transaction.
|
| + HttpTransaction* trans_ptr(trans.get());
|
| + throttler->set_priority_change_closure(
|
| + base::Bind(&DestroyTransaction, base::Passed(&trans)));
|
| +
|
| + // Call it and check results (partially a "doesn't crash" test).
|
| + trans_ptr->SetPriority(IDLE);
|
| + trans_ptr = nullptr; // No longer a valid pointer.
|
| +
|
| + base::RunLoop().RunUntilIdle();
|
| + ASSERT_FALSE(callback.have_result());
|
| +}
|
| +
|
| #if !defined(OS_IOS)
|
| TEST_F(HttpNetworkTransactionTest, TokenBindingSpdy) {
|
| const std::string https_url = "https://www.example.com";
|
|
|