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

Side by Side Diff: net/websockets/websocket_stream.cc

Issue 2003253002: [Devtools] Allow User-Agent header override for Websockets (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: tests Created 4 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 unified diff | Download patch
« no previous file with comments | « net/websockets/websocket_stream.h ('k') | net/websockets/websocket_stream_cookie_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/websockets/websocket_stream.h" 5 #include "net/websockets/websocket_stream.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 StreamRequestImpl* owner_; 79 StreamRequestImpl* owner_;
80 HandshakeResult result_; 80 HandshakeResult result_;
81 }; 81 };
82 82
83 class StreamRequestImpl : public WebSocketStreamRequest { 83 class StreamRequestImpl : public WebSocketStreamRequest {
84 public: 84 public:
85 StreamRequestImpl( 85 StreamRequestImpl(
86 const GURL& url, 86 const GURL& url,
87 const URLRequestContext* context, 87 const URLRequestContext* context,
88 const url::Origin& origin, 88 const url::Origin& origin,
89 const std::string& additional_headers,
89 std::unique_ptr<WebSocketStream::ConnectDelegate> connect_delegate, 90 std::unique_ptr<WebSocketStream::ConnectDelegate> connect_delegate,
90 std::unique_ptr<WebSocketHandshakeStreamCreateHelper> create_helper) 91 std::unique_ptr<WebSocketHandshakeStreamCreateHelper> create_helper)
91 : delegate_(new Delegate(this)), 92 : delegate_(new Delegate(this)),
92 url_request_( 93 url_request_(
93 context->CreateRequest(url, DEFAULT_PRIORITY, delegate_.get())), 94 context->CreateRequest(url, DEFAULT_PRIORITY, delegate_.get())),
94 connect_delegate_(std::move(connect_delegate)), 95 connect_delegate_(std::move(connect_delegate)),
95 create_helper_(create_helper.release()) { 96 create_helper_(create_helper.release()) {
96 create_helper_->set_failure_message(&failure_message_); 97 create_helper_->set_failure_message(&failure_message_);
97 HttpRequestHeaders headers; 98 HttpRequestHeaders headers;
98 headers.SetHeader(websockets::kUpgrade, websockets::kWebSocketLowercase); 99 headers.SetHeader(websockets::kUpgrade, websockets::kWebSocketLowercase);
99 headers.SetHeader(HttpRequestHeaders::kConnection, websockets::kUpgrade); 100 headers.SetHeader(HttpRequestHeaders::kConnection, websockets::kUpgrade);
100 headers.SetHeader(HttpRequestHeaders::kOrigin, origin.Serialize()); 101 headers.SetHeader(HttpRequestHeaders::kOrigin, origin.Serialize());
101 headers.SetHeader(websockets::kSecWebSocketVersion, 102 headers.SetHeader(websockets::kSecWebSocketVersion,
102 websockets::kSupportedVersion); 103 websockets::kSupportedVersion);
104
105 headers.AddHeadersFromString(additional_headers);
106
103 url_request_->SetExtraRequestHeaders(headers); 107 url_request_->SetExtraRequestHeaders(headers);
104 108
105 // This passes the ownership of |create_helper_| to |url_request_|. 109 // This passes the ownership of |create_helper_| to |url_request_|.
106 url_request_->SetUserData( 110 url_request_->SetUserData(
107 WebSocketHandshakeStreamBase::CreateHelper::DataKey(), 111 WebSocketHandshakeStreamBase::CreateHelper::DataKey(),
108 create_helper_); 112 create_helper_);
109 url_request_->SetLoadFlags(LOAD_DISABLE_CACHE | LOAD_BYPASS_CACHE); 113 url_request_->SetLoadFlags(LOAD_DISABLE_CACHE | LOAD_BYPASS_CACHE);
110 } 114 }
111 115
112 // Destroying this object destroys the URLRequest, which cancels the request 116 // Destroying this object destroys the URLRequest, which cancels the request
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 329
326 WebSocketStream::WebSocketStream() {} 330 WebSocketStream::WebSocketStream() {}
327 WebSocketStream::~WebSocketStream() {} 331 WebSocketStream::~WebSocketStream() {}
328 332
329 WebSocketStream::ConnectDelegate::~ConnectDelegate() {} 333 WebSocketStream::ConnectDelegate::~ConnectDelegate() {}
330 334
331 std::unique_ptr<WebSocketStreamRequest> WebSocketStream::CreateAndConnectStream( 335 std::unique_ptr<WebSocketStreamRequest> WebSocketStream::CreateAndConnectStream(
332 const GURL& socket_url, 336 const GURL& socket_url,
333 const std::vector<std::string>& requested_subprotocols, 337 const std::vector<std::string>& requested_subprotocols,
334 const url::Origin& origin, 338 const url::Origin& origin,
339 const std::string& additional_headers,
335 URLRequestContext* url_request_context, 340 URLRequestContext* url_request_context,
336 const BoundNetLog& net_log, 341 const BoundNetLog& net_log,
337 std::unique_ptr<ConnectDelegate> connect_delegate) { 342 std::unique_ptr<ConnectDelegate> connect_delegate) {
338 std::unique_ptr<WebSocketHandshakeStreamCreateHelper> create_helper( 343 std::unique_ptr<WebSocketHandshakeStreamCreateHelper> create_helper(
339 new WebSocketHandshakeStreamCreateHelper(connect_delegate.get(), 344 new WebSocketHandshakeStreamCreateHelper(connect_delegate.get(),
340 requested_subprotocols)); 345 requested_subprotocols));
341 std::unique_ptr<StreamRequestImpl> request(new StreamRequestImpl( 346 std::unique_ptr<StreamRequestImpl> request(new StreamRequestImpl(
342 socket_url, url_request_context, origin, std::move(connect_delegate), 347 socket_url, url_request_context, origin, additional_headers,
343 std::move(create_helper))); 348 std::move(connect_delegate), std::move(create_helper)));
344 request->Start(std::unique_ptr<base::Timer>(new base::Timer(false, false))); 349 request->Start(std::unique_ptr<base::Timer>(new base::Timer(false, false)));
345 return std::move(request); 350 return std::move(request);
346 } 351 }
347 352
348 // This is declared in websocket_test_util.h. 353 // This is declared in websocket_test_util.h.
349 std::unique_ptr<WebSocketStreamRequest> CreateAndConnectStreamForTesting( 354 std::unique_ptr<WebSocketStreamRequest> CreateAndConnectStreamForTesting(
350 const GURL& socket_url, 355 const GURL& socket_url,
351 std::unique_ptr<WebSocketHandshakeStreamCreateHelper> create_helper, 356 std::unique_ptr<WebSocketHandshakeStreamCreateHelper> create_helper,
352 const url::Origin& origin, 357 const url::Origin& origin,
358 const std::string& additional_headers,
353 URLRequestContext* url_request_context, 359 URLRequestContext* url_request_context,
354 const BoundNetLog& net_log, 360 const BoundNetLog& net_log,
355 std::unique_ptr<WebSocketStream::ConnectDelegate> connect_delegate, 361 std::unique_ptr<WebSocketStream::ConnectDelegate> connect_delegate,
356 std::unique_ptr<base::Timer> timer) { 362 std::unique_ptr<base::Timer> timer) {
357 std::unique_ptr<StreamRequestImpl> request(new StreamRequestImpl( 363 std::unique_ptr<StreamRequestImpl> request(new StreamRequestImpl(
358 socket_url, url_request_context, origin, std::move(connect_delegate), 364 socket_url, url_request_context, origin, additional_headers,
359 std::move(create_helper))); 365 std::move(connect_delegate), std::move(create_helper)));
360 request->Start(std::move(timer)); 366 request->Start(std::move(timer));
361 return std::move(request); 367 return std::move(request);
362 } 368 }
363 369
364 void WebSocketDispatchOnFinishOpeningHandshake( 370 void WebSocketDispatchOnFinishOpeningHandshake(
365 WebSocketStream::ConnectDelegate* connect_delegate, 371 WebSocketStream::ConnectDelegate* connect_delegate,
366 const GURL& url, 372 const GURL& url,
367 const scoped_refptr<HttpResponseHeaders>& headers, 373 const scoped_refptr<HttpResponseHeaders>& headers,
368 base::Time response_time) { 374 base::Time response_time) {
369 DCHECK(connect_delegate); 375 DCHECK(connect_delegate);
370 if (headers.get()) { 376 if (headers.get()) {
371 connect_delegate->OnFinishOpeningHandshake( 377 connect_delegate->OnFinishOpeningHandshake(
372 base::WrapUnique(new WebSocketHandshakeResponseInfo( 378 base::WrapUnique(new WebSocketHandshakeResponseInfo(
373 url, headers->response_code(), headers->GetStatusText(), headers, 379 url, headers->response_code(), headers->GetStatusText(), headers,
374 response_time))); 380 response_time)));
375 } 381 }
376 } 382 }
377 383
378 } // namespace net 384 } // namespace net
OLDNEW
« no previous file with comments | « net/websockets/websocket_stream.h ('k') | net/websockets/websocket_stream_cookie_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698