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

Side by Side Diff: net/websockets/websocket_channel.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_channel.h ('k') | net/websockets/websocket_channel_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_channel.h" 5 #include "net/websockets/websocket_channel.h"
6 6
7 #include <limits.h> // for INT_MAX 7 #include <limits.h> // for INT_MAX
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 // destroyed first. 330 // destroyed first.
331 stream_.reset(); 331 stream_.reset();
332 // The timer may have a callback pointing back to us, so stop it just in case 332 // The timer may have a callback pointing back to us, so stop it just in case
333 // someone decides to run the event loop from their destructor. 333 // someone decides to run the event loop from their destructor.
334 close_timer_.Stop(); 334 close_timer_.Stop();
335 } 335 }
336 336
337 void WebSocketChannel::SendAddChannelRequest( 337 void WebSocketChannel::SendAddChannelRequest(
338 const GURL& socket_url, 338 const GURL& socket_url,
339 const std::vector<std::string>& requested_subprotocols, 339 const std::vector<std::string>& requested_subprotocols,
340 const url::Origin& origin) { 340 const url::Origin& origin,
341 const std::string& additional_headers) {
341 // Delegate to the tested version. 342 // Delegate to the tested version.
342 SendAddChannelRequestWithSuppliedCreator( 343 SendAddChannelRequestWithSuppliedCreator(
343 socket_url, 344 socket_url, requested_subprotocols, origin, additional_headers,
344 requested_subprotocols,
345 origin,
346 base::Bind(&WebSocketStream::CreateAndConnectStream)); 345 base::Bind(&WebSocketStream::CreateAndConnectStream));
347 } 346 }
348 347
349 void WebSocketChannel::SetState(State new_state) { 348 void WebSocketChannel::SetState(State new_state) {
350 DCHECK_NE(state_, new_state); 349 DCHECK_NE(state_, new_state);
351 350
352 if (new_state == CONNECTED) 351 if (new_state == CONNECTED)
353 established_on_ = base::TimeTicks::Now(); 352 established_on_ = base::TimeTicks::Now();
354 if (state_ == CONNECTED && !established_on_.is_null()) { 353 if (state_ == CONNECTED && !established_on_.is_null()) {
355 UMA_HISTOGRAM_LONG_TIMES( 354 UMA_HISTOGRAM_LONG_TIMES(
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 return CHANNEL_DELETED; 537 return CHANNEL_DELETED;
539 DCHECK_EQ(CONNECTED, state_); 538 DCHECK_EQ(CONNECTED, state_);
540 SetState(SEND_CLOSED); 539 SetState(SEND_CLOSED);
541 return CHANNEL_ALIVE; 540 return CHANNEL_ALIVE;
542 } 541 }
543 542
544 void WebSocketChannel::SendAddChannelRequestForTesting( 543 void WebSocketChannel::SendAddChannelRequestForTesting(
545 const GURL& socket_url, 544 const GURL& socket_url,
546 const std::vector<std::string>& requested_subprotocols, 545 const std::vector<std::string>& requested_subprotocols,
547 const url::Origin& origin, 546 const url::Origin& origin,
547 const std::string& additional_headers,
548 const WebSocketStreamCreator& creator) { 548 const WebSocketStreamCreator& creator) {
549 SendAddChannelRequestWithSuppliedCreator( 549 SendAddChannelRequestWithSuppliedCreator(socket_url, requested_subprotocols,
550 socket_url, requested_subprotocols, origin, creator); 550 origin, additional_headers, creator);
551 } 551 }
552 552
553 void WebSocketChannel::SetClosingHandshakeTimeoutForTesting( 553 void WebSocketChannel::SetClosingHandshakeTimeoutForTesting(
554 base::TimeDelta delay) { 554 base::TimeDelta delay) {
555 closing_handshake_timeout_ = delay; 555 closing_handshake_timeout_ = delay;
556 } 556 }
557 557
558 void WebSocketChannel::SetUnderlyingConnectionCloseTimeoutForTesting( 558 void WebSocketChannel::SetUnderlyingConnectionCloseTimeoutForTesting(
559 base::TimeDelta delay) { 559 base::TimeDelta delay) {
560 underlying_connection_close_timeout_ = delay; 560 underlying_connection_close_timeout_ = delay;
561 } 561 }
562 562
563 void WebSocketChannel::SendAddChannelRequestWithSuppliedCreator( 563 void WebSocketChannel::SendAddChannelRequestWithSuppliedCreator(
564 const GURL& socket_url, 564 const GURL& socket_url,
565 const std::vector<std::string>& requested_subprotocols, 565 const std::vector<std::string>& requested_subprotocols,
566 const url::Origin& origin, 566 const url::Origin& origin,
567 const std::string& additional_headers,
567 const WebSocketStreamCreator& creator) { 568 const WebSocketStreamCreator& creator) {
568 DCHECK_EQ(FRESHLY_CONSTRUCTED, state_); 569 DCHECK_EQ(FRESHLY_CONSTRUCTED, state_);
569 if (!socket_url.SchemeIsWSOrWSS()) { 570 if (!socket_url.SchemeIsWSOrWSS()) {
570 // TODO(ricea): Kill the renderer (this error should have been caught by 571 // TODO(ricea): Kill the renderer (this error should have been caught by
571 // Javascript). 572 // Javascript).
572 ignore_result(event_interface_->OnFailChannel("Invalid scheme")); 573 ignore_result(event_interface_->OnFailChannel("Invalid scheme"));
573 // |this| is deleted here. 574 // |this| is deleted here.
574 return; 575 return;
575 } 576 }
576 socket_url_ = socket_url; 577 socket_url_ = socket_url;
577 std::unique_ptr<WebSocketStream::ConnectDelegate> connect_delegate( 578 std::unique_ptr<WebSocketStream::ConnectDelegate> connect_delegate(
578 new ConnectDelegate(this)); 579 new ConnectDelegate(this));
579 stream_request_ = creator.Run(socket_url_, requested_subprotocols, origin, 580 stream_request_ = creator.Run(socket_url_, requested_subprotocols, origin,
580 url_request_context_, BoundNetLog(), 581 additional_headers, url_request_context_,
581 std::move(connect_delegate)); 582 BoundNetLog(), std::move(connect_delegate));
582 SetState(CONNECTING); 583 SetState(CONNECTING);
583 } 584 }
584 585
585 void WebSocketChannel::OnConnectSuccess( 586 void WebSocketChannel::OnConnectSuccess(
586 std::unique_ptr<WebSocketStream> stream) { 587 std::unique_ptr<WebSocketStream> stream) {
587 DCHECK(stream); 588 DCHECK(stream);
588 DCHECK_EQ(CONNECTING, state_); 589 DCHECK_EQ(CONNECTING, state_);
589 590
590 stream_ = std::move(stream); 591 stream_ = std::move(stream);
591 592
(...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after
1172 } 1173 }
1173 1174
1174 void WebSocketChannel::CloseTimeout() { 1175 void WebSocketChannel::CloseTimeout() {
1175 stream_->Close(); 1176 stream_->Close();
1176 SetState(CLOSED); 1177 SetState(CLOSED);
1177 DoDropChannel(false, kWebSocketErrorAbnormalClosure, ""); 1178 DoDropChannel(false, kWebSocketErrorAbnormalClosure, "");
1178 // |this| has been deleted. 1179 // |this| has been deleted.
1179 } 1180 }
1180 1181
1181 } // namespace net 1182 } // namespace net
OLDNEW
« no previous file with comments | « net/websockets/websocket_channel.h ('k') | net/websockets/websocket_channel_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698