Landing Recent QUIC changes until 2/7/2016 10:04 UTC
Define commonly used QUIC enums as int8_t to save memory and fix a static_assert. No functional change.
Merge internal change: 113961942
https://codereview.chromium.org/1696523002/
Fix references to global symbols in base/log_severity.h.
Merge internal change: 114061047
https://codereview.chromium.org/1685363003/
QUIC |ProofSource|: don't retain ownership of |out_certs|.
The |ProofSource| API had returned a pointer to data of which it
retained ownership. This is incompatible with the assumption that
the |ProofSource| object can be safely destructed.
Taking it on faith that there is a sound performance reason to avoid a
copy in this case, this CL instead introduces a reference count (using
shared_ptr) for the data in question.
change QUIC proof source to use a reference-counted pointer to return certificates. No functional change expected.
Merge internal change: 113980698
https://codereview.chromium.org/1689233003/
Use emplace_back instead of push_back in QUIC now that Chromium style guide allows it.
Merge internal change: 113963690
https://codereview.chromium.org/1688193002/
Remove QuicSession::CloseConnectionWithDetails and call connection()->SendConnectionCloseWithDetails directly.
QuicSession::CloseConnectionWithDetails is not pulling its weight as a helper method: hardly saves any characters, just means there's yet another path to closing a connection.
Merge internal change: 113947119
https://codereview.chromium.org/1684263003/
QUIC: Send a connection close packet in response to a packet lacking version flag before version negotiated.
Merge internal change: 113942068
https://codereview.chromium.org/1681223005/
Limits QUIC's local IP/port change verification to server-side.
Since connection migration is currently designed to be client-initiated, this CL allows local IP and/or port changes at a client.
Merge internal change: 113922841
https://codereview.chromium.org/1689823002/
Resets QUIC's RTO and TLP counts on connection migration.
RTO and TLP counts are path-related SentPacketManager variables, and should be reset when the peer's address changes. This is particularly important at the client when early connection migration may be triggered via timeouts.
Merge internal change: 113892226
https://codereview.chromium.org/1688683004/
Add keying material exporter to QUIC for token binding
adds unused (for now) method to QuicCryptoStream
Merge internal change: 113887857
https://codereview.chromium.org/1680423003/
Adding a QUIC_BUG stream-existence sanity check to the opt build
Merge internal change: 113883554
https://codereview.chromium.org/1691593002/
Fix the comment for QUIC_CONNECTION_CANCELLED which is currently unused, but will be used by Chrome soon.
n/a - comment only
Merge internal change: 113877479
https://codereview.chromium.org/1685253002/
removing a log line which never should have been checked in
Merge internal change: 113853229
https://codereview.chromium.org/1682373004/
Moving priorities out of shared QUIC !SPDY code
Finishing the clean-up started in November (whew!) to pull priority APIs out of
the base QUIC libraries. Should be a functional no-op since we stopped using
the priority field when we switched to the new write blocked list. This whole set of changes should make moving to the H2 style dependency tree somewhat simpler.
Merge internal change: 113848994
https://codereview.chromium.org/1680243004/
Move DeterminePeerAddressChangeType() from QuicConnection to QuicUtils.
Merge internal change: 113774550
https://codereview.chromium.org/1687883002/
Deprecate FLAGS_quic_limit_max_cwnd.
Merge internal change: 113769379
https://codereview.chromium.org/1688763002/
Add a QUIC_BUG to QuicCryptoServerStream::OnHandshakeMessage.
Merge internal change: 113746027
https://codereview.chromium.org/1690573004/
Re-order logic and variable declarations in QUIC bandwidth resumption logic. No behavior change.
Merge internal change: 113737889
https://codereview.chromium.org/1686853002/
Reorder QUIC struct fields based on ClassLayoutOptimizer. No functional change.
Merge internal change: 113704971
https://codereview.chromium.org/1683913002/
Add an enum to replace a boolean "from_peer" argument when closing QUIC connections. No behavior change.
It appears that nothing in google3 uses the old from_peer argument, but I'm planning on using it in an upcoming CL which will log connection closes in TransportConnectionStats.
Merge internal change: 113669690
https://codereview.chromium.org/1687633002/
Rename CloseConnection to OnUnrecoverableError in the QuicPacketCreator visitor. No behavior change.
Merge internal change: 113636823
https://codereview.chromium.org/1682153002/
Factor out common TCP sender functionality into a new TcpCubicSenderBase class from TcpCubicSender and TcpCubicBytesSender.
Merge internal change: 113634514
https://codereview.chromium.org/1684723002/
Make CacheNetworkParameters logging unconditional. protected by FLAGS_quic_log_received_parameters
Previously, we would only log the CachedNetworkParameters received
from the client to the TransportConnectionStats when we actually USED
the parameters to do bandwidth-resumption. Bandwidth-resumption is
currently disabled, so we have no insight into what these parameters
contain. The client is sending them. We're just not recording them
to the log.
In this flag-protected CL, we will unconditionally log the received
CachedNetworkParameters to the TransportConnectionStats. This way we
can study them (if we want), to see how we might use them in the future.
Merge internal change: 113633148
https://codereview.chromium.org/1682553002/
Remove the unused QUIC method LossAlgorithmInterface::DetectLostPackets.
n/a(Unused code)
Merge internal change: 113630418
https://codereview.chromium.org/1680743004/
Drop non-awaited revived packet.
Merge internal change: 113574317
https://codereview.chromium.org/1681753002/
deprecating FLAGS_quic_write_blocked_list
Merge internal change: 113549613
https://codereview.chromium.org/1678873003/
Add some log message context to QUIC_BUG in received_packet_manager
Merge internal change: 113548899
https://codereview.chromium.org/1681493003/
Minor refactor to QUIC's HybridSlowStart. No functional change.
Merge internal change: 113542148
https://codereview.chromium.org/1678933002/
Add wtrace agent to quic test_tools visibility and TAP test patterns
n/a (visibility and TAP pattern changes only)
Merge internal change: 113520970
https://codereview.chromium.org/1681493003/
BUG=
Review URL: https://codereview.chromium.org/1694813003
Cr-Commit-Position: refs/heads/master@{#375325}
diff --git a/net/quic/test_tools/crypto_test_utils.cc b/net/quic/test_tools/crypto_test_utils.cc
index 8f46d92..4d18cca2 100644
--- a/net/quic/test_tools/crypto_test_utils.cc
+++ b/net/quic/test_tools/crypto_test_utils.cc
@@ -438,12 +438,18 @@
const size_t kSampleOutputLength = 32;
string client_key_extraction;
string server_key_extraction;
+ string client_tb_ekm;
+ string server_tb_ekm;
EXPECT_TRUE(client->ExportKeyingMaterial(kSampleLabel, kSampleContext,
kSampleOutputLength,
&client_key_extraction));
EXPECT_TRUE(server->ExportKeyingMaterial(kSampleLabel, kSampleContext,
kSampleOutputLength,
&server_key_extraction));
+ if (FLAGS_quic_save_initial_subkey_secret) {
+ EXPECT_TRUE(client->ExportTokenBindingKeyingMaterial(&client_tb_ekm));
+ EXPECT_TRUE(server->ExportTokenBindingKeyingMaterial(&server_tb_ekm));
+ }
CompareCharArraysWithHexError("client write key", client_encrypter_key.data(),
client_encrypter_key.length(),
@@ -489,6 +495,12 @@
"sample key extraction", client_key_extraction.data(),
client_key_extraction.length(), server_key_extraction.data(),
server_key_extraction.length());
+
+ if (FLAGS_quic_save_initial_subkey_secret) {
+ CompareCharArraysWithHexError("token binding key extraction",
+ client_tb_ekm.data(), client_tb_ekm.length(),
+ server_tb_ekm.data(), server_tb_ekm.length());
+ }
}
// static