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

Unified Diff: net/websockets/websocket_stream.cc

Issue 407093011: Allow URLRequests from one context to have different NetworkDelegates. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: And fix more stuff... Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/websockets/websocket_stream.cc
diff --git a/net/websockets/websocket_stream.cc b/net/websockets/websocket_stream.cc
index 36b0ad4e5c95352afcf3a80e5af147a0dd7f8b3c..86dce7d4a6ba42cfa33d94fdaf2bbe00fc3dc0f6 100644
--- a/net/websockets/websocket_stream.cc
+++ b/net/websockets/websocket_stream.cc
@@ -84,7 +84,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_);
@@ -94,15 +95,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
@@ -110,7 +111,7 @@ class StreamRequestImpl : public WebSocketStreamRequest {
virtual ~StreamRequestImpl() {}
void Start() {
- url_request_.Start();
+ url_request_->Start();
}
void PerformUpgrade() {
@@ -119,7 +120,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;
@@ -129,7 +130,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;
}
}
@@ -147,7 +148,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_;

Powered by Google App Engine
This is Rietveld 408576698