diff options
author | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-21 16:32:19 +0000 |
---|---|---|
committer | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-21 16:34:06 +0000 |
commit | f7022f35ef5ae2ce0aa7fbb5977b140ca1a2ab1c (patch) | |
tree | a7890ddc698cb75c4f86babfe3c4d34e23c67f29 /net/websockets | |
parent | 4b04e3424d3a266d33d5f613cbfbbecd1bd5388a (diff) | |
download | chromium_src-f7022f35ef5ae2ce0aa7fbb5977b140ca1a2ab1c.zip chromium_src-f7022f35ef5ae2ce0aa7fbb5977b140ca1a2ab1c.tar.gz chromium_src-f7022f35ef5ae2ce0aa7fbb5977b140ca1a2ab1c.tar.bz2 |
Allow URLRequests from one context to have different NetworkDelegates.
This is a prerequisite to allowing a URLRequestJob to transparently wrap
a URLRequest, so AppCache can override the response for failing and
redirected requests without the NetworkDelegate or URLRequest::Delegate
being aware of the underlying request.
Also consolidate the URLRequest constructors, and make most code create
URLRequests through the URLRequestContext's CreateRequest function,
rather than through its constructor.
TBR=battre@chromium.org
BUG=161547
Review URL: https://codereview.chromium.org/407093011
Cr-Commit-Position: refs/heads/master@{#291090}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@291090 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/websockets')
-rw-r--r-- | net/websockets/websocket_stream.cc | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/net/websockets/websocket_stream.cc b/net/websockets/websocket_stream.cc index c9513d7..b609632 100644 --- a/net/websockets/websocket_stream.cc +++ b/net/websockets/websocket_stream.cc @@ -86,7 +86,8 @@ class StreamRequestImpl : public WebSocketStreamRequest { scoped_ptr<WebSocketStream::ConnectDelegate> connect_delegate, scoped_ptr<WebSocketHandshakeStreamCreateHelper> create_helper) : delegate_(new Delegate(this)), - url_request_(url, DEFAULT_PRIORITY, delegate_.get(), context), + url_request_(context->CreateRequest(url, DEFAULT_PRIORITY, + delegate_.get(), NULL)), connect_delegate_(connect_delegate.Pass()), create_helper_(create_helper.release()) { create_helper_->set_failure_message(&failure_message_); @@ -96,15 +97,15 @@ class StreamRequestImpl : public WebSocketStreamRequest { headers.SetHeader(HttpRequestHeaders::kOrigin, origin.string()); headers.SetHeader(websockets::kSecWebSocketVersion, websockets::kSupportedVersion); - url_request_.SetExtraRequestHeaders(headers); + url_request_->SetExtraRequestHeaders(headers); // This passes the ownership of |create_helper_| to |url_request_|. - url_request_.SetUserData( + url_request_->SetUserData( WebSocketHandshakeStreamBase::CreateHelper::DataKey(), create_helper_); - url_request_.SetLoadFlags(LOAD_DISABLE_CACHE | - LOAD_BYPASS_CACHE | - LOAD_DO_NOT_PROMPT_FOR_LOGIN); + url_request_->SetLoadFlags(LOAD_DISABLE_CACHE | + LOAD_BYPASS_CACHE | + LOAD_DO_NOT_PROMPT_FOR_LOGIN); } // Destroying this object destroys the URLRequest, which cancels the request @@ -112,7 +113,7 @@ class StreamRequestImpl : public WebSocketStreamRequest { virtual ~StreamRequestImpl() {} void Start() { - url_request_.Start(); + url_request_->Start(); } void PerformUpgrade() { @@ -121,7 +122,7 @@ class StreamRequestImpl : public WebSocketStreamRequest { void ReportFailure() { if (failure_message_.empty()) { - switch (url_request_.status().status()) { + switch (url_request_->status().status()) { case URLRequestStatus::SUCCESS: case URLRequestStatus::IO_PENDING: break; @@ -131,7 +132,7 @@ class StreamRequestImpl : public WebSocketStreamRequest { case URLRequestStatus::FAILED: failure_message_ = std::string("Error in connection establishment: ") + - ErrorToString(url_request_.status().error()); + ErrorToString(url_request_->status().error()); break; } } @@ -144,9 +145,9 @@ class StreamRequestImpl : public WebSocketStreamRequest { void OnFinishOpeningHandshake() { WebSocketDispatchOnFinishOpeningHandshake(connect_delegate(), - url_request_.url(), - url_request_.response_headers(), - url_request_.response_time()); + url_request_->url(), + url_request_->response_headers(), + url_request_->response_time()); } WebSocketStream::ConnectDelegate* connect_delegate() const { @@ -160,7 +161,7 @@ class StreamRequestImpl : public WebSocketStreamRequest { // Deleting the StreamRequestImpl object deletes this URLRequest object, // cancelling the whole connection. - URLRequest url_request_; + scoped_ptr<URLRequest> url_request_; scoped_ptr<WebSocketStream::ConnectDelegate> connect_delegate_; |