summaryrefslogtreecommitdiff
path: root/chromium/net/http
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/http')
-rw-r--r--chromium/net/http/http_basic_stream.cc4
-rw-r--r--chromium/net/http/http_basic_stream.h2
-rw-r--r--chromium/net/http/http_cache_transaction.cc14
-rw-r--r--chromium/net/http/http_cache_unittest.cc76
-rw-r--r--chromium/net/http/http_network_transaction.cc6
-rw-r--r--chromium/net/http/http_network_transaction_unittest.cc300
-rw-r--r--chromium/net/http/http_pipelined_host_forced.cc7
-rw-r--r--chromium/net/http/http_pipelined_stream.cc5
-rw-r--r--chromium/net/http/http_pipelined_stream.h2
-rw-r--r--chromium/net/http/http_proxy_client_socket_pool.cc25
-rw-r--r--chromium/net/http/http_proxy_client_socket_pool.h4
-rw-r--r--chromium/net/http/http_response_body_drainer_unittest.cc2
-rw-r--r--chromium/net/http/http_stream_base.h3
-rw-r--r--chromium/net/http/http_stream_factory.h3
-rw-r--r--chromium/net/http/http_stream_factory_impl.h7
-rw-r--r--chromium/net/http/http_stream_factory_impl_job.cc9
-rw-r--r--chromium/net/http/http_stream_factory_impl_job.h3
-rw-r--r--chromium/net/http/http_stream_factory_impl_request.cc9
-rw-r--r--chromium/net/http/http_stream_factory_impl_request.h1
-rw-r--r--chromium/net/http/http_stream_factory_impl_request_unittest.cc98
-rw-r--r--chromium/net/http/http_stream_factory_impl_unittest.cc2
-rw-r--r--chromium/net/http/http_stream_parser_unittest.cc4
-rw-r--r--chromium/net/http/mock_http_cache.cc22
-rw-r--r--chromium/net/http/mock_http_cache.h8
-rw-r--r--chromium/net/http/proxy_connect_redirect_http_stream.cc4
-rw-r--r--chromium/net/http/proxy_connect_redirect_http_stream.h4
26 files changed, 140 insertions, 484 deletions
diff --git a/chromium/net/http/http_basic_stream.cc b/chromium/net/http/http_basic_stream.cc
index c30e17d6203..d70ac02be74 100644
--- a/chromium/net/http/http_basic_stream.cc
+++ b/chromium/net/http/http_basic_stream.cc
@@ -127,8 +127,4 @@ void HttpBasicStream::Drain(HttpNetworkSession* session) {
// |drainer| will delete itself.
}
-void HttpBasicStream::SetPriority(RequestPriority priority) {
- // TODO(akalin): Plumb this through to |connection_|.
-}
-
} // namespace net
diff --git a/chromium/net/http/http_basic_stream.h b/chromium/net/http/http_basic_stream.h
index 2057837e9a9..2d4bb65ad32 100644
--- a/chromium/net/http/http_basic_stream.h
+++ b/chromium/net/http/http_basic_stream.h
@@ -81,8 +81,6 @@ class HttpBasicStream : public HttpStream {
virtual void Drain(HttpNetworkSession* session) OVERRIDE;
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
-
private:
scoped_refptr<GrowableIOBuffer> read_buf_;
diff --git a/chromium/net/http/http_cache_transaction.cc b/chromium/net/http/http_cache_transaction.cc
index 8d4a45573b8..d1307012208 100644
--- a/chromium/net/http/http_cache_transaction.cc
+++ b/chromium/net/http/http_cache_transaction.cc
@@ -1538,6 +1538,20 @@ int HttpCache::Transaction::DoCacheQueryData() {
}
int HttpCache::Transaction::DoCacheQueryDataComplete(int result) {
+#if defined(OS_ANDROID)
+ if (result == ERR_NOT_IMPLEMENTED) {
+ // Restart the request overwriting the cache entry.
+ //
+ // Note: this would have fixed range requests for debug builds on all OSes,
+ // not just Android, but karen@ prefers to limit the effect based on OS for
+ // cherry-picked fixes.
+ // TODO(pasko): remove the OS_ANDROID limitation as soon as the fix proves
+ // useful after the cherry-pick.
+ // TODO(pasko): remove this workaround as soon as the SimpleBackendImpl
+ // supports Sparse IO.
+ return DoRestartPartialRequest();
+ }
+#endif
DCHECK_EQ(OK, result);
if (!cache_.get())
return ERR_UNEXPECTED;
diff --git a/chromium/net/http/http_cache_unittest.cc b/chromium/net/http/http_cache_unittest.cc
index 37e53346f42..c2bfde7bce2 100644
--- a/chromium/net/http/http_cache_unittest.cc
+++ b/chromium/net/http/http_cache_unittest.cc
@@ -3394,6 +3394,82 @@ TEST(HttpCache, RangeGET_OK) {
RemoveMockTransaction(&kRangeGET_TransactionOK);
}
+#if defined(OS_ANDROID)
+
+// Checks that with a cache backend having Sparse IO unimplementes the cache
+// entry would be doomed after a range request.
+// TODO(pasko): remove when the SimpleBackendImpl implements Sparse IO.
+TEST(HttpCache, RangeGET_SparseNotImplemented) {
+ MockHttpCache cache;
+ cache.disk_cache()->set_fail_sparse_requests();
+
+ // Run a cacheable request to prime the cache.
+ MockTransaction transaction(kTypicalGET_Transaction);
+ transaction.url = kRangeGET_TransactionOK.url;
+ AddMockTransaction(&transaction);
+ RunTransactionTest(cache.http_cache(), transaction);
+ EXPECT_EQ(1, cache.network_layer()->transaction_count());
+ EXPECT_EQ(0, cache.disk_cache()->open_count());
+ EXPECT_EQ(1, cache.disk_cache()->create_count());
+
+ // Verify that we added the entry.
+ disk_cache::Entry* entry;
+ net::TestCompletionCallback cb;
+ int rv = cache.disk_cache()->OpenEntry(transaction.url,
+ &entry,
+ cb.callback());
+ ASSERT_EQ(net::OK, cb.GetResult(rv));
+ EXPECT_EQ(1, cache.disk_cache()->open_count());
+ entry->Close();
+ RemoveMockTransaction(&transaction);
+
+ // Request the range with the backend that does not support it.
+ MockTransaction transaction2(kRangeGET_TransactionOK);
+ std::string headers;
+ AddMockTransaction(&transaction2);
+ RunTransactionTestWithResponse(cache.http_cache(), transaction2, &headers);
+ EXPECT_EQ(2, cache.network_layer()->transaction_count());
+ EXPECT_EQ(2, cache.disk_cache()->open_count());
+ EXPECT_EQ(2, cache.disk_cache()->create_count());
+
+ // Mock cache would return net::ERR_CACHE_OPEN_FAILURE on a doomed entry, even
+ // if it was re-created later, so this effectively checks that the old data is
+ // gone.
+ disk_cache::Entry* entry2;
+ rv = cache.disk_cache()->OpenEntry(transaction2.url,
+ &entry2,
+ cb.callback());
+ ASSERT_EQ(net::ERR_CACHE_OPEN_FAILURE, cb.GetResult(rv));
+ RemoveMockTransaction(&transaction2);
+}
+
+TEST(HttpCache, RangeGET_SparseNotImplementedOnEmptyCache) {
+ MockHttpCache cache;
+ cache.disk_cache()->set_fail_sparse_requests();
+
+ // Request the range with the backend that does not support it.
+ MockTransaction transaction(kRangeGET_TransactionOK);
+ std::string headers;
+ AddMockTransaction(&transaction);
+ RunTransactionTestWithResponse(cache.http_cache(), transaction, &headers);
+ EXPECT_EQ(1, cache.network_layer()->transaction_count());
+ EXPECT_EQ(0, cache.disk_cache()->open_count());
+ EXPECT_EQ(1, cache.disk_cache()->create_count());
+
+ // Mock cache would return net::ERR_CACHE_OPEN_FAILURE on a doomed entry, even
+ // if it was re-created later, so this effectively checks that the old data is
+ // gone as a result of a failed range write.
+ disk_cache::Entry* entry;
+ net::TestCompletionCallback cb;
+ int rv = cache.disk_cache()->OpenEntry(transaction.url,
+ &entry,
+ cb.callback());
+ ASSERT_EQ(net::ERR_CACHE_OPEN_FAILURE, cb.GetResult(rv));
+ RemoveMockTransaction(&transaction);
+}
+
+#endif // OS_ANDROID
+
// Tests that we can cache range requests and fetch random blocks from the
// cache and the network, with synchronous responses.
TEST(HttpCache, RangeGET_SyncOK) {
diff --git a/chromium/net/http/http_network_transaction.cc b/chromium/net/http/http_network_transaction.cc
index a63a2aa43b9..70292be257f 100644
--- a/chromium/net/http/http_network_transaction.cc
+++ b/chromium/net/http/http_network_transaction.cc
@@ -419,10 +419,8 @@ bool HttpNetworkTransaction::GetLoadTimingInfo(
void HttpNetworkTransaction::SetPriority(RequestPriority priority) {
priority_ = priority;
- if (stream_request_)
- stream_request_->SetPriority(priority);
- if (stream_)
- stream_->SetPriority(priority);
+ // TODO(akalin): Plumb this through to |stream_request_| and
+ // |stream_|.
}
void HttpNetworkTransaction::OnStreamReady(const SSLConfig& used_ssl_config,
diff --git a/chromium/net/http/http_network_transaction_unittest.cc b/chromium/net/http/http_network_transaction_unittest.cc
index d89ab546afd..5f8dac2f87d 100644
--- a/chromium/net/http/http_network_transaction_unittest.cc
+++ b/chromium/net/http/http_network_transaction_unittest.cc
@@ -15,7 +15,6 @@
#include "base/files/file_path.h"
#include "base/json/json_writer.h"
#include "base/memory/scoped_ptr.h"
-#include "base/memory/weak_ptr.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
#include "base/test/test_file_util.h"
@@ -46,7 +45,6 @@
#include "net/http/http_stream_factory.h"
#include "net/http/http_transaction_unittest.h"
#include "net/proxy/proxy_config_service_fixed.h"
-#include "net/proxy/proxy_info.h"
#include "net/proxy/proxy_resolver.h"
#include "net/proxy/proxy_service.h"
#include "net/socket/client_socket_factory.h"
@@ -60,7 +58,6 @@
#include "net/spdy/spdy_session_pool.h"
#include "net/spdy/spdy_test_util_common.h"
#include "net/ssl/ssl_cert_request_info.h"
-#include "net/ssl/ssl_config_service.h"
#include "net/ssl/ssl_config_service_defaults.h"
#include "net/ssl/ssl_info.h"
#include "net/test/cert_test_util.h"
@@ -452,7 +449,7 @@ class CaptureGroupNameSocketPool : public ParentPool {
virtual void CancelRequest(const std::string& group_name,
ClientSocketHandle* handle) {}
virtual void ReleaseSocket(const std::string& group_name,
- scoped_ptr<StreamSocket> socket,
+ StreamSocket* socket,
int id) {}
virtual void CloseIdleSockets() {}
virtual int IdleSocketCount() const {
@@ -11683,299 +11680,4 @@ TEST_P(HttpNetworkTransactionTest, GetFullRequestHeadersIncludesExtraHeader) {
EXPECT_EQ("bar", foo);
}
-namespace {
-
-// Fake HttpStreamBase that simply records calls to SetPriority().
-class FakeStream : public HttpStreamBase,
- public base::SupportsWeakPtr<FakeStream> {
- public:
- explicit FakeStream(RequestPriority priority) : priority_(priority) {}
- virtual ~FakeStream() {}
-
- RequestPriority priority() const { return priority_; }
-
- virtual int InitializeStream(const HttpRequestInfo* request_info,
- RequestPriority priority,
- const BoundNetLog& net_log,
- const CompletionCallback& callback) OVERRIDE {
- return ERR_IO_PENDING;
- }
-
- virtual int SendRequest(const HttpRequestHeaders& request_headers,
- HttpResponseInfo* response,
- const CompletionCallback& callback) OVERRIDE {
- ADD_FAILURE();
- return ERR_UNEXPECTED;
- }
-
- virtual int ReadResponseHeaders(const CompletionCallback& callback) OVERRIDE {
- ADD_FAILURE();
- return ERR_UNEXPECTED;
- }
-
- virtual const HttpResponseInfo* GetResponseInfo() const OVERRIDE {
- ADD_FAILURE();
- return NULL;
- }
-
- virtual int ReadResponseBody(IOBuffer* buf, int buf_len,
- const CompletionCallback& callback) OVERRIDE {
- ADD_FAILURE();
- return ERR_UNEXPECTED;
- }
-
- virtual void Close(bool not_reusable) OVERRIDE {}
-
- virtual bool IsResponseBodyComplete() const OVERRIDE {
- ADD_FAILURE();
- return false;
- }
-
- virtual bool CanFindEndOfResponse() const OVERRIDE {
- return false;
- }
-
- virtual bool IsConnectionReused() const OVERRIDE {
- ADD_FAILURE();
- return false;
- }
-
- virtual void SetConnectionReused() OVERRIDE {
- ADD_FAILURE();
- }
-
- virtual bool IsConnectionReusable() const OVERRIDE {
- ADD_FAILURE();
- return false;
- }
-
- virtual bool GetLoadTimingInfo(
- LoadTimingInfo* load_timing_info) const OVERRIDE {
- ADD_FAILURE();
- return false;
- }
-
- virtual void GetSSLInfo(SSLInfo* ssl_info) OVERRIDE {
- ADD_FAILURE();
- }
-
- virtual void GetSSLCertRequestInfo(
- SSLCertRequestInfo* cert_request_info) OVERRIDE {
- ADD_FAILURE();
- }
-
- virtual bool IsSpdyHttpStream() const OVERRIDE {
- ADD_FAILURE();
- return false;
- }
-
- virtual void Drain(HttpNetworkSession* session) OVERRIDE {
- ADD_FAILURE();
- }
-
- virtual void SetPriority(RequestPriority priority) OVERRIDE {
- priority_ = priority;
- }
-
- private:
- RequestPriority priority_;
-
- DISALLOW_COPY_AND_ASSIGN(FakeStream);
-};
-
-// Fake HttpStreamRequest that simply records calls to SetPriority()
-// and vends FakeStreams with its current priority.
-class FakeStreamRequest : public HttpStreamRequest,
- public base::SupportsWeakPtr<FakeStreamRequest> {
- public:
- FakeStreamRequest(RequestPriority priority,
- HttpStreamRequest::Delegate* delegate)
- : priority_(priority),
- delegate_(delegate) {}
-
- virtual ~FakeStreamRequest() {}
-
- RequestPriority priority() const { return priority_; }
-
- // Create a new FakeStream and pass it to the request's
- // delegate. Returns a weak pointer to the FakeStream.
- base::WeakPtr<FakeStream> FinishStreamRequest() {
- FakeStream* fake_stream = new FakeStream(priority_);
- // Do this before calling OnStreamReady() as OnStreamReady() may
- // immediately delete |fake_stream|.
- base::WeakPtr<FakeStream> weak_stream = fake_stream->AsWeakPtr();
- delegate_->OnStreamReady(SSLConfig(), ProxyInfo(), fake_stream);
- return weak_stream;
- }
-
- virtual int RestartTunnelWithProxyAuth(
- const AuthCredentials& credentials) OVERRIDE {
- ADD_FAILURE();
- return ERR_UNEXPECTED;
- }
-
- virtual LoadState GetLoadState() const OVERRIDE {
- ADD_FAILURE();
- return LoadState();
- }
-
- virtual void SetPriority(RequestPriority priority) OVERRIDE {
- priority_ = priority;
- }
-
- virtual bool was_npn_negotiated() const OVERRIDE {
- return false;
- }
-
- virtual NextProto protocol_negotiated() const OVERRIDE {
- return kProtoUnknown;
- }
-
- virtual bool using_spdy() const OVERRIDE {
- return false;
- }
-
- private:
- RequestPriority priority_;
- HttpStreamRequest::Delegate* const delegate_;
-
- DISALLOW_COPY_AND_ASSIGN(FakeStreamRequest);
-};
-
-// Fake HttpStreamFactory that vends FakeStreamRequests.
-class FakeStreamFactory : public HttpStreamFactory {
- public:
- FakeStreamFactory() {}
- virtual ~FakeStreamFactory() {}
-
- // Returns a WeakPtr<> to the last HttpStreamRequest returned by
- // RequestStream() (which may be NULL if it was destroyed already).
- base::WeakPtr<FakeStreamRequest> last_stream_request() {
- return last_stream_request_;
- }
-
- virtual HttpStreamRequest* RequestStream(
- const HttpRequestInfo& info,
- RequestPriority priority,
- const SSLConfig& server_ssl_config,
- const SSLConfig& proxy_ssl_config,
- HttpStreamRequest::Delegate* delegate,
- const BoundNetLog& net_log) OVERRIDE {
- FakeStreamRequest* fake_request = new FakeStreamRequest(priority, delegate);
- last_stream_request_ = fake_request->AsWeakPtr();
- return fake_request;
- }
-
- virtual HttpStreamRequest* RequestWebSocketStream(
- const HttpRequestInfo& info,
- RequestPriority priority,
- const SSLConfig& server_ssl_config,
- const SSLConfig& proxy_ssl_config,
- HttpStreamRequest::Delegate* delegate,
- WebSocketStreamBase::Factory* factory,
- const BoundNetLog& net_log) OVERRIDE {
- ADD_FAILURE();
- return NULL;
- }
-
- virtual void PreconnectStreams(int num_streams,
- const HttpRequestInfo& info,
- RequestPriority priority,
- const SSLConfig& server_ssl_config,
- const SSLConfig& proxy_ssl_config) OVERRIDE {
- ADD_FAILURE();
- }
-
- virtual base::Value* PipelineInfoToValue() const OVERRIDE {
- ADD_FAILURE();
- return NULL;
- }
-
- virtual const HostMappingRules* GetHostMappingRules() const OVERRIDE {
- ADD_FAILURE();
- return NULL;
- }
-
- private:
- base::WeakPtr<FakeStreamRequest> last_stream_request_;
-
- DISALLOW_COPY_AND_ASSIGN(FakeStreamFactory);
-};
-
-} // namespace
-
-// Make sure that HttpNetworkTransaction passes on its priority to its
-// stream request on start.
-TEST_P(HttpNetworkTransactionTest, SetStreamRequestPriorityOnStart) {
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
- HttpNetworkSessionPeer peer(session);
- FakeStreamFactory* fake_factory = new FakeStreamFactory();
- peer.SetHttpStreamFactory(fake_factory);
-
- HttpNetworkTransaction trans(LOW, session);
-
- ASSERT_TRUE(fake_factory->last_stream_request() == NULL);
-
- HttpRequestInfo request;
- TestCompletionCallback callback;
- EXPECT_EQ(ERR_IO_PENDING,
- trans.Start(&request, callback.callback(), BoundNetLog()));
-
- base::WeakPtr<FakeStreamRequest> fake_request =
- fake_factory->last_stream_request();
- ASSERT_TRUE(fake_request != NULL);
- EXPECT_EQ(LOW, fake_request->priority());
-}
-
-// Make sure that HttpNetworkTransaction passes on its priority
-// updates to its stream request.
-TEST_P(HttpNetworkTransactionTest, SetStreamRequestPriority) {
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
- HttpNetworkSessionPeer peer(session);
- FakeStreamFactory* fake_factory = new FakeStreamFactory();
- peer.SetHttpStreamFactory(fake_factory);
-
- HttpNetworkTransaction trans(LOW, session);
-
- HttpRequestInfo request;
- TestCompletionCallback callback;
- EXPECT_EQ(ERR_IO_PENDING,
- trans.Start(&request, callback.callback(), BoundNetLog()));
-
- base::WeakPtr<FakeStreamRequest> fake_request =
- fake_factory->last_stream_request();
- ASSERT_TRUE(fake_request != NULL);
- EXPECT_EQ(LOW, fake_request->priority());
-
- trans.SetPriority(LOWEST);
- ASSERT_TRUE(fake_request != NULL);
- EXPECT_EQ(LOWEST, fake_request->priority());
-}
-
-// Make sure that HttpNetworkTransaction passes on its priority
-// updates to its stream.
-TEST_P(HttpNetworkTransactionTest, SetStreamPriority) {
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_));
- HttpNetworkSessionPeer peer(session);
- FakeStreamFactory* fake_factory = new FakeStreamFactory();
- peer.SetHttpStreamFactory(fake_factory);
-
- HttpNetworkTransaction trans(LOW, session);
-
- HttpRequestInfo request;
- TestCompletionCallback callback;
- EXPECT_EQ(ERR_IO_PENDING,
- trans.Start(&request, callback.callback(), BoundNetLog()));
-
- base::WeakPtr<FakeStreamRequest> fake_request =
- fake_factory->last_stream_request();
- ASSERT_TRUE(fake_request != NULL);
- base::WeakPtr<FakeStream> fake_stream = fake_request->FinishStreamRequest();
- ASSERT_TRUE(fake_stream != NULL);
- EXPECT_EQ(LOW, fake_stream->priority());
-
- trans.SetPriority(LOWEST);
- EXPECT_EQ(LOWEST, fake_stream->priority());
-}
-
} // namespace net
diff --git a/chromium/net/http/http_pipelined_host_forced.cc b/chromium/net/http/http_pipelined_host_forced.cc
index 8059d848d73..8179e86f319 100644
--- a/chromium/net/http/http_pipelined_host_forced.cc
+++ b/chromium/net/http/http_pipelined_host_forced.cc
@@ -36,9 +36,10 @@ HttpPipelinedStream* HttpPipelinedHostForced::CreateStreamOnNewPipeline(
bool was_npn_negotiated,
NextProto protocol_negotiated) {
CHECK(!pipeline_.get());
- scoped_ptr<BufferedWriteStreamSocket> buffered_socket(
- new BufferedWriteStreamSocket(connection->PassSocket()));
- connection->SetSocket(buffered_socket.PassAs<StreamSocket>());
+ StreamSocket* wrapped_socket = connection->release_socket();
+ BufferedWriteStreamSocket* buffered_socket = new BufferedWriteStreamSocket(
+ wrapped_socket);
+ connection->set_socket(buffered_socket);
pipeline_.reset(factory_->CreateNewPipeline(
connection, this, key_.origin(), used_ssl_config, used_proxy_info,
net_log, was_npn_negotiated, protocol_negotiated));
diff --git a/chromium/net/http/http_pipelined_stream.cc b/chromium/net/http/http_pipelined_stream.cc
index df5743556d1..951c2f9afd6 100644
--- a/chromium/net/http/http_pipelined_stream.cc
+++ b/chromium/net/http/http_pipelined_stream.cc
@@ -121,11 +121,6 @@ void HttpPipelinedStream::Drain(HttpNetworkSession* session) {
pipeline_->Drain(this, session);
}
-void HttpPipelinedStream::SetPriority(RequestPriority priority) {
- // TODO(akalin): Plumb this through to |pipeline_| and its
- // underlying ClientSocketHandle.
-}
-
const SSLConfig& HttpPipelinedStream::used_ssl_config() const {
return pipeline_->used_ssl_config();
}
diff --git a/chromium/net/http/http_pipelined_stream.h b/chromium/net/http/http_pipelined_stream.h
index d3a7991e5ca..675d8f083a2 100644
--- a/chromium/net/http/http_pipelined_stream.h
+++ b/chromium/net/http/http_pipelined_stream.h
@@ -81,8 +81,6 @@ class HttpPipelinedStream : public HttpStream {
virtual void Drain(HttpNetworkSession* session) OVERRIDE;
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
-
// The SSLConfig used to establish this stream's pipeline.
const SSLConfig& used_ssl_config() const;
diff --git a/chromium/net/http/http_proxy_client_socket_pool.cc b/chromium/net/http/http_proxy_client_socket_pool.cc
index c75df6f0d2f..b80df37b3dd 100644
--- a/chromium/net/http/http_proxy_client_socket_pool.cc
+++ b/chromium/net/http/http_proxy_client_socket_pool.cc
@@ -289,7 +289,7 @@ int HttpProxyConnectJob::DoHttpProxyConnect() {
int HttpProxyConnectJob::DoHttpProxyConnectComplete(int result) {
if (result == OK || result == ERR_PROXY_AUTH_REQUESTED ||
result == ERR_HTTPS_PROXY_TUNNEL_RESPONSE) {
- SetSocket(transport_socket_.PassAs<StreamSocket>());
+ set_socket(transport_socket_.release());
}
return result;
@@ -380,19 +380,19 @@ HttpProxyConnectJobFactory::HttpProxyConnectJobFactory(
}
-scoped_ptr<ConnectJob>
+ConnectJob*
HttpProxyClientSocketPool::HttpProxyConnectJobFactory::NewConnectJob(
const std::string& group_name,
const PoolBase::Request& request,
ConnectJob::Delegate* delegate) const {
- return scoped_ptr<ConnectJob>(new HttpProxyConnectJob(group_name,
- request.params(),
- ConnectionTimeout(),
- transport_pool_,
- ssl_pool_,
- host_resolver_,
- delegate,
- net_log_));
+ return new HttpProxyConnectJob(group_name,
+ request.params(),
+ ConnectionTimeout(),
+ transport_pool_,
+ ssl_pool_,
+ host_resolver_,
+ delegate,
+ net_log_);
}
base::TimeDelta
@@ -462,9 +462,8 @@ void HttpProxyClientSocketPool::CancelRequest(
}
void HttpProxyClientSocketPool::ReleaseSocket(const std::string& group_name,
- scoped_ptr<StreamSocket> socket,
- int id) {
- base_.ReleaseSocket(group_name, socket.Pass(), id);
+ StreamSocket* socket, int id) {
+ base_.ReleaseSocket(group_name, socket, id);
}
void HttpProxyClientSocketPool::FlushWithError(int error) {
diff --git a/chromium/net/http/http_proxy_client_socket_pool.h b/chromium/net/http/http_proxy_client_socket_pool.h
index b77b5ae3571..a15b8cad809 100644
--- a/chromium/net/http/http_proxy_client_socket_pool.h
+++ b/chromium/net/http/http_proxy_client_socket_pool.h
@@ -204,7 +204,7 @@ class NET_EXPORT_PRIVATE HttpProxyClientSocketPool
ClientSocketHandle* handle) OVERRIDE;
virtual void ReleaseSocket(const std::string& group_name,
- scoped_ptr<StreamSocket> socket,
+ StreamSocket* socket,
int id) OVERRIDE;
virtual void FlushWithError(int error) OVERRIDE;
@@ -250,7 +250,7 @@ class NET_EXPORT_PRIVATE HttpProxyClientSocketPool
NetLog* net_log);
// ClientSocketPoolBase::ConnectJobFactory methods.
- virtual scoped_ptr<ConnectJob> NewConnectJob(
+ virtual ConnectJob* NewConnectJob(
const std::string& group_name,
const PoolBase::Request& request,
ConnectJob::Delegate* delegate) const OVERRIDE;
diff --git a/chromium/net/http/http_response_body_drainer_unittest.cc b/chromium/net/http/http_response_body_drainer_unittest.cc
index 70134cce1ea..5d9fcc4689e 100644
--- a/chromium/net/http/http_response_body_drainer_unittest.cc
+++ b/chromium/net/http/http_response_body_drainer_unittest.cc
@@ -127,8 +127,6 @@ class MockHttpStream : public HttpStream {
virtual void Drain(HttpNetworkSession*) OVERRIDE {}
- virtual void SetPriority(RequestPriority priority) OVERRIDE {}
-
// Methods to tweak/observer mock behavior:
void set_stall_reads_forever() { stall_reads_forever_ = true; }
diff --git a/chromium/net/http/http_stream_base.h b/chromium/net/http/http_stream_base.h
index 596ed75dff1..6dce6d2a805 100644
--- a/chromium/net/http/http_stream_base.h
+++ b/chromium/net/http/http_stream_base.h
@@ -141,9 +141,6 @@ class NET_EXPORT_PRIVATE HttpStreamBase {
// draining is complete.
virtual void Drain(HttpNetworkSession* session) = 0;
- // Called when the priority of the parent transaction changes.
- virtual void SetPriority(RequestPriority priority) = 0;
-
private:
DISALLOW_COPY_AND_ASSIGN(HttpStreamBase);
};
diff --git a/chromium/net/http/http_stream_factory.h b/chromium/net/http/http_stream_factory.h
index 0de3b65bc57..6db6905b433 100644
--- a/chromium/net/http/http_stream_factory.h
+++ b/chromium/net/http/http_stream_factory.h
@@ -157,9 +157,6 @@ class NET_EXPORT_PRIVATE HttpStreamRequest {
virtual int RestartTunnelWithProxyAuth(
const AuthCredentials& credentials) = 0;
- // Called when the priority of the parent transaction changes.
- virtual void SetPriority(RequestPriority priority) = 0;
-
// Returns the LoadState for the request.
virtual LoadState GetLoadState() const = 0;
diff --git a/chromium/net/http/http_stream_factory_impl.h b/chromium/net/http/http_stream_factory_impl.h
index 4339fd350d7..3949f3839ee 100644
--- a/chromium/net/http/http_stream_factory_impl.h
+++ b/chromium/net/http/http_stream_factory_impl.h
@@ -9,7 +9,6 @@
#include <set>
#include <vector>
-#include "base/gtest_prod_util.h"
#include "base/memory/ref_counted.h"
#include "net/base/host_port_pair.h"
#include "net/base/net_log.h"
@@ -67,10 +66,8 @@ class NET_EXPORT_PRIVATE HttpStreamFactoryImpl :
size_t num_orphaned_jobs() const { return orphaned_job_set_.size(); }
private:
- FRIEND_TEST_ALL_PREFIXES(HttpStreamFactoryImplRequestTest, SetPriority);
-
- class NET_EXPORT_PRIVATE Request;
- class NET_EXPORT_PRIVATE Job;
+ class Request;
+ class Job;
typedef std::set<Request*> RequestSet;
typedef std::vector<Request*> RequestVector;
diff --git a/chromium/net/http/http_stream_factory_impl_job.cc b/chromium/net/http/http_stream_factory_impl_job.cc
index c0383f4772d..b2eee3b0fbe 100644
--- a/chromium/net/http/http_stream_factory_impl_job.cc
+++ b/chromium/net/http/http_stream_factory_impl_job.cc
@@ -230,17 +230,12 @@ void HttpStreamFactoryImpl::Job::Orphan(const Request* request) {
}
}
-void HttpStreamFactoryImpl::Job::SetPriority(RequestPriority priority) {
- priority_ = priority;
- // TODO(akalin): Propagate this to |connection_| and maybe the
- // preconnect state.
-}
-
bool HttpStreamFactoryImpl::Job::was_npn_negotiated() const {
return was_npn_negotiated_;
}
-NextProto HttpStreamFactoryImpl::Job::protocol_negotiated() const {
+NextProto HttpStreamFactoryImpl::Job::protocol_negotiated()
+ const {
return protocol_negotiated_;
}
diff --git a/chromium/net/http/http_stream_factory_impl_job.h b/chromium/net/http/http_stream_factory_impl_job.h
index 01a794a1bc7..2c2eb349586 100644
--- a/chromium/net/http/http_stream_factory_impl_job.h
+++ b/chromium/net/http/http_stream_factory_impl_job.h
@@ -74,9 +74,6 @@ class HttpStreamFactoryImpl::Job {
// Used to detach the Job from |request|.
void Orphan(const Request* request);
- void SetPriority(RequestPriority priority);
-
- RequestPriority priority() const { return priority_; }
bool was_npn_negotiated() const;
NextProto protocol_negotiated() const;
bool using_spdy() const;
diff --git a/chromium/net/http/http_stream_factory_impl_request.cc b/chromium/net/http/http_stream_factory_impl_request.cc
index 57190ed72e7..e73a897a528 100644
--- a/chromium/net/http/http_stream_factory_impl_request.cc
+++ b/chromium/net/http/http_stream_factory_impl_request.cc
@@ -215,15 +215,6 @@ int HttpStreamFactoryImpl::Request::RestartTunnelWithProxyAuth(
return bound_job_->RestartTunnelWithProxyAuth(credentials);
}
-void HttpStreamFactoryImpl::Request::SetPriority(RequestPriority priority) {
- for (std::set<HttpStreamFactoryImpl::Job*>::const_iterator it = jobs_.begin();
- it != jobs_.end(); ++it) {
- (*it)->SetPriority(priority);
- }
- if (bound_job_)
- bound_job_->SetPriority(priority);
-}
-
LoadState HttpStreamFactoryImpl::Request::GetLoadState() const {
if (bound_job_.get())
return bound_job_->GetLoadState();
diff --git a/chromium/net/http/http_stream_factory_impl_request.h b/chromium/net/http/http_stream_factory_impl_request.h
index d6f9b02cbef..169e1f54ce9 100644
--- a/chromium/net/http/http_stream_factory_impl_request.h
+++ b/chromium/net/http/http_stream_factory_impl_request.h
@@ -105,7 +105,6 @@ class HttpStreamFactoryImpl::Request : public HttpStreamRequest {
virtual int RestartTunnelWithProxyAuth(
const AuthCredentials& credentials) OVERRIDE;
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
virtual LoadState GetLoadState() const OVERRIDE;
virtual bool was_npn_negotiated() const OVERRIDE;
virtual NextProto protocol_negotiated() const OVERRIDE;
diff --git a/chromium/net/http/http_stream_factory_impl_request_unittest.cc b/chromium/net/http/http_stream_factory_impl_request_unittest.cc
deleted file mode 100644
index 1f38a2e56f6..00000000000
--- a/chromium/net/http/http_stream_factory_impl_request_unittest.cc
+++ /dev/null
@@ -1,98 +0,0 @@
-// Copyright (c) 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "net/http/http_stream_factory_impl_request.h"
-
-#include "net/http/http_stream_factory_impl_job.h"
-#include "net/proxy/proxy_info.h"
-#include "net/proxy/proxy_service.h"
-#include "net/spdy/spdy_test_util_common.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace net {
-
-class HttpStreamFactoryImplRequestTest
- : public ::testing::Test,
- public ::testing::WithParamInterface<NextProto> {};
-
-INSTANTIATE_TEST_CASE_P(
- NextProto,
- HttpStreamFactoryImplRequestTest,
- testing::Values(kProtoSPDY2, kProtoSPDY3, kProtoSPDY31, kProtoSPDY4a2,
- kProtoHTTP2Draft04));
-
-namespace {
-
-class DoNothingRequestDelegate : public HttpStreamRequest::Delegate {
- public:
- DoNothingRequestDelegate() {}
-
- virtual ~DoNothingRequestDelegate() {}
-
- // HttpStreamRequest::Delegate
- virtual void OnStreamReady(
- const SSLConfig& used_ssl_config,
- const ProxyInfo& used_proxy_info,
- HttpStreamBase* stream) OVERRIDE {}
- virtual void OnWebSocketStreamReady(
- const SSLConfig& used_ssl_config,
- const ProxyInfo& used_proxy_info,
- WebSocketStreamBase* stream) OVERRIDE {}
- virtual void OnStreamFailed(
- int status,
- const SSLConfig& used_ssl_config) OVERRIDE {}
- virtual void OnCertificateError(
- int status,
- const SSLConfig& used_ssl_config,
- const SSLInfo& ssl_info) OVERRIDE {}
- virtual void OnNeedsProxyAuth(const HttpResponseInfo& proxy_response,
- const SSLConfig& used_ssl_config,
- const ProxyInfo& used_proxy_info,
- HttpAuthController* auth_controller) OVERRIDE {}
- virtual void OnNeedsClientAuth(const SSLConfig& used_ssl_config,
- SSLCertRequestInfo* cert_info) OVERRIDE {}
- virtual void OnHttpsProxyTunnelResponse(const HttpResponseInfo& response_info,
- const SSLConfig& used_ssl_config,
- const ProxyInfo& used_proxy_info,
- HttpStreamBase* stream) OVERRIDE {}
-};
-
-} // namespace
-
-// Make sure that Request passes on its priority updates to its jobs.
-TEST_P(HttpStreamFactoryImplRequestTest, SetPriority) {
- SpdySessionDependencies session_deps(GetParam(),
- ProxyService::CreateDirect());
-
- scoped_refptr<HttpNetworkSession>
- session(SpdySessionDependencies::SpdyCreateSession(&session_deps));
- HttpStreamFactoryImpl* factory =
- static_cast<HttpStreamFactoryImpl*>(session->http_stream_factory());
-
- DoNothingRequestDelegate request_delegate;
- HttpStreamFactoryImpl::Request request(
- GURL(), factory, &request_delegate, NULL, BoundNetLog());
-
- HttpStreamFactoryImpl::Job* job =
- new HttpStreamFactoryImpl::Job(factory,
- session,
- HttpRequestInfo(),
- DEFAULT_PRIORITY,
- SSLConfig(),
- SSLConfig(),
- NULL);
- request.AttachJob(job);
- EXPECT_EQ(DEFAULT_PRIORITY, job->priority());
-
- request.SetPriority(MEDIUM);
- EXPECT_EQ(MEDIUM, job->priority());
-
- // Make |job| the bound job.
- request.OnStreamFailed(job, ERR_FAILED, SSLConfig());
-
- request.SetPriority(IDLE);
- EXPECT_EQ(IDLE, job->priority());
-}
-
-} // namespace net
diff --git a/chromium/net/http/http_stream_factory_impl_unittest.cc b/chromium/net/http/http_stream_factory_impl_unittest.cc
index f378c93ea18..14fbc0338a3 100644
--- a/chromium/net/http/http_stream_factory_impl_unittest.cc
+++ b/chromium/net/http/http_stream_factory_impl_unittest.cc
@@ -314,7 +314,7 @@ class CapturePreconnectsSocketPool : public ParentPool {
ADD_FAILURE();
}
virtual void ReleaseSocket(const std::string& group_name,
- scoped_ptr<StreamSocket> socket,
+ StreamSocket* socket,
int id) OVERRIDE {
ADD_FAILURE();
}
diff --git a/chromium/net/http/http_stream_parser_unittest.cc b/chromium/net/http/http_stream_parser_unittest.cc
index 84775945ec1..d530c2deab7 100644
--- a/chromium/net/http/http_stream_parser_unittest.cc
+++ b/chromium/net/http/http_stream_parser_unittest.cc
@@ -220,7 +220,7 @@ TEST(HttpStreamParser, AsyncChunkAndAsyncSocket) {
ASSERT_EQ(OK, rv);
scoped_ptr<ClientSocketHandle> socket_handle(new ClientSocketHandle);
- socket_handle->SetSocket(transport.PassAs<StreamSocket>());
+ socket_handle->set_socket(transport.release());
HttpRequestInfo request_info;
request_info.method = "GET";
@@ -375,7 +375,7 @@ TEST(HttpStreamParser, TruncatedHeaders) {
ASSERT_EQ(OK, rv);
scoped_ptr<ClientSocketHandle> socket_handle(new ClientSocketHandle);
- socket_handle->SetSocket(transport.PassAs<StreamSocket>());
+ socket_handle->set_socket(transport.release());
HttpRequestInfo request_info;
request_info.method = "GET";
diff --git a/chromium/net/http/mock_http_cache.cc b/chromium/net/http/mock_http_cache.cc
index 85ffa74584e..a3d55b17e6b 100644
--- a/chromium/net/http/mock_http_cache.cc
+++ b/chromium/net/http/mock_http_cache.cc
@@ -50,14 +50,10 @@ struct MockDiskEntry::CallbackInfo {
int result;
};
-MockDiskEntry::MockDiskEntry()
- : test_mode_(0), doomed_(false), sparse_(false),
- fail_requests_(false), busy_(false), delayed_(false) {
-}
-
MockDiskEntry::MockDiskEntry(const std::string& key)
: key_(key), doomed_(false), sparse_(false),
- fail_requests_(false), busy_(false), delayed_(false) {
+ fail_requests_(false), fail_sparse_requests_(false), busy_(false),
+ delayed_(false) {
test_mode_ = GetTestModeForEntry(key);
}
@@ -139,6 +135,8 @@ int MockDiskEntry::WriteData(
int MockDiskEntry::ReadSparseData(int64 offset, net::IOBuffer* buf, int buf_len,
const net::CompletionCallback& callback) {
DCHECK(!callback.is_null());
+ if (fail_sparse_requests_)
+ return net::ERR_NOT_IMPLEMENTED;
if (!sparse_ || busy_)
return net::ERR_CACHE_OPERATION_NOT_SUPPORTED;
if (offset < 0)
@@ -169,6 +167,8 @@ int MockDiskEntry::WriteSparseData(int64 offset, net::IOBuffer* buf,
int buf_len,
const net::CompletionCallback& callback) {
DCHECK(!callback.is_null());
+ if (fail_sparse_requests_)
+ return net::ERR_NOT_IMPLEMENTED;
if (busy_)
return net::ERR_CACHE_OPERATION_NOT_SUPPORTED;
if (!sparse_) {
@@ -237,6 +237,8 @@ int MockDiskEntry::GetAvailableRange(int64 offset, int len, int64* start,
}
bool MockDiskEntry::CouldBeSparse() const {
+ if (fail_sparse_requests_)
+ return false;
return sparse_;
}
@@ -245,6 +247,8 @@ void MockDiskEntry::CancelSparseIO() {
}
int MockDiskEntry::ReadyForSparseIO(const net::CompletionCallback& callback) {
+ if (fail_sparse_requests_)
+ return net::ERR_NOT_IMPLEMENTED;
if (!cancel_)
return net::OK;
@@ -333,7 +337,8 @@ bool MockDiskEntry::ignore_callbacks_ = false;
MockDiskCache::MockDiskCache()
: open_count_(0), create_count_(0), fail_requests_(false),
- soft_failures_(false), double_create_check_(true) {
+ soft_failures_(false), double_create_check_(true),
+ fail_sparse_requests_(false) {
}
MockDiskCache::~MockDiskCache() {
@@ -411,6 +416,9 @@ int MockDiskCache::CreateEntry(const std::string& key,
if (soft_failures_)
new_entry->set_fail_requests();
+ if (fail_sparse_requests_)
+ new_entry->set_fail_sparse_requests();
+
if (GetTestModeForEntry(key) & TEST_MODE_SYNC_CACHE_START)
return net::OK;
diff --git a/chromium/net/http/mock_http_cache.h b/chromium/net/http/mock_http_cache.h
index 6cb0e50f562..90399ec4ff0 100644
--- a/chromium/net/http/mock_http_cache.h
+++ b/chromium/net/http/mock_http_cache.h
@@ -21,7 +21,6 @@
class MockDiskEntry : public disk_cache::Entry,
public base::RefCounted<MockDiskEntry> {
public:
- MockDiskEntry();
explicit MockDiskEntry(const std::string& key);
bool is_doomed() const { return doomed_; }
@@ -53,6 +52,8 @@ class MockDiskEntry : public disk_cache::Entry,
// Fail most subsequent requests.
void set_fail_requests() { fail_requests_ = true; }
+ void set_fail_sparse_requests() { fail_sparse_requests_ = true; }
+
// If |value| is true, don't deliver any completion callbacks until called
// again with |value| set to false. Caution: remember to enable callbacks
// again or all subsequent tests will fail.
@@ -85,6 +86,7 @@ class MockDiskEntry : public disk_cache::Entry,
bool doomed_;
bool sparse_;
bool fail_requests_;
+ bool fail_sparse_requests_;
bool busy_;
bool delayed_;
static bool cancel_;
@@ -134,6 +136,9 @@ class MockDiskCache : public disk_cache::Backend {
// Makes sure that CreateEntry is not called twice for a given key.
void set_double_create_check(bool value) { double_create_check_ = value; }
+ // Makes all requests for data ranges to fail as not implemented.
+ void set_fail_sparse_requests() { fail_sparse_requests_ = true; }
+
void ReleaseAll();
private:
@@ -147,6 +152,7 @@ class MockDiskCache : public disk_cache::Backend {
bool fail_requests_;
bool soft_failures_;
bool double_create_check_;
+ bool fail_sparse_requests_;
};
class MockBackendFactory : public net::HttpCache::BackendFactory {
diff --git a/chromium/net/http/proxy_connect_redirect_http_stream.cc b/chromium/net/http/proxy_connect_redirect_http_stream.cc
index 59bb0146953..f30f33c002c 100644
--- a/chromium/net/http/proxy_connect_redirect_http_stream.cc
+++ b/chromium/net/http/proxy_connect_redirect_http_stream.cc
@@ -109,10 +109,6 @@ void ProxyConnectRedirectHttpStream::Drain(HttpNetworkSession* session) {
NOTREACHED();
}
-void ProxyConnectRedirectHttpStream::SetPriority(RequestPriority priority) {
- // Nothing to do.
-}
-
UploadProgress ProxyConnectRedirectHttpStream::GetUploadProgress() const {
NOTREACHED();
return UploadProgress();
diff --git a/chromium/net/http/proxy_connect_redirect_http_stream.h b/chromium/net/http/proxy_connect_redirect_http_stream.h
index c335c218c71..f39ec76b9b9 100644
--- a/chromium/net/http/proxy_connect_redirect_http_stream.h
+++ b/chromium/net/http/proxy_connect_redirect_http_stream.h
@@ -59,10 +59,6 @@ class ProxyConnectRedirectHttpStream : public HttpStream {
SSLCertRequestInfo* cert_request_info) OVERRIDE;
virtual bool IsSpdyHttpStream() const OVERRIDE;
virtual void Drain(HttpNetworkSession* session) OVERRIDE;
-
- // This function may be called.
- virtual void SetPriority(RequestPriority priority) OVERRIDE;
-
virtual UploadProgress GetUploadProgress() const OVERRIDE;
virtual HttpStream* RenewStreamForAuth() OVERRIDE;