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

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

Issue 665083009: ABANDONED Handle multiple AlternateProtocols for each HostPortPair. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 5 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
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 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 default: 161 default:
162 return LOAD_STATE_IDLE; 162 return LOAD_STATE_IDLE;
163 } 163 }
164 } 164 }
165 165
166 void HttpStreamFactoryImpl::Job::MarkAsAlternate( 166 void HttpStreamFactoryImpl::Job::MarkAsAlternate(
167 const GURL& original_url, 167 const GURL& original_url,
168 AlternateProtocolInfo alternate) { 168 AlternateProtocolInfo alternate) {
169 DCHECK(!original_url_.get()); 169 DCHECK(!original_url_.get());
170 original_url_.reset(new GURL(original_url)); 170 original_url_.reset(new GURL(original_url));
171 alternate_protocol_ = alternate;
171 if (alternate.protocol == QUIC) { 172 if (alternate.protocol == QUIC) {
172 DCHECK(session_->params().enable_quic); 173 DCHECK(session_->params().enable_quic);
173 using_quic_ = true; 174 using_quic_ = true;
174 } 175 }
175 } 176 }
176 177
177 void HttpStreamFactoryImpl::Job::WaitFor(Job* job) { 178 void HttpStreamFactoryImpl::Job::WaitFor(Job* job) {
178 DCHECK_EQ(STATE_NONE, next_state_); 179 DCHECK_EQ(STATE_NONE, next_state_);
179 DCHECK_EQ(STATE_NONE, job->next_state_); 180 DCHECK_EQ(STATE_NONE, job->next_state_);
180 DCHECK(!blocking_job_); 181 DCHECK(!blocking_job_);
(...skipping 1278 matching lines...) Expand 10 before | Expand all | Expand 10 after
1459 void HttpStreamFactoryImpl::Job::MaybeMarkAlternateProtocolBroken() { 1460 void HttpStreamFactoryImpl::Job::MaybeMarkAlternateProtocolBroken() {
1460 if (job_status_ == STATUS_RUNNING || other_job_status_ == STATUS_RUNNING) 1461 if (job_status_ == STATUS_RUNNING || other_job_status_ == STATUS_RUNNING)
1461 return; 1462 return;
1462 1463
1463 bool is_alternate_protocol_job = original_url_.get() != NULL; 1464 bool is_alternate_protocol_job = original_url_.get() != NULL;
1464 if (is_alternate_protocol_job) { 1465 if (is_alternate_protocol_job) {
1465 if (job_status_ == STATUS_BROKEN && other_job_status_ == STATUS_SUCCEEDED) { 1466 if (job_status_ == STATUS_BROKEN && other_job_status_ == STATUS_SUCCEEDED) {
1466 HistogramBrokenAlternateProtocolLocation( 1467 HistogramBrokenAlternateProtocolLocation(
1467 BROKEN_ALTERNATE_PROTOCOL_LOCATION_HTTP_STREAM_FACTORY_IMPL_JOB_ALT); 1468 BROKEN_ALTERNATE_PROTOCOL_LOCATION_HTTP_STREAM_FACTORY_IMPL_JOB_ALT);
1468 session_->http_server_properties()->SetBrokenAlternateProtocol( 1469 session_->http_server_properties()->SetBrokenAlternateProtocol(
1469 HostPortPair::FromURL(*original_url_)); 1470 HostPortPair::FromURL(*original_url_), alternate_protocol_);
1470 } 1471 }
1471 return; 1472 return;
1472 } 1473 }
1473 1474
1474 if (job_status_ == STATUS_SUCCEEDED && other_job_status_ == STATUS_BROKEN) { 1475 if (job_status_ == STATUS_SUCCEEDED && other_job_status_ == STATUS_BROKEN) {
1475 HistogramBrokenAlternateProtocolLocation( 1476 HistogramBrokenAlternateProtocolLocation(
1476 BROKEN_ALTERNATE_PROTOCOL_LOCATION_HTTP_STREAM_FACTORY_IMPL_JOB_MAIN); 1477 BROKEN_ALTERNATE_PROTOCOL_LOCATION_HTTP_STREAM_FACTORY_IMPL_JOB_MAIN);
1477 session_->http_server_properties()->SetBrokenAlternateProtocol( 1478 session_->http_server_properties()->SetBrokenAlternateProtocol(
1478 HostPortPair::FromURL(request_info_.url)); 1479 HostPortPair::FromURL(request_info_.url), alternate_protocol_);
1479 } 1480 }
1480 } 1481 }
1481 1482
1482 } // namespace net 1483 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698