Index: net/websockets/websocket_stream.cc |
diff --git a/net/websockets/websocket_stream.cc b/net/websockets/websocket_stream.cc |
index 399b8f0b0911e23c1c1a2acbfa8a5ac90cf22349..5297e09e238f7a65bcfc9114d6a64bf4917897b9 100644 |
--- a/net/websockets/websocket_stream.cc |
+++ b/net/websockets/websocket_stream.cc |
@@ -66,19 +66,34 @@ class StreamRequestImpl : public WebSocketStreamRequest { |
StreamRequestImpl( |
const GURL& url, |
const URLRequestContext* context, |
+ const url::Origin& origin, |
scoped_ptr<WebSocketStream::ConnectDelegate> connect_delegate, |
- WebSocketHandshakeStreamCreateHelper* create_helper) |
+ scoped_ptr<WebSocketHandshakeStreamCreateHelper> create_helper) |
: delegate_(new Delegate(this)), |
url_request_(url, DEFAULT_PRIORITY, delegate_.get(), context), |
connect_delegate_(connect_delegate.Pass()), |
- create_helper_(create_helper) {} |
+ create_helper_(create_helper.get()) { |
Adam Rice
2014/05/22 08:36:14
Suggestion: use .release() here and then use creat
tyoshino (SeeGerritForStatus)
2014/05/22 09:11:00
Done.
|
+ HttpRequestHeaders headers; |
+ headers.SetHeader(websockets::kUpgrade, websockets::kWebSocketLowercase); |
+ headers.SetHeader(HttpRequestHeaders::kConnection, websockets::kUpgrade); |
+ headers.SetHeader(HttpRequestHeaders::kOrigin, origin.string()); |
+ headers.SetHeader(websockets::kSecWebSocketVersion, |
+ websockets::kSupportedVersion); |
+ url_request_.SetExtraRequestHeaders(headers); |
+ |
+ url_request_.SetUserData( |
+ WebSocketHandshakeStreamBase::CreateHelper::DataKey(), |
+ create_helper.release()); |
+ url_request_.SetLoadFlags(LOAD_DISABLE_CACHE | |
+ LOAD_BYPASS_CACHE | |
+ LOAD_DO_NOT_PROMPT_FOR_LOGIN); |
+ url_request_.Start(); |
Adam Rice
2014/05/22 08:36:14
I am not sure about this. On the one hand, it viol
tyoshino (SeeGerritForStatus)
2014/05/22 09:11:00
I was also wondering if Start() should be run outs
Adam Rice
2014/05/22 09:22:02
Agreed.
|
+ } |
// Destroying this object destroys the URLRequest, which cancels the request |
// and so terminates the handshake if it is incomplete. |
virtual ~StreamRequestImpl() {} |
- URLRequest* url_request() { return &url_request_; } |
- |
void PerformUpgrade() { |
connect_delegate_->OnSuccess(create_helper_->stream()->Upgrade()); |
} |
@@ -157,37 +172,6 @@ void Delegate::OnReadCompleted(URLRequest* request, int bytes_read) { |
NOTREACHED(); |
} |
-// Internal implementation of CreateAndConnectStream and |
-// CreateAndConnectStreamForTesting. |
-scoped_ptr<WebSocketStreamRequest> CreateAndConnectStreamWithCreateHelper( |
- const GURL& socket_url, |
- scoped_ptr<WebSocketHandshakeStreamCreateHelper> create_helper, |
- const url::Origin& origin, |
- URLRequestContext* url_request_context, |
- const BoundNetLog& net_log, |
- scoped_ptr<WebSocketStream::ConnectDelegate> connect_delegate) { |
- scoped_ptr<StreamRequestImpl> request( |
- new StreamRequestImpl(socket_url, |
- url_request_context, |
- connect_delegate.Pass(), |
- create_helper.get())); |
- HttpRequestHeaders headers; |
- headers.SetHeader(websockets::kUpgrade, websockets::kWebSocketLowercase); |
- headers.SetHeader(HttpRequestHeaders::kConnection, websockets::kUpgrade); |
- headers.SetHeader(HttpRequestHeaders::kOrigin, origin.string()); |
- headers.SetHeader(websockets::kSecWebSocketVersion, |
- websockets::kSupportedVersion); |
- request->url_request()->SetExtraRequestHeaders(headers); |
- request->url_request()->SetUserData( |
- WebSocketHandshakeStreamBase::CreateHelper::DataKey(), |
- create_helper.release()); |
- request->url_request()->SetLoadFlags(LOAD_DISABLE_CACHE | |
- LOAD_BYPASS_CACHE | |
- LOAD_DO_NOT_PROMPT_FOR_LOGIN); |
- request->url_request()->Start(); |
- return request.PassAs<WebSocketStreamRequest>(); |
-} |
- |
} // namespace |
WebSocketStreamRequest::~WebSocketStreamRequest() {} |
@@ -207,12 +191,13 @@ scoped_ptr<WebSocketStreamRequest> WebSocketStream::CreateAndConnectStream( |
scoped_ptr<WebSocketHandshakeStreamCreateHelper> create_helper( |
new WebSocketHandshakeStreamCreateHelper(connect_delegate.get(), |
requested_subprotocols)); |
- return CreateAndConnectStreamWithCreateHelper(socket_url, |
- create_helper.Pass(), |
- origin, |
- url_request_context, |
- net_log, |
- connect_delegate.Pass()); |
+ scoped_ptr<WebSocketStreamRequest> request( |
+ new StreamRequestImpl(socket_url, |
+ url_request_context, |
+ origin, |
+ connect_delegate.Pass(), |
+ create_helper.Pass())); |
+ return request.PassAs<WebSocketStreamRequest>(); |
Adam Rice
2014/05/22 08:36:14
You don't need PassAs<>() here. Plain Pass() shoul
tyoshino (SeeGerritForStatus)
2014/05/22 09:11:00
Oh, right! As I separated Start() call on URLReque
Adam Rice
2014/05/22 09:22:02
I did have the evil idea of having Start() return
|
} |
// This is declared in websocket_test_util.h. |
@@ -223,12 +208,13 @@ scoped_ptr<WebSocketStreamRequest> CreateAndConnectStreamForTesting( |
URLRequestContext* url_request_context, |
const BoundNetLog& net_log, |
scoped_ptr<WebSocketStream::ConnectDelegate> connect_delegate) { |
- return CreateAndConnectStreamWithCreateHelper(socket_url, |
- create_helper.Pass(), |
- origin, |
- url_request_context, |
- net_log, |
- connect_delegate.Pass()); |
+ scoped_ptr<WebSocketStreamRequest> request( |
+ new StreamRequestImpl(socket_url, |
+ url_request_context, |
+ origin, |
+ connect_delegate.Pass(), |
+ create_helper.Pass())); |
+ return request.PassAs<WebSocketStreamRequest>(); |
} |
} // namespace net |