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

Side by Side Diff: net/http/http_stream_factory_impl_job.cc

Issue 1550843002: Convert enable_bidirectional_stream into build flag local to net. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Sync Created 4 years, 11 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/http/http_stream_factory_impl_job.h ('k') | net/http/http_stream_factory_impl_request.h » ('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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/http/http_stream_factory_impl_job.h" 5 #include "net/http/http_stream_factory_impl_job.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 #include "net/socket/ssl_client_socket.h" 44 #include "net/socket/ssl_client_socket.h"
45 #include "net/socket/ssl_client_socket_pool.h" 45 #include "net/socket/ssl_client_socket_pool.h"
46 #include "net/spdy/spdy_http_stream.h" 46 #include "net/spdy/spdy_http_stream.h"
47 #include "net/spdy/spdy_protocol.h" 47 #include "net/spdy/spdy_protocol.h"
48 #include "net/spdy/spdy_session.h" 48 #include "net/spdy/spdy_session.h"
49 #include "net/spdy/spdy_session_pool.h" 49 #include "net/spdy/spdy_session_pool.h"
50 #include "net/ssl/ssl_cert_request_info.h" 50 #include "net/ssl/ssl_cert_request_info.h"
51 #include "net/ssl/ssl_connection_status_flags.h" 51 #include "net/ssl/ssl_connection_status_flags.h"
52 #include "net/ssl/ssl_failure_state.h" 52 #include "net/ssl/ssl_failure_state.h"
53 53
54 #if defined(ENABLE_BIDIRECTIONAL_STREAM) 54 #if BUILDFLAG(ENABLE_BIDIRECTIONAL_STREAM)
55 #include "net/http/bidirectional_stream_job.h" 55 #include "net/http/bidirectional_stream_job.h"
56 #include "net/spdy/bidirectional_stream_spdy_job.h" 56 #include "net/spdy/bidirectional_stream_spdy_job.h"
57 #endif 57 #endif
58 58
59 namespace net { 59 namespace net {
60 60
61 // Returns parameters associated with the start of a HTTP stream job. 61 // Returns parameters associated with the start of a HTTP stream job.
62 scoped_ptr<base::Value> NetLogHttpStreamJobCallback( 62 scoped_ptr<base::Value> NetLogHttpStreamJobCallback(
63 const NetLog::Source& source, 63 const NetLog::Source& source,
64 const GURL* original_url, 64 const GURL* original_url,
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 368
369 request_->Complete(was_npn_negotiated(), protocol_negotiated(), using_spdy()); 369 request_->Complete(was_npn_negotiated(), protocol_negotiated(), using_spdy());
370 request_->OnWebSocketHandshakeStreamReady(this, 370 request_->OnWebSocketHandshakeStreamReady(this,
371 server_ssl_config_, 371 server_ssl_config_,
372 proxy_info_, 372 proxy_info_,
373 websocket_stream_.release()); 373 websocket_stream_.release());
374 // |this| may be deleted after this call. 374 // |this| may be deleted after this call.
375 } 375 }
376 376
377 void HttpStreamFactoryImpl::Job::OnBidirectionalStreamJobReadyCallback() { 377 void HttpStreamFactoryImpl::Job::OnBidirectionalStreamJobReadyCallback() {
378 #if defined(ENABLE_BIDIRECTIONAL_STREAM) 378 #if BUILDFLAG(ENABLE_BIDIRECTIONAL_STREAM)
379 DCHECK(bidirectional_stream_job_); 379 DCHECK(bidirectional_stream_job_);
380 380
381 MaybeCopyConnectionAttemptsFromSocketOrHandle(); 381 MaybeCopyConnectionAttemptsFromSocketOrHandle();
382 382
383 if (IsOrphaned()) { 383 if (IsOrphaned()) {
384 stream_factory_->OnOrphanedJobComplete(this); 384 stream_factory_->OnOrphanedJobComplete(this);
385 } else { 385 } else {
386 request_->Complete(was_npn_negotiated(), protocol_negotiated(), 386 request_->Complete(was_npn_negotiated(), protocol_negotiated(),
387 using_spdy()); 387 using_spdy());
388 request_->OnBidirectionalStreamJobReady( 388 request_->OnBidirectionalStreamJobReady(
389 this, server_ssl_config_, proxy_info_, 389 this, server_ssl_config_, proxy_info_,
390 bidirectional_stream_job_.release()); 390 bidirectional_stream_job_.release());
391 } 391 }
392 // |this| may be deleted after this call. 392 // |this| may be deleted after this call.
393 #else 393 #else
394 DCHECK(false); 394 DCHECK(false);
395 #endif 395 #endif
396 } 396 }
397 397
398 void HttpStreamFactoryImpl::Job::OnNewSpdySessionReadyCallback() { 398 void HttpStreamFactoryImpl::Job::OnNewSpdySessionReadyCallback() {
399 #if defined(ENABLE_BIDIRECTIONAL_STREAM) 399 #if BUILDFLAG(ENABLE_BIDIRECTIONAL_STREAM)
400 DCHECK(stream_.get() || bidirectional_stream_job_.get()); 400 DCHECK(stream_.get() || bidirectional_stream_job_.get());
401 #else 401 #else
402 DCHECK(stream_.get()); 402 DCHECK(stream_.get());
403 #endif 403 #endif
404 DCHECK(!IsPreconnecting()); 404 DCHECK(!IsPreconnecting());
405 DCHECK(using_spdy()); 405 DCHECK(using_spdy());
406 // Note: an event loop iteration has passed, so |new_spdy_session_| may be 406 // Note: an event loop iteration has passed, so |new_spdy_session_| may be
407 // NULL at this point if the SpdySession closed immediately after creation. 407 // NULL at this point if the SpdySession closed immediately after creation.
408 base::WeakPtr<SpdySession> spdy_session = new_spdy_session_; 408 base::WeakPtr<SpdySession> spdy_session = new_spdy_session_;
409 new_spdy_session_.reset(); 409 new_spdy_session_.reset();
410 410
411 MaybeCopyConnectionAttemptsFromSocketOrHandle(); 411 MaybeCopyConnectionAttemptsFromSocketOrHandle();
412 412
413 // TODO(jgraettinger): Notify the factory, and let that notify |request_|, 413 // TODO(jgraettinger): Notify the factory, and let that notify |request_|,
414 // rather than notifying |request_| directly. 414 // rather than notifying |request_| directly.
415 if (IsOrphaned()) { 415 if (IsOrphaned()) {
416 if (spdy_session) { 416 if (spdy_session) {
417 stream_factory_->OnNewSpdySessionReady( 417 stream_factory_->OnNewSpdySessionReady(
418 spdy_session, spdy_session_direct_, server_ssl_config_, proxy_info_, 418 spdy_session, spdy_session_direct_, server_ssl_config_, proxy_info_,
419 was_npn_negotiated(), protocol_negotiated(), using_spdy(), net_log_); 419 was_npn_negotiated(), protocol_negotiated(), using_spdy(), net_log_);
420 } 420 }
421 stream_factory_->OnOrphanedJobComplete(this); 421 stream_factory_->OnOrphanedJobComplete(this);
422 } else { 422 } else {
423 if (for_bidirectional_) { 423 if (for_bidirectional_) {
424 #if defined(ENABLE_BIDIRECTIONAL_STREAM) 424 #if BUILDFLAG(ENABLE_BIDIRECTIONAL_STREAM)
425 DCHECK(bidirectional_stream_job_); 425 DCHECK(bidirectional_stream_job_);
426 request_->OnNewSpdySessionReady(this, /*spdy_http_stream=*/nullptr, 426 request_->OnNewSpdySessionReady(this, /*spdy_http_stream=*/nullptr,
427 std::move(bidirectional_stream_job_), 427 std::move(bidirectional_stream_job_),
428 spdy_session, spdy_session_direct_); 428 spdy_session, spdy_session_direct_);
429 #else 429 #else
430 DCHECK(false); 430 DCHECK(false);
431 #endif 431 #endif
432 432
433 } else { 433 } else {
434 DCHECK(stream_); 434 DCHECK(stream_);
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 if (new_spdy_session_.get()) { 616 if (new_spdy_session_.get()) {
617 base::ThreadTaskRunnerHandle::Get()->PostTask( 617 base::ThreadTaskRunnerHandle::Get()->PostTask(
618 FROM_HERE, base::Bind(&Job::OnNewSpdySessionReadyCallback, 618 FROM_HERE, base::Bind(&Job::OnNewSpdySessionReadyCallback,
619 ptr_factory_.GetWeakPtr())); 619 ptr_factory_.GetWeakPtr()));
620 } else if (stream_factory_->for_websockets_) { 620 } else if (stream_factory_->for_websockets_) {
621 DCHECK(websocket_stream_); 621 DCHECK(websocket_stream_);
622 base::ThreadTaskRunnerHandle::Get()->PostTask( 622 base::ThreadTaskRunnerHandle::Get()->PostTask(
623 FROM_HERE, base::Bind(&Job::OnWebSocketHandshakeStreamReadyCallback, 623 FROM_HERE, base::Bind(&Job::OnWebSocketHandshakeStreamReadyCallback,
624 ptr_factory_.GetWeakPtr())); 624 ptr_factory_.GetWeakPtr()));
625 } else if (for_bidirectional_) { 625 } else if (for_bidirectional_) {
626 #if defined(ENABLE_BIDIRECTIONAL_STREAM) 626 #if BUILDFLAG(ENABLE_BIDIRECTIONAL_STREAM)
627 if (!bidirectional_stream_job_) { 627 if (!bidirectional_stream_job_) {
628 base::ThreadTaskRunnerHandle::Get()->PostTask( 628 base::ThreadTaskRunnerHandle::Get()->PostTask(
629 FROM_HERE, base::Bind(&Job::OnStreamFailedCallback, 629 FROM_HERE, base::Bind(&Job::OnStreamFailedCallback,
630 ptr_factory_.GetWeakPtr(), ERR_FAILED)); 630 ptr_factory_.GetWeakPtr(), ERR_FAILED));
631 } else { 631 } else {
632 base::ThreadTaskRunnerHandle::Get()->PostTask( 632 base::ThreadTaskRunnerHandle::Get()->PostTask(
633 FROM_HERE, base::Bind(&Job::OnBidirectionalStreamJobReadyCallback, 633 FROM_HERE, base::Bind(&Job::OnBidirectionalStreamJobReadyCallback,
634 ptr_factory_.GetWeakPtr())); 634 ptr_factory_.GetWeakPtr()));
635 } 635 }
636 #else 636 #else
(...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after
1207 } 1207 }
1208 1208
1209 int HttpStreamFactoryImpl::Job::SetSpdyHttpStreamOrBidirectionalStreamJob( 1209 int HttpStreamFactoryImpl::Job::SetSpdyHttpStreamOrBidirectionalStreamJob(
1210 base::WeakPtr<SpdySession> session, 1210 base::WeakPtr<SpdySession> session,
1211 bool direct) { 1211 bool direct) {
1212 // TODO(ricea): Restore the code for WebSockets over SPDY once it's 1212 // TODO(ricea): Restore the code for WebSockets over SPDY once it's
1213 // implemented. 1213 // implemented.
1214 if (stream_factory_->for_websockets_) 1214 if (stream_factory_->for_websockets_)
1215 return ERR_NOT_IMPLEMENTED; 1215 return ERR_NOT_IMPLEMENTED;
1216 if (for_bidirectional_) { 1216 if (for_bidirectional_) {
1217 #if defined(ENABLE_BIDIRECTIONAL_STREAM) 1217 #if BUILDFLAG(ENABLE_BIDIRECTIONAL_STREAM)
1218 // TODO(xunjieli): Create QUIC's version of BidirectionalStreamJob. 1218 // TODO(xunjieli): Create QUIC's version of BidirectionalStreamJob.
1219 bidirectional_stream_job_.reset(new BidirectionalStreamSpdyJob(session)); 1219 bidirectional_stream_job_.reset(new BidirectionalStreamSpdyJob(session));
1220 return OK; 1220 return OK;
1221 #else 1221 #else
1222 DCHECK(false); 1222 DCHECK(false);
1223 return ERR_FAILED; 1223 return ERR_FAILED;
1224 #endif 1224 #endif
1225 } 1225 }
1226 1226
1227 // TODO(willchan): Delete this code, because eventually, the 1227 // TODO(willchan): Delete this code, because eventually, the
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
1690 if (connection_->socket()) { 1690 if (connection_->socket()) {
1691 ConnectionAttempts socket_attempts; 1691 ConnectionAttempts socket_attempts;
1692 connection_->socket()->GetConnectionAttempts(&socket_attempts); 1692 connection_->socket()->GetConnectionAttempts(&socket_attempts);
1693 request_->AddConnectionAttempts(socket_attempts); 1693 request_->AddConnectionAttempts(socket_attempts);
1694 } else { 1694 } else {
1695 request_->AddConnectionAttempts(connection_->connection_attempts()); 1695 request_->AddConnectionAttempts(connection_->connection_attempts());
1696 } 1696 }
1697 } 1697 }
1698 1698
1699 } // namespace net 1699 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_stream_factory_impl_job.h ('k') | net/http/http_stream_factory_impl_request.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698