Project: chromium Issues People Development process History Sign in
New issue
Advanced search Search tips
Issue 392575 Implement the Alt-Svc spec
Starred by 10 users Project Member Reported by rch@chromium.org, Jul 9 2014 Back to list
Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Feature


Sign in to add a comment
Comment 1 by wtc@chromium.org, Jul 21 2014
Cc: wtc@chromium.org
Labels: -Type-Bug -Cr-Internals-Network Type-Feature Cr-Internals-Network-HTTP
Owner: jgraettinger@chromium.org
Status: Assigned
Johnny, are you the right person to implement this feature? Who else
is working on SPDY or HTTP 2.0 now?
Assigning to me is reasonable. Thanks
Comment 3 by wtc@chromium.org, Jul 21 2014
Labels: -Cr-Internals-Network-HTTP Cr-Internals-Network-SPDY
Owner: b...@chromium.org
Transferring ownership.
Comment 5 by b...@chromium.org, Oct 1 2014
Status: WontFix
Comment 6 by rch@chromium.org, Oct 1 2014
Labels: Cr-Internals-Network-QUIC
bnc: did you mean to close this? I thought this was something we intend to implement...
Comment 7 by b...@chromium.org, Oct 24 2014
Cc: rch@chromium.org
Draft roadmap:

* Upgrade AlternateProtocolInfo::AlternateProtocolInfo() to take hostname.  Use (protocol, hostname, port) order per Alternate Service specification.  Make sure alternate protocol header gets processed appropriately, using current server's hostname.
* Upgrade HttpServerPropertiesImpl::SetAlternateProtocol() to take hostname.  Use (protocol, hostname, port) order per Alternate Service specification.
* Upgrade HttpServerProperties as well as its clients to support multiple AlternateProtocolInfo entries for each HostPortPair.
* s/protocol/service/
* Make sure to consider hostname in AlternateServiceInfo struct when using an alternate service.
* Process AlternateService frames.

Comment 8 by rch@chromium.org, Oct 24 2014
Status: Assigned
One clarification... Currently Alternate-Protocol support in chrome only allows for a *single* alternative. With Alt-Svc, we need to add support for multiple alternatives. For example:

  Alt-Svc: QUIC=":443",QUIC="mail.google.com:443",h2="mail.google.com:443"
Labels: M-41
Comment 10 by b...@chromium.org, Oct 29 2014
Updated roadmap:

* Handle multiple |AlternateProtocolInfo| entries for each |HostPortPair|.
* |broken_alternate_protocol_map_| and |broken_alternate_protocol_map_| should
keep track of alterate protocols separately.  I would like to only consider the
alternate (protocol, hostname, port) tuple, regardless of which |HostPortPair|
originally pointed the client to it.
* |HttpStreamFactoryImpl::GetAlternateProtocolRequestFor| should return
multiple alternate protocols.
* |HttpStreamFactoryImpl::RequestStreamInternal| should start multiple
alternate jobs.
* |HttpStreamFactoryImplJob::MaybeMarkAlternateProtocolBroken| should find out
which alternate protocol to mark as broken.
* Should |was_alternate_protocol_recently_broken| in
|QuicStreamFactory::Create| refer to a specific alternate protocol
associated with |host_port_pair|?  Which one?  Do we need one |Job| for each?
* |QuicStreamFactory::ProcessGoingAwaySession| should work with actual QUIC
protocol used.
* Add hostname to |AlternateProtocolInfo|.  Use (protocol, hostname, port) order
per Alternate Service specification.
* Upgrade |HttpServerProperties| members to take hostname.
* Make use to connect to the right host when using AlternateService.
* s/protocol/service/
* Upgrade persistent settings loading and saving in
|HttpServerPropertiesManager|.
* Process AlternateService frames.
* Add tests as appropriate.

Project Member Comment 11 by bugdroid1@chromium.org, Nov 6 2014
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cbd55d5f181ec117dda702fcc0e8bf5f87b78379

commit cbd55d5f181ec117dda702fcc0e8bf5f87b78379
Author: bnc <bnc@chromium.org>
Date: Thu Nov 06 19:50:40 2014

Introduce AlternateProtocolInfo.is_broken.

Introduce bool AlternateProtocolInfo.is_broken and remove
ALTERNATE_PROTOCOL_BROKEN from enum AlternateProtocol.  This allows
AlternateProtocolInfo to keep track of which protocol is broken.  Note that the
port does not identify the protocol: most notably, SPDY and QUIC can use the
same port, but one uses TCP, the other UDP.

This change is essential if we want to keep track of multiple
AlternateProtocolInfo structs for each server, in preparation for alternate
service support.

Note that this change stops writing out broken protocols to prefs in
HttpServerPropertiesManager::UpdatePrefsOnPrefThread().  This is okay, because
HttpServerPropertiesManager::UpdateCacheFromPrefsOnPrefThread() used to refuse
to load broken ones already, see IsAlternateProtocolValid(protocol) in line 436.

BUG=392575

Review URL: https://codereview.chromium.org/701163002

Cr-Commit-Position: refs/heads/master@{#303075}

[modify] https://chromium.googlesource.com/chromium/src.git/+/cbd55d5f181ec117dda702fcc0e8bf5f87b78379/net/http/http_network_transaction_unittest.cc
[modify] https://chromium.googlesource.com/chromium/src.git/+/cbd55d5f181ec117dda702fcc0e8bf5f87b78379/net/http/http_server_properties.cc
[modify] https://chromium.googlesource.com/chromium/src.git/+/cbd55d5f181ec117dda702fcc0e8bf5f87b78379/net/http/http_server_properties.h
[modify] https://chromium.googlesource.com/chromium/src.git/+/cbd55d5f181ec117dda702fcc0e8bf5f87b78379/net/http/http_server_properties_impl.cc
[modify] https://chromium.googlesource.com/chromium/src.git/+/cbd55d5f181ec117dda702fcc0e8bf5f87b78379/net/http/http_server_properties_impl_unittest.cc
[modify] https://chromium.googlesource.com/chromium/src.git/+/cbd55d5f181ec117dda702fcc0e8bf5f87b78379/net/http/http_server_properties_manager.cc
[modify] https://chromium.googlesource.com/chromium/src.git/+/cbd55d5f181ec117dda702fcc0e8bf5f87b78379/net/http/http_stream_factory.cc
[modify] https://chromium.googlesource.com/chromium/src.git/+/cbd55d5f181ec117dda702fcc0e8bf5f87b78379/net/http/http_stream_factory_impl.cc
[modify] https://chromium.googlesource.com/chromium/src.git/+/cbd55d5f181ec117dda702fcc0e8bf5f87b78379/net/quic/quic_network_transaction_unittest.cc

Labels: -M-41 M-42 MovedFrom-41
Moving all non essential bugs to the next Milestone.
Project Member Comment 13 by bugdroid1@chromium.org, Jan 27 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e5213fce048c62b058e9c3c9b9906cc2d0af182b

commit e5213fce048c62b058e9c3c9b9906cc2d0af182b
Author: bnc <bnc@chromium.org>
Date: Tue Jan 27 01:43:22 2015

Modify SetAlternateProtocol logging behavior.

Modify SetAlternateProtocol() behavior with respect to logging and histograms, by
ignoring alternate protocol being shadowed by |g_forced_alternate_protocol| or
being inactive due to too high probability threshold.

Also clean up HasAlternateProtocol() and GetAlternateProtocol().

BUG=392575

Review URL: https://codereview.chromium.org/858433004

Cr-Commit-Position: refs/heads/master@{#313197}

[modify] http://crrev.com/e5213fce048c62b058e9c3c9b9906cc2d0af182b/net/http/http_server_properties_impl.cc
[modify] http://crrev.com/e5213fce048c62b058e9c3c9b9906cc2d0af182b/net/http/http_server_properties_impl.h

Project Member Comment 14 by bugdroid1@chromium.org, Jan 30 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1102b557d0fc13866a67a11d570b740e5528fb4e

commit 1102b557d0fc13866a67a11d570b740e5528fb4e
Author: bnc <bnc@chromium.org>
Date: Fri Jan 30 20:11:01 2015

Lint.

Driveby lint while working on https://crrev.com/665083009.

* Remove redundant net:: namespace qualifiers.
* Remove one redundant line.
* Change probability literals from int to float.
* Fix typos in comments.
* Add https to one link in a comment.
* git cl format to fix one indent and to reduce number of lines.

BUG=392575

Review URL: https://codereview.chromium.org/882973006

Cr-Commit-Position: refs/heads/master@{#313971}

[modify] http://crrev.com/1102b557d0fc13866a67a11d570b740e5528fb4e/net/http/http_network_transaction_unittest.cc
[modify] http://crrev.com/1102b557d0fc13866a67a11d570b740e5528fb4e/net/http/http_server_properties_impl.cc
[modify] http://crrev.com/1102b557d0fc13866a67a11d570b740e5528fb4e/net/http/http_server_properties_impl_unittest.cc
[modify] http://crrev.com/1102b557d0fc13866a67a11d570b740e5528fb4e/net/http/http_server_properties_manager.cc
[modify] http://crrev.com/1102b557d0fc13866a67a11d570b740e5528fb4e/net/http/http_server_properties_manager_unittest.cc
[modify] http://crrev.com/1102b557d0fc13866a67a11d570b740e5528fb4e/net/http/http_stream_factory_impl.cc
[modify] http://crrev.com/1102b557d0fc13866a67a11d570b740e5528fb4e/net/http/http_stream_factory_impl_unittest.cc
[modify] http://crrev.com/1102b557d0fc13866a67a11d570b740e5528fb4e/net/quic/quic_stream_factory.cc

Project Member Comment 15 by bugdroid1@chromium.org, Jan 30 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c45e09b004eb4fe3f317052c072f6173c1e6986c

commit c45e09b004eb4fe3f317052c072f6173c1e6986c
Author: bnc <bnc@chromium.org>
Date: Fri Jan 30 22:44:50 2015

Change GetCanonicalSuffix() interface.

This CL changes the argument of GetCanonicalSuffix() from HostPortPair to
std::string (both const&) to better document the fact that GetCanonicalSuffix
only operates on that field.

BUG=392575

Review URL: https://codereview.chromium.org/868753007

Cr-Commit-Position: refs/heads/master@{#314014}

[modify] http://crrev.com/c45e09b004eb4fe3f317052c072f6173c1e6986c/net/http/http_server_properties_impl.cc
[modify] http://crrev.com/c45e09b004eb4fe3f317052c072f6173c1e6986c/net/http/http_server_properties_impl.h
[modify] http://crrev.com/c45e09b004eb4fe3f317052c072f6173c1e6986c/net/http/http_server_properties_impl_unittest.cc
[modify] http://crrev.com/c45e09b004eb4fe3f317052c072f6173c1e6986c/net/http/http_server_properties_manager.cc

Project Member Comment 16 by bugdroid1@chromium.org, Feb 2 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/97aff32af22e1b9117fa5ad13c3cdaf5532a5509

commit 97aff32af22e1b9117fa5ad13c3cdaf5532a5509
Author: bnc <bnc@chromium.org>
Date: Mon Feb 02 20:17:03 2015

Add AlternateProtocolInfo to HttpStreamFactoryImpl::Job.

Add AlternateProtocolInfo member to HttpStreamFactoryImpl::Job.  Add
AlternateProtocolInfo argument to constructor, remove it from MarkAsAlternate.
This will be necessary in MaybeMarkAlternateProtocolBroken to pass it on to
SetBrokenAlternateProtocol().  See https://crrev.com/665083009 for context.

BUG=392575

Review URL: https://codereview.chromium.org/871753006

Cr-Commit-Position: refs/heads/master@{#314180}

[modify] http://crrev.com/97aff32af22e1b9117fa5ad13c3cdaf5532a5509/net/http/http_server_properties.h
[modify] http://crrev.com/97aff32af22e1b9117fa5ad13c3cdaf5532a5509/net/http/http_stream_factory_impl_job.cc
[modify] http://crrev.com/97aff32af22e1b9117fa5ad13c3cdaf5532a5509/net/http/http_stream_factory_impl_job.h

Project Member Comment 17 by bugdroid1@chromium.org, Feb 3 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3c255331e787370ef99f38319ce2d812a89f5b82

commit 3c255331e787370ef99f38319ce2d812a89f5b82
Author: bnc <bnc@chromium.org>
Date: Tue Feb 03 23:12:01 2015

Remove HasAlternateProtocol().

If GetAlternateProtocol() is called but there is no alternate protocol, it
now returns one with UNINITIALIZED_ALTERNATE_PROTOCOL.

See https://crrev.com/665083009 for the context of this change and how draft
future changes might rely on this CL.

BUG=392575

Review URL: https://codereview.chromium.org/874603004

Cr-Commit-Position: refs/heads/master@{#314428}

[modify] http://crrev.com/3c255331e787370ef99f38319ce2d812a89f5b82/net/http/http_network_transaction_unittest.cc
[modify] http://crrev.com/3c255331e787370ef99f38319ce2d812a89f5b82/net/http/http_server_properties.h
[modify] http://crrev.com/3c255331e787370ef99f38319ce2d812a89f5b82/net/http/http_server_properties_impl.cc
[modify] http://crrev.com/3c255331e787370ef99f38319ce2d812a89f5b82/net/http/http_server_properties_impl.h
[modify] http://crrev.com/3c255331e787370ef99f38319ce2d812a89f5b82/net/http/http_server_properties_impl_unittest.cc
[modify] http://crrev.com/3c255331e787370ef99f38319ce2d812a89f5b82/net/http/http_server_properties_manager.cc
[modify] http://crrev.com/3c255331e787370ef99f38319ce2d812a89f5b82/net/http/http_server_properties_manager.h
[modify] http://crrev.com/3c255331e787370ef99f38319ce2d812a89f5b82/net/http/http_server_properties_manager_unittest.cc
[modify] http://crrev.com/3c255331e787370ef99f38319ce2d812a89f5b82/net/http/http_stream_factory.cc
[modify] http://crrev.com/3c255331e787370ef99f38319ce2d812a89f5b82/net/http/http_stream_factory_impl.cc
[modify] http://crrev.com/3c255331e787370ef99f38319ce2d812a89f5b82/net/quic/quic_network_transaction_unittest.cc
[modify] http://crrev.com/3c255331e787370ef99f38319ce2d812a89f5b82/net/quic/quic_stream_factory.cc

Project Member Comment 18 by bugdroid1@chromium.org, Feb 5 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4d5b877dcab754769ee594a043c75e9bcf27d776

commit 4d5b877dcab754769ee594a043c75e9bcf27d776
Author: bnc <bnc@chromium.org>
Date: Thu Feb 05 16:19:39 2015

Add HttpServerPropertiesManagerTest.UpdateCacheWithPrefs.

Add HttpServerPropertiesManagerTest.UpdateCacheWithPrefs to test that
preferences like AlternateProtocol, SupportsQuic, and ServerNetworkStats are
saved to PrefService properly.

BUG=392575

Review URL: https://codereview.chromium.org/893403005

Cr-Commit-Position: refs/heads/master@{#314822}

[modify] http://crrev.com/4d5b877dcab754769ee594a043c75e9bcf27d776/net/http/http_server_properties_manager_unittest.cc

Project Member Comment 19 by bugdroid1@chromium.org, Feb 5 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9f2a7c417364a965f99c3e1948fd948d07b316cd

commit 9f2a7c417364a965f99c3e1948fd948d07b316cd
Author: bnc <bnc@chromium.org>
Date: Thu Feb 05 18:58:00 2015

Add AlternateProtocol to broken_altproto_list_ and map_.

Add AlternateProtocol (port and protocol) to
HttpServerPropertiesImpl::broken_alternate_protocol_list_ and
HttpServerPropertiesImpl::broken_alternate_protocol_list_ in preparation for
supporting multiple AlternateProtocols per host.  See draft at
https://crrev.com/665083009 for how this fits into a larger picture.

BUG=392575

Review URL: https://codereview.chromium.org/888943003

Cr-Commit-Position: refs/heads/master@{#314843}

[modify] http://crrev.com/9f2a7c417364a965f99c3e1948fd948d07b316cd/net/http/http_server_properties_impl.cc
[modify] http://crrev.com/9f2a7c417364a965f99c3e1948fd948d07b316cd/net/http/http_server_properties_impl.h

Project Member Comment 20 by bugdroid1@chromium.org, Feb 5 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/54e76ef7eff2dae72dbac1c0f7c39aad467a9838

commit 54e76ef7eff2dae72dbac1c0f7c39aad467a9838
Author: bnc <bnc@chromium.org>
Date: Thu Feb 05 21:57:55 2015

Refactor alternate protocol dictionary parsing.

This CL breaks out into its own function the parsing of a DictionaryValue to
AlternateProtocolInfo.  This is only called once now, but as soon as we start
storing multiple entries per server, we'll need to call it multiple times.  See
https://codereview.chromium.org/665083009/#ps460001.

BUG=392575

Review URL: https://codereview.chromium.org/897313002

Cr-Commit-Position: refs/heads/master@{#314890}

[modify] http://crrev.com/54e76ef7eff2dae72dbac1c0f7c39aad467a9838/net/http/http_server_properties_manager.cc
[modify] http://crrev.com/54e76ef7eff2dae72dbac1c0f7c39aad467a9838/net/http/http_server_properties_manager.h

Labels: -M-42 MovedFrom-42
[AUTO] This issue has already been moved once and is lower than Priority 1,therefore removing mstone.
Labels: -Cr-Internals-Network-SPDY Cr-Internals-Network-HTTP2
Migrate from Cr-Internals-Network-SPDY to Cr-Internals-Network-HTTP2
Project Member Comment 24 by bugdroid1@chromium.org, Mar 26 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6f210fa8372d05f03450e52d45deb194596b65f1

commit 6f210fa8372d05f03450e52d45deb194596b65f1
Author: bnc <bnc@chromium.org>
Date: Thu Mar 26 11:28:11 2015

Add unittest for canonical host override.

Currently, when adding an alternative service with a new host, that host will
become the canonical host (if appropriate), override previous canonical hosts
for the same domain.  This CL adds a test to document this behavior.

BUG=392575

Review URL: https://codereview.chromium.org/1006813015

Cr-Commit-Position: refs/heads/master@{#322356}

[modify] http://crrev.com/6f210fa8372d05f03450e52d45deb194596b65f1/net/http/http_server_properties_impl_unittest.cc

Project Member Comment 25 by bugdroid1@chromium.org, Mar 26 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ae8db840dac8d0c453355d3d922c91adfb61df8f

commit ae8db840dac8d0c453355d3d922c91adfb61df8f
Author: bnc <bnc@chromium.org>
Date: Thu Mar 26 20:13:50 2015

Confirm QUIC alternative service upon success.

A non-broken but recently broken QUIC alternative service does not race for 0RTT
(because it is recently broken) but is still used (because it is not broken).
Upon successful connection, the service should be confirmed (marked as not
recently broken so that it can be used next time for 0RTT).

This CL adds this functionality and a test for it.  I locally verified that the
test fails without the rest of the change.

BUG=392575

Review URL: https://codereview.chromium.org/1035713003

Cr-Commit-Position: refs/heads/master@{#322455}

[modify] http://crrev.com/ae8db840dac8d0c453355d3d922c91adfb61df8f/net/quic/quic_network_transaction_unittest.cc
[modify] http://crrev.com/ae8db840dac8d0c453355d3d922c91adfb61df8f/net/quic/quic_stream_factory.cc

Project Member Comment 26 by bugdroid1@chromium.org, Mar 31 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4988e439c1a14779f32b4dc9c289d9e4bad467af

commit 4988e439c1a14779f32b4dc9c289d9e4bad467af
Author: bnc <bnc@chromium.org>
Date: Tue Mar 31 03:06:25 2015

Introduce AlternativeServiceInfo.

* Introduce AlternativeServiceInfo and use it instead of AlternateProtocolInfo
  in HttpServerPropertiesImpl.
* Change language in method and variable names and comments to consistently talk
  about alternative service instead of alternate protocol (except for threshold
  related occurrences).
* Update HttpServerPropertiesManager to save by key "alternative_service"
  instead of "alternate_protocol", while still being able to read old
  preferences.
* Add TODO(bnc) at a couple of places.

BUG=392575

Review URL: https://codereview.chromium.org/1043973002

Cr-Commit-Position: refs/heads/master@{#322968}

[modify] http://crrev.com/4988e439c1a14779f32b4dc9c289d9e4bad467af/net/base/net_log_util.cc
[modify] http://crrev.com/4988e439c1a14779f32b4dc9c289d9e4bad467af/net/http/http_network_transaction_unittest.cc
[modify] http://crrev.com/4988e439c1a14779f32b4dc9c289d9e4bad467af/net/http/http_server_properties.cc
[modify] http://crrev.com/4988e439c1a14779f32b4dc9c289d9e4bad467af/net/http/http_server_properties.h
[modify] http://crrev.com/4988e439c1a14779f32b4dc9c289d9e4bad467af/net/http/http_server_properties_impl.cc
[modify] http://crrev.com/4988e439c1a14779f32b4dc9c289d9e4bad467af/net/http/http_server_properties_impl.h
[modify] http://crrev.com/4988e439c1a14779f32b4dc9c289d9e4bad467af/net/http/http_server_properties_impl_unittest.cc
[modify] http://crrev.com/4988e439c1a14779f32b4dc9c289d9e4bad467af/net/http/http_server_properties_manager.cc
[modify] http://crrev.com/4988e439c1a14779f32b4dc9c289d9e4bad467af/net/http/http_server_properties_manager.h
[modify] http://crrev.com/4988e439c1a14779f32b4dc9c289d9e4bad467af/net/http/http_server_properties_manager_unittest.cc
[modify] http://crrev.com/4988e439c1a14779f32b4dc9c289d9e4bad467af/net/quic/quic_stream_factory.cc

Project Member Comment 27 by bugdroid1@chromium.org, Apr 3 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/52d6e54d69b063b4672ace69a94fe513d806d51b

commit 52d6e54d69b063b4672ace69a94fe513d806d51b
Author: bnc <bnc@chromium.org>
Date: Fri Apr 03 13:05:29 2015

Introduce HttpStreamFactoryImpl::Job::IsAlternate.

This is refactoring/code cleanup, no functional change intended.  This relies on
the class invariant that (a HttpStreamFactoryImpl::Job instance represents an
alternate job) iff (original_url_ is set) iff (alternative_service_ is
initialized).

Patch Set 1:  Introduce Job::IsAlternate().
Patch Set 2:  Change IsAlternate to rely on |alternative_service_| instead.
Patch Set 3:  Change |orginal_url_| type from scoped_ptr<GURL> to GURL.
Patch Set 4:  Fix typo in ReportJobSucceededForRequest.
Patch Set 5:  s/MaybeMarkAlternateProtocolBroken/MaybeMarkAlternativeServiceBroken/g

BUG=392575

Review URL: https://codereview.chromium.org/1057913003

Cr-Commit-Position: refs/heads/master@{#323736}

[modify] http://crrev.com/52d6e54d69b063b4672ace69a94fe513d806d51b/net/http/http_stream_factory_impl_job.cc
[modify] http://crrev.com/52d6e54d69b063b4672ace69a94fe513d806d51b/net/http/http_stream_factory_impl_job.h
[modify] http://crrev.com/52d6e54d69b063b4672ace69a94fe513d806d51b/net/http/http_stream_factory_impl_request.cc

Comment 28 by b...@chromium.org, Apr 6 2015
Blockedon: chromium:438263
Comment 29 by b...@chromium.org, Apr 6 2015
Blockedon: chromium:474217
Project Member Comment 30 by bugdroid1@chromium.org, Apr 27 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/62891a5fe6637cb5d07b2ecc137d145969de6db6

commit 62891a5fe6637cb5d07b2ecc137d145969de6db6
Author: bnc <bnc@chromium.org>
Date: Mon Apr 27 14:14:12 2015

Rename methods and members and const variables to alternative service.

Rename methods and members and const variables from "alternate protocol" to
"alternative service":

* alternate_protocol_probability_threshold_ to
  alternative_service_probability_threshold_ in HttpServerPropertiesImpl,
* switches::kAlternateProtocolProbabilityThreshold to
  switches::kAlternativeServiceProbabilityThreshold,
* test names in IOThreadTest,
* SetAlternateProtocolProbabilityThreshold() to
  SetAlternativeServiceProbabilityThreshold(),
* GetAlternateProtocolProbabilityThreshold() to
  GetAlternativeServiceProbabilityThreshold(),
* remove obsolete force-alt-protocols from comments in io_thread.cc,
* "Alternate Protocol" to "Alternative Service" in NetInternals user facing
  QUIC page,
* alternate_protocol_probability_threshold to
  alternative_service_probability_threshold in IOThread::Globals and
  HttpNetworkSession::Params.

BUG=392575

Review URL: https://codereview.chromium.org/1091283007

Cr-Commit-Position: refs/heads/master@{#327038}

[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/chrome/browser/io_thread.cc
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/chrome/browser/io_thread.h
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/chrome/browser/io_thread_unittest.cc
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/chrome/browser/resources/net_internals/quic_view.html
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/chrome/common/chrome_switches.cc
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/chrome/common/chrome_switches.h
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/components/cronet/android/cronet_url_request_context_adapter.cc
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/components/cronet/android/url_request_context_adapter.cc
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/net/http/http_network_session.cc
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/net/http/http_network_session.h
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/net/http/http_server_properties.h
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/net/http/http_server_properties_impl.cc
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/net/http/http_server_properties_impl.h
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/net/http/http_server_properties_impl_unittest.cc
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/net/http/http_server_properties_manager.cc
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/net/http/http_server_properties_manager.h
[modify] http://crrev.com/62891a5fe6637cb5d07b2ecc137d145969de6db6/net/quic/quic_network_transaction_unittest.cc

Comment 31 by laforge@google.com, Apr 28 2015
Cc: -wtc@chromium.org
Project Member Comment 32 by bugdroid1@chromium.org, Jun 10 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d172e66b4c118176070cabb53afc2f9bff637c1b

commit d172e66b4c118176070cabb53afc2f9bff637c1b
Author: bnc <bnc@chromium.org>
Date: Wed Jun 10 11:22:45 2015

Use struct AlternativeService in OnAltSvc() and OnSpdyAltSvc() methods.

Use struct AlternativeService parameter in
SpdyFramerVisitorInterface::OnAltSvc() and SpdyDispatcher::OnSpdyAltSvc()
methods.  This is in preparation for handling multiple alternative services that
a single HTTP/1.1 header field or HTTP/2 frame can carry.

This CL lands server change 94293057 by bnc.

BUG=392575

Review URL: https://codereview.chromium.org/1171183002

Cr-Commit-Position: refs/heads/master@{#333717}

[modify] http://crrev.com/d172e66b4c118176070cabb53afc2f9bff637c1b/net/quic/quic_headers_stream_test.cc
[modify] http://crrev.com/d172e66b4c118176070cabb53afc2f9bff637c1b/net/spdy/mock_spdy_framer_visitor.h
[modify] http://crrev.com/d172e66b4c118176070cabb53afc2f9bff637c1b/net/spdy/spdy_alt_svc_wire_format.cc
[modify] http://crrev.com/d172e66b4c118176070cabb53afc2f9bff637c1b/net/spdy/spdy_alt_svc_wire_format.h
[modify] http://crrev.com/d172e66b4c118176070cabb53afc2f9bff637c1b/net/spdy/spdy_alt_svc_wire_format_test.cc
[modify] http://crrev.com/d172e66b4c118176070cabb53afc2f9bff637c1b/net/spdy/spdy_framer.cc
[modify] http://crrev.com/d172e66b4c118176070cabb53afc2f9bff637c1b/net/spdy/spdy_framer.h
[modify] http://crrev.com/d172e66b4c118176070cabb53afc2f9bff637c1b/net/spdy/spdy_framer_test.cc
[modify] http://crrev.com/d172e66b4c118176070cabb53afc2f9bff637c1b/net/spdy/spdy_protocol.cc
[modify] http://crrev.com/d172e66b4c118176070cabb53afc2f9bff637c1b/net/spdy/spdy_protocol.h

Project Member Comment 33 by bugdroid1@chromium.org, Jun 18 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e5e37f81e24845f03b43abdb964cd640ca637773

commit e5e37f81e24845f03b43abdb964cd640ca637773
Author: bnc <bnc@chromium.org>
Date: Thu Jun 18 18:17:57 2015

Remove LOG << "Changing alternative service".

Remove LOG(WARNING) for changing alternative service in preparation for multiple
alternative services per host.
* This statement was not entirely correct to start with, because it also also
  got logged when no stored alternative service got modified, only the one added
  shadowed the alternative service of the canonical host.
* With multiple alternative services per host, adding one to a host will not
  change an existing one.

BUG=392575

Review URL: https://codereview.chromium.org/1188543002

Cr-Commit-Position: refs/heads/master@{#335079}

[modify] http://crrev.com/e5e37f81e24845f03b43abdb964cd640ca637773/net/http/http_server_properties_impl.cc

Project Member Comment 34 by bugdroid1@chromium.org, Jun 24 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8784b360bebebbe19e362cf487457513eb4eadb7

commit 8784b360bebebbe19e362cf487457513eb4eadb7
Author: bnc <bnc@chromium.org>
Date: Wed Jun 24 11:48:39 2015

Do not unbreak alternative service in ClearAlternativeService.

Do not unbreak alternative service in
HttpServerProperties::ClearAlternativeService().

* This is wrong, because only because an alternative service is not mapped to
  one origin any longer, if it was broken, it remains broken and should not be
  used for other origins.
* QuicStreamFactory::ProcessGoingAwaySession() used to call
  ClearAlternativeService(), and right after that, SetAlternativeService, to
  mark an alternative service recently broken.  Now QuicStreamFactory uses
  MarkAlternativeServiceRecentlyBroken calls instead, so this behavior in
  ClearAlternativeService is not required any more.
* Note that despite what the TODO comment says, broken alternative services
  should remain in the mapping (until explicitly cleared by
  ClearAlternativeService).

BUG=392575

Review URL: https://codereview.chromium.org/1198363003

Cr-Commit-Position: refs/heads/master@{#335907}

[modify] http://crrev.com/8784b360bebebbe19e362cf487457513eb4eadb7/net/http/http_server_properties_impl.cc
[modify] http://crrev.com/8784b360bebebbe19e362cf487457513eb4eadb7/net/http/http_server_properties_impl_unittest.cc

Project Member Comment 35 by bugdroid1@chromium.org, Jun 25 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/37a0555d240f511282260f77a1b694b407b07198

commit 37a0555d240f511282260f77a1b694b407b07198
Author: bnc <bnc@chromium.org>
Date: Thu Jun 25 11:20:47 2015

DCHECK that hostname is not empty in MarkAlternativeServiceBroken.

The concept of brokenness for alternative services has been decoupled from the
origin to alternative service mapping.  MarkAlternativeServiceBroken marks an
actual alternative service broken by itself, not in relation to any particular
origin.  Therefore callers are expected to pass an alternative service with a
non-empty hostname.  (Empty hostnames are only used in the mapping to signify
"default host", which is relevant when alternative services of a canonical host
is used for other origins.)  This CL adds a DCHECK to document that.

BUG=392575

Review URL: https://codereview.chromium.org/1203233002

Cr-Commit-Position: refs/heads/master@{#336123}

[modify] http://crrev.com/37a0555d240f511282260f77a1b694b407b07198/net/http/http_server_properties_impl.cc

Cc: igrigo...@chromium.org
Project Member Comment 37 by bugdroid1@chromium.org, Jun 25 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eb2e6601f1851335bbef50127805d5c9ed4f92db

commit eb2e6601f1851335bbef50127805d5c9ed4f92db
Author: bnc <bnc@chromium.org>
Date: Thu Jun 25 14:28:28 2015

Set alternative service even if it is broken.

Modify HttpServerPropertiesImpl::SetAlternativeService() not to ignore a broken
alternative service.  This is consistent with the current behavior of keeping
broken alternative services in the mapping, and of refusing to use the
alternative service of a canonical host if the origin has an alternative
service, even if it is broken.  Both of these show that broken alternative
services have a significance and thus should not be ignored as input of
SetAlternativeService.

BUG=392575

Review URL: https://codereview.chromium.org/1205633002

Cr-Commit-Position: refs/heads/master@{#336145}

[modify] http://crrev.com/eb2e6601f1851335bbef50127805d5c9ed4f92db/net/http/http_server_properties_impl.cc
[modify] http://crrev.com/eb2e6601f1851335bbef50127805d5c9ed4f92db/net/http/http_server_properties_impl_unittest.cc

Comment 38 by b...@chromium.org, Jun 29 2015
Blockedon: chromium:505413
Project Member Comment 39 by bugdroid1@chromium.org, Jun 29 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a3542c2eb9d3760800d718c51eb9f573a42c6b42

commit a3542c2eb9d3760800d718c51eb9f573a42c6b42
Author: bnc <bnc@chromium.org>
Date: Mon Jun 29 13:18:13 2015

Pretty print AlternativeService in test macros.

Implement operator<<(std::ostream&, const AlternativeService&) so that when
EXPECT_EQ or ASSERT_EQ fails between two AlternativeService structs, the test
output contains protocol names and hostnames pretty printed, instead of a binary
blob including useless things like the memory address of where std::string
stores the hostname.

Currently used in AlternateProtocolServerPropertiesTest.BrokenShadowsCanonical
only, but more tests involving EXPECT_EQ between AlternativeService structs are
coming.

BUG=392575

Review URL: https://codereview.chromium.org/1212813006

Cr-Commit-Position: refs/heads/master@{#336551}

[modify] http://crrev.com/a3542c2eb9d3760800d718c51eb9f573a42c6b42/net/http/http_server_properties.cc
[modify] http://crrev.com/a3542c2eb9d3760800d718c51eb9f573a42c6b42/net/http/http_server_properties.h

Project Member Comment 40 by bugdroid1@chromium.org, Jun 29 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/518e46bc703661e7152312a9028c6a1ca13a3fa6

commit 518e46bc703661e7152312a9028c6a1ca13a3fa6
Author: grt <grt@chromium.org>
Date: Mon Jun 29 13:56:55 2015

Revert of Pretty print AlternativeService in test macros. (patchset #1 id:1 of https://codereview.chromium.org/1212813006/)

Reason for revert:
Introduced new static initializers:

# http_server_properties.cc _GLOBAL__sub_I_http_server_properties.cc+0x10
# http_server_properties.cc std::ios_base::Init::Init()@plt
# http_server_properties.cc __cxa_atexit@plt [registers a dtor to run at exit]

Original issue's description:
> Pretty print AlternativeService in test macros.
>
> Implement operator<<(std::ostream&, const AlternativeService&) so that when
> EXPECT_EQ or ASSERT_EQ fails between two AlternativeService structs, the test
> output contains protocol names and hostnames pretty printed, instead of a binary
> blob including useless things like the memory address of where std::string
> stores the hostname.
>
> Currently used in AlternateProtocolServerPropertiesTest.BrokenShadowsCanonical
> only, but more tests involving EXPECT_EQ between AlternativeService structs are
> coming.
>
> BUG=392575
>
> Committed: https://crrev.com/a3542c2eb9d3760800d718c51eb9f573a42c6b42
> Cr-Commit-Position: refs/heads/master@{#336551}

TBR=rch@chromium.org,bnc@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=392575

Review URL: https://codereview.chromium.org/1218813005

Cr-Commit-Position: refs/heads/master@{#336556}

[modify] http://crrev.com/518e46bc703661e7152312a9028c6a1ca13a3fa6/net/http/http_server_properties.cc
[modify] http://crrev.com/518e46bc703661e7152312a9028c6a1ca13a3fa6/net/http/http_server_properties.h

Project Member Comment 41 by bugdroid1@chromium.org, Jun 30 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7dc44629216042a30c3c2aa626ec3b47e10ad8b4

commit 7dc44629216042a30c3c2aa626ec3b47e10ad8b4
Author: bnc <bnc@chromium.org>
Date: Tue Jun 30 11:27:55 2015

Pretty print AlternativeService in test macros.

Implement PrintTo(const AlternativeService&, std::ostream*) so that when
EXPECT_EQ or ASSERT_EQ fails between two AlternativeService structs, the test
output contains protocol names and hostnames pretty printed, instead of a binary
blob including useless things like the memory address of where std::string
stores the hostname.  See src/testing/gtest/include/gtest/gtest-printers.h for
more information.

Currently used in AlternateProtocolServerPropertiesTest.BrokenShadowsCanonical
only, but more tests involving EXPECT_EQ between AlternativeService structs are
coming.

An earlier version of this CL landed at https://crrev.com/1212813006 and got
reverted because on iOS, the helper function required registering an ataxit
handler.  This version does things differently by
 * using PrintTo instead of operator<<, just because this is listed first in the
   comments in gtest-printers.h;
 * defining the function in http_server_properties_impl_unittests.cc instead of
   declaring it in http_server_properties.h with NET_EXPORT, this will make sure
   that no static initializers will be introduced.

Note, however, that this helper function cannot be defined in anonymous
namespace, gtest would not find it there.

BUG=392575

Review URL: https://codereview.chromium.org/1213133003

Cr-Commit-Position: refs/heads/master@{#336763}

[modify] http://crrev.com/7dc44629216042a30c3c2aa626ec3b47e10ad8b4/net/http/http_server_properties_impl_unittest.cc

Project Member Comment 42 by bugdroid1@chromium.org, Jul 8 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d9b132e46d02ec32dc3b2416d62d6b4d7fa03730

commit d9b132e46d02ec32dc3b2416d62d6b4d7fa03730
Author: bnc <bnc@chromium.org>
Date: Wed Jul 08 05:16:10 2015

Implement multiple alternative services per origin.

HttpServerProperties:
 * Introduce AlternativeServiceVector and AlternativeServiceInfoVector.
 * Change AlternativeServiceMap typedef.

HttpServerPropertiesImpl:
 * Add bool SetAlternativeServices.
 * Change SetAlternativeService return type to bool.
 * Replace GetAlternativeService with GetAlternativeServices.
 * Replace ClearAlternativeService with ClearAlternativeServices.

HttpServerPropertiesManager:
 * Implement saving and loading preferences to support multiple alternative
   services per origin.

HttpStreamFactory and QuicStreamFactory:
 * Use first alternative service for now; more work to be done here.

Also update misc clients and add and update unittests.

BUG=392575

Review URL: https://codereview.chromium.org/1216703002

Cr-Commit-Position: refs/heads/master@{#337772}

[modify] http://crrev.com/d9b132e46d02ec32dc3b2416d62d6b4d7fa03730/net/http/http_network_transaction_unittest.cc
[modify] http://crrev.com/d9b132e46d02ec32dc3b2416d62d6b4d7fa03730/net/http/http_server_properties.h
[modify] http://crrev.com/d9b132e46d02ec32dc3b2416d62d6b4d7fa03730/net/http/http_server_properties_impl.cc
[modify] http://crrev.com/d9b132e46d02ec32dc3b2416d62d6b4d7fa03730/net/http/http_server_properties_impl.h
[modify] http://crrev.com/d9b132e46d02ec32dc3b2416d62d6b4d7fa03730/net/http/http_server_properties_impl_unittest.cc
[modify] http://crrev.com/d9b132e46d02ec32dc3b2416d62d6b4d7fa03730/net/http/http_server_properties_manager.cc
[modify] http://crrev.com/d9b132e46d02ec32dc3b2416d62d6b4d7fa03730/net/http/http_server_properties_manager.h
[modify] http://crrev.com/d9b132e46d02ec32dc3b2416d62d6b4d7fa03730/net/http/http_server_properties_manager_unittest.cc
[modify] http://crrev.com/d9b132e46d02ec32dc3b2416d62d6b4d7fa03730/net/http/http_stream_factory.cc
[modify] http://crrev.com/d9b132e46d02ec32dc3b2416d62d6b4d7fa03730/net/http/http_stream_factory_impl.cc
[modify] http://crrev.com/d9b132e46d02ec32dc3b2416d62d6b4d7fa03730/net/http/http_stream_factory_impl.h
[modify] http://crrev.com/d9b132e46d02ec32dc3b2416d62d6b4d7fa03730/net/quic/quic_network_transaction_unittest.cc
[modify] http://crrev.com/d9b132e46d02ec32dc3b2416d62d6b4d7fa03730/net/quic/quic_stream_factory.cc

Blocking: chromium:511444
Comment 44 by b...@chromium.org, Aug 7 2015
Blocking: chromium:517968
Project Member Comment 45 by bugdroid1@chromium.org, Aug 19 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/55ff9daac8079a4fc81c587a4c929a2690429227

commit 55ff9daac8079a4fc81c587a4c929a2690429227
Author: bnc <bnc@chromium.org>
Date: Wed Aug 19 18:42:35 2015

s/use_alternate_protocols/use_alternative_services/g

Rename HttpNetworkSession::Params::use_alternate_protocols,
SpdySessionDependencies::use_alternate_protocols, and
IOThread::Globals::use_alternate_protocols to use_alternative_services.

Also reformat some test-level comments, and remove some obsolete comments.

BUG=392575

Review URL: https://codereview.chromium.org/1268313004

Cr-Commit-Position: refs/heads/master@{#344284}

[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/android_webview/browser/net/aw_url_request_context_getter.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/chrome/browser/io_thread.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/chrome/browser/io_thread.h
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/chrome/browser/io_thread_unittest.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/chrome/browser/resources/net_internals/spdy_view.html
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/chromecast/browser/url_request_context_factory.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data_unittest.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/ios/crnet/crnet_environment.mm
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/jingle/glue/proxy_resolving_client_socket.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/net/http/http_network_session.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/net/http/http_network_session.h
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/net/http/http_network_transaction_unittest.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/net/http/http_stream_factory_impl.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/net/http/http_stream_factory_impl_unittest.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/net/log/net_log_util.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/net/quic/quic_network_transaction_unittest.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/net/spdy/spdy_network_transaction_unittest.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/net/spdy/spdy_test_util_common.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/net/spdy/spdy_test_util_common.h
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/net/url_request/url_request_context_builder.cc
[modify] http://crrev.com/55ff9daac8079a4fc81c587a4c929a2690429227/net/url_request/url_request_context_builder.h

Project Member Comment 46 by bugdroid1@chromium.org, Aug 24 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/40d058b595965d47ce9fde529fd8f9b91b765a9a

commit 40d058b595965d47ce9fde529fd8f9b91b765a9a
Author: bnc <bnc@chromium.org>
Date: Mon Aug 24 19:12:26 2015

Remove --no-alt-protocols command line switch.

The --no-alt-protocols command line switch sets |use_alternative_services| to
false.  However, this switch is being changed to be false by default, see
https://crrev.com/1271793003.  This makes this command line flag mute.

BUG=392575

Review URL: https://codereview.chromium.org/1303273002

Cr-Commit-Position: refs/heads/master@{#345139}

[modify] http://crrev.com/40d058b595965d47ce9fde529fd8f9b91b765a9a/chrome/browser/io_thread.cc
[modify] http://crrev.com/40d058b595965d47ce9fde529fd8f9b91b765a9a/chrome/browser/io_thread_unittest.cc

Comment 47 by b...@chromium.org, Aug 24 2015
Blockedon: chromium:524141
Project Member Comment 49 by bugdroid1@chromium.org, Oct 13 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0ddae6a9c18966d68768a792b766a3c9ce74d920

commit 0ddae6a9c18966d68768a792b766a3c9ce74d920
Author: bnc <bnc@chromium.org>
Date: Tue Oct 13 03:59:30 2015

Implement "clear" keyword in SpdyAltSvcWireFormat.

Note that the "clear" keyword was introduced to the Alternative Services
specification in draft-08.

This CL lands server change 104884972 by bnc.

BUG=392575

Review URL: https://codereview.chromium.org/1402633003

Cr-Commit-Position: refs/heads/master@{#353672}

[modify] http://crrev.com/0ddae6a9c18966d68768a792b766a3c9ce74d920/net/spdy/spdy_alt_svc_wire_format.cc
[modify] http://crrev.com/0ddae6a9c18966d68768a792b766a3c9ce74d920/net/spdy/spdy_alt_svc_wire_format.h
[modify] http://crrev.com/0ddae6a9c18966d68768a792b766a3c9ce74d920/net/spdy/spdy_alt_svc_wire_format_test.cc

Project Member Comment 50 by bugdroid1@chromium.org, Oct 14 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4f5758595dc1f3555a37c2079524231077521c8b

commit 4f5758595dc1f3555a37c2079524231077521c8b
Author: bnc <bnc@chromium.org>
Date: Wed Oct 14 18:35:08 2015

Network transaction test for "Alt-Svc: clear" header.

This is a follow-up to https://crrev.com/1402633003.  I verified locally that
the test introduced in this CL fails if I revert https://crrev.com/1402633003.

BUG=392575

Review URL: https://codereview.chromium.org/1403643003

Cr-Commit-Position: refs/heads/master@{#354072}

[modify] http://crrev.com/4f5758595dc1f3555a37c2079524231077521c8b/net/http/http_network_transaction_unittest.cc

Project Member Comment 51 by bugdroid1@chromium.org, Oct 27 2015
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/50767a82f2be8f62f9d20f2add7f602130e0a305

commit 50767a82f2be8f62f9d20f2add7f602130e0a305
Author: bnc <bnc@chromium.org>
Date: Tue Oct 27 15:24:23 2015

Update version parameter format in SpdyAltSvcWireFormat.

Update version parameter of alternative services to a quotation mark enclosed,
comma separated list of positive integers (from a single naked integer).  Also
place it at the end of the list both as a member and when serialized.  This
makes sense because it is an experimental parameter (as opposed to, for example,
max-age, which is serialized first).  It was following port previously for more
efficient packing, but now that it's a vector, that became moot.

This CL lands server change 106303839 by bnc.

BUG=392575

Review URL: https://codereview.chromium.org/1410343005

Cr-Commit-Position: refs/heads/master@{#356300}

[modify] http://crrev.com/50767a82f2be8f62f9d20f2add7f602130e0a305/net/spdy/spdy_alt_svc_wire_format.cc
[modify] http://crrev.com/50767a82f2be8f62f9d20f2add7f602130e0a305/net/spdy/spdy_alt_svc_wire_format.h
[modify] http://crrev.com/50767a82f2be8f62f9d20f2add7f602130e0a305/net/spdy/spdy_alt_svc_wire_format_test.cc
[modify] http://crrev.com/50767a82f2be8f62f9d20f2add7f602130e0a305/net/spdy/spdy_framer_test.cc

Comment 52 by srous...@gmail.com, Mar 22 2016
In case someone is looking for it, this feature gets enabled by flipping the flag here:

chrome://flags/#enable-alternative-services


Comment 53 by b...@chromium.org, Apr 7 2016
Blockedon: 585876
Comment 54 by b...@chromium.org, May 26 2016
Labels: M-53 OS-All
Status: Started
Comment 55 by b...@chromium.org, May 27 2016
Blockedon: 615413
Project Member Comment 56 by bugdroid1@chromium.org, May 27 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/58f0aa68fb0a15b0af56e7cfdf833ac3108fa00e

commit 58f0aa68fb0a15b0af56e7cfdf833ac3108fa00e
Author: bnc <bnc@chromium.org>
Date: Fri May 27 18:02:29 2016

Enable AltSvc pooling by default.

* Change enable_alternative_service_with_different_host default value to true in
  production.
* Change enable_alternative_service_with_different_host default value to true in
  tests.
* Remove kEnableAlternativeServices command line switch.
* Change QUIC field trial parameter "enable_alternative_service_with_different_host"
  behavior from enabling if true to disabling if value is false.

BUG=392575

Review-Url: https://codereview.chromium.org/1986633002
Cr-Commit-Position: refs/heads/master@{#396508}

[modify] https://crrev.com/58f0aa68fb0a15b0af56e7cfdf833ac3108fa00e/chrome/browser/about_flags.cc
[modify] https://crrev.com/58f0aa68fb0a15b0af56e7cfdf833ac3108fa00e/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data_unittest.cc
[modify] https://crrev.com/58f0aa68fb0a15b0af56e7cfdf833ac3108fa00e/components/network_session_configurator/network_session_configurator.cc
[modify] https://crrev.com/58f0aa68fb0a15b0af56e7cfdf833ac3108fa00e/components/network_session_configurator/network_session_configurator_unittest.cc
[modify] https://crrev.com/58f0aa68fb0a15b0af56e7cfdf833ac3108fa00e/components/network_session_configurator/switches.cc
[modify] https://crrev.com/58f0aa68fb0a15b0af56e7cfdf833ac3108fa00e/components/network_session_configurator/switches.h
[modify] https://crrev.com/58f0aa68fb0a15b0af56e7cfdf833ac3108fa00e/net/http/http_network_session.cc
[modify] https://crrev.com/58f0aa68fb0a15b0af56e7cfdf833ac3108fa00e/net/spdy/spdy_test_util_common.cc
[modify] https://crrev.com/58f0aa68fb0a15b0af56e7cfdf833ac3108fa00e/net/url_request/url_request_context_builder.cc

Comment 57 by b...@chromium.org, May 27 2016
Labels: Merge-Request-52
Requesting merge of https://codereview.chromium.org/1986633002 into M52 (2743).
Requesting to bake the CL in canary.

If all goes well, please merge to 2743 branch before 05/31,Monday 5.00 pm PST.
Comment 59 by b...@chromium.org, May 28 2016
https://codereview.chromium.org/1986633002 is in today's Canary 53.0.2751.0.
Comment 60 by tin...@google.com, May 28 2016
Labels: -Merge-Request-52 Merge-Approved-52 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M52 (branch: 2743)
Project Member Comment 61 by bugdroid1@chromium.org, May 30 2016
Labels: -merge-approved-52 merge-merged-2743
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/decead7175be5101f9dbef0fdc387d8a544d299b

commit decead7175be5101f9dbef0fdc387d8a544d299b
Author: Bence Béky <bnc@chromium.org>
Date: Mon May 30 00:33:39 2016

Enable AltSvc pooling by default.

* Change enable_alternative_service_with_different_host default value to true in
  production.
* Change enable_alternative_service_with_different_host default value to true in
  tests.
* Remove kEnableAlternativeServices command line switch.
* Change QUIC field trial parameter "enable_alternative_service_with_different_host"
  behavior from enabling if true to disabling if value is false.

BUG=392575

Review-Url: https://codereview.chromium.org/1986633002
Cr-Commit-Position: refs/heads/master@{#396508}
(cherry picked from commit 58f0aa68fb0a15b0af56e7cfdf833ac3108fa00e)

TBR=rch@chromium.org,bengr@chromium.org

Review URL: https://codereview.chromium.org/2019933002 .

Cr-Commit-Position: refs/branch-heads/2743@{#120}
Cr-Branched-From: 2b3ae3b8090361f8af5a611712fc1a5ab2de53cb-refs/heads/master@{#394939}

[modify] https://crrev.com/decead7175be5101f9dbef0fdc387d8a544d299b/chrome/browser/about_flags.cc
[modify] https://crrev.com/decead7175be5101f9dbef0fdc387d8a544d299b/chrome/browser/io_thread.cc
[modify] https://crrev.com/decead7175be5101f9dbef0fdc387d8a544d299b/chrome/browser/io_thread_unittest.cc
[modify] https://crrev.com/decead7175be5101f9dbef0fdc387d8a544d299b/chrome/common/chrome_switches.cc
[modify] https://crrev.com/decead7175be5101f9dbef0fdc387d8a544d299b/chrome/common/chrome_switches.h
[modify] https://crrev.com/decead7175be5101f9dbef0fdc387d8a544d299b/components/data_reduction_proxy/core/browser/data_reduction_proxy_io_data_unittest.cc
[modify] https://crrev.com/decead7175be5101f9dbef0fdc387d8a544d299b/ios/chrome/browser/ios_chrome_io_thread.mm
[modify] https://crrev.com/decead7175be5101f9dbef0fdc387d8a544d299b/net/http/http_network_session.cc
[modify] https://crrev.com/decead7175be5101f9dbef0fdc387d8a544d299b/net/spdy/spdy_test_util_common.cc
[modify] https://crrev.com/decead7175be5101f9dbef0fdc387d8a544d299b/net/url_request/url_request_context_builder.cc

Comment 62 by b...@chromium.org, Jun 3 2016
Blockedon: 617177
Blockedon: 664173
Sign in to add a comment