Landing Recent QUIC changes until and including Mon Nov 16 14:15:48 2015
Deprecate FLAGS_quic_read_packets_full_recvmmsg.
Merge internal change: 107932700
https://codereview.chromium.org/1467453007/
removing a redundant way of checking if QUIC has pending crypto data.
Merge internal change: 107932405
Make QuicPacketCreator be able to serialize packet itself when it does not have room for next stream frame. No functional change expected.
For QuicPacketCreator, add DelegateInterface class, Flush function, move SerializePacket from public to private.
For QuicPacketGenerator, add OnSerializedPacket function, remove SerializeAndSendPacket.
Merge internal change: 107814957
https://codereview.chromium.org/1459343009/
These packets got reformatted at some point, maybe before the clang-format off annotation was added.
Merge internal change: 107790487
Get rid of unnecessary CompareSpdyHeaderBlocks method, use
operator== instead. No behavior change.
Merge internal change: 107784612
minor changes to batched write to make DCHECK happy. Behind FLAGS_quic_batch_writes
Also includes a test fix to update bytes on the correct stream to get the no-op
we intended (rather than a no-op we didn't intend)
Merge internal change: 107783952
https://codereview.chromium.org/1472573002/
Deprecate FLAG_reset_cubic_epoch_when_app_limited.
Merge internal change: 107711408
https://codereview.chromium.org/1467453006/
Add ConsumeData method to QuicPacketCreator, ConsumeData wraps both CreateStreamFrame and AddFrame. No functional change expected.
Also move CreateStreamFrame from public to private in QuicPacketCreator.
Merge internal change: 107709890
https://codereview.chromium.org/1464153002/
Add WritePushPromise() method in QuicHeadersStream for server push.
Merge internal change: 107699435
https://codereview.chromium.org/1471583002/
Clear the connection's send alarm when a new ack is received. Flag protected by FLAGS_quic_respect_send_alarm.
Merge internal change: 107697347
https://codereview.chromium.org/1466153002/
Remove the LOG(DFATAL) from QuicTestClient::address(), since it appears to be implemented.
Changing from QuicPriority to SpdyPriority.
Merge internal change: 107687942
https://codereview.chromium.org/1468773002/
Replacing EffectivePriority with Priority for QUIC.
The only place we had changing priority was "if the response headers were
serialized and not sent" After we moved to having a separate headers stream
we never utilized the QuicWriter's header buffer, instead passing
headers directly to the QUIC layer which serialized them and sent them with
their own special priority.
Removing the idea of mutable priority enables having the write blocked list
track stream priorty, removing SPDY-specific logic from our shared code and
moving us closer to the new H2 style write scheduler logic.
Merge internal change: 107610692
https://codereview.chromium.org/1471573002/
Let QUIC streams write 16k before ceding. Behind FLAGS_quic_batch_writes.
Changing our round robin logic to prompt a given stream until it has finished
~16k (rounding up to the max quic packet payload).
Merge internal change: 107595145
https://codereview.chromium.org/1472563002/
Removing unused code to convert QUIC from SPDY3 to SPDY4
Now that QUIC version 24 is gone, we shouldn't need to worry about converting
headers from SPDY3 to SPDY4 as it should all be SPDY4
Merge internal change: 107581674
https://codereview.chromium.org/1463303002/
Cleanup: clang-formatting gfe/quic/quic_framer* to comply with Chromium style guide.
clang-format -i --style="{BasedOnStyle: Chromium, Standard: Cpp11}"
./quic_framer*
Merge internal change: 107514106
https://codereview.chromium.org/1466693002/
QUIC proof source: allow construction with an |SSLContext| provider.
To support |SSLContext| swaps, the long-lived |ProofSourceChromium|
object must have a means of retrieving the new context. The simplest
way to do that seems to be to pass in a getter method: the alternative
of calling |SSLGlobalData::ssl_context| is unavailable due to circular
dependencies.
n/a (Refactor. No functional change expected.)
Merge internal change: 107509393
https://codereview.chromium.org/1463603002/
Convert QuicPathIdPacketNumber struct to std::pair. Not used in production, no behavior change.
Chromium doesn't have the same support for custom hash functions. Makes it hard to port cl/106938391.
Merge internal change: 107505890
https://codereview.chromium.org/1465583002/
Fix bug in ReliableQuicStream::WritevData() where if the write failed and the connection was closed, the stream would attempt to mark itself write blocked leading to a crash in debug mode.
Merge internal change: 107452913
https://codereview.chromium.org/1458003004/
Deprecate FLAGS_quic_count_unfinished_as_open_streams.
Merge internal change: 107422215
https://codereview.chromium.org/1457233003/
Convince ASAN we're really not touching the factory pointers at the same time by adding explicit locks
n/a (test only)
Merge internal change: 107412764
https://codereview.chromium.org/1459163002/
[email protected]
BUG=
Review URL: https://codereview.chromium.org/1470713003
Cr-Commit-Position: refs/heads/master@{#361380}
diff --git a/net/quic/quic_flags.cc b/net/quic/quic_flags.cc
index 0c9baed..5ecec05a 100644
--- a/net/quic/quic_flags.cc
+++ b/net/quic/quic_flags.cc
@@ -58,10 +58,6 @@
// client, a GO_AWAY frame is sent to the client.
bool FLAGS_send_goaway_after_client_migration = true;
-// QUIC-specific flag. If true, Cubic's epoch is reset when the sender is
-// application-limited.
-bool FLAGS_reset_cubic_epoch_when_app_limited = true;
-
// If true, use an interval set as the internal representation of a packet queue
// instead of a set.
bool FLAGS_quic_packet_queue_use_interval_set = true;
@@ -73,11 +69,6 @@
// quota from open streams, which is 10 times larger.
bool FLAGS_allow_many_available_streams = true;
-// If true, QuicPacketReader::ReadAndDispatchPackets will only return true if
-// recvmmsg fills all of the passed in messages. Otherwise, it will return true
-// if recvmmsg read any messages.
-bool FLAGS_quic_read_packets_full_recvmmsg = true;
-
// If true, QUIC will measure head of line (HOL) blocking due between
// streams due to packet losses on the headers stream. The
// measurements will be surfaced via UMA histogram
@@ -100,11 +91,6 @@
// and AckNotifierManager.
bool FLAGS_quic_no_ack_notifier = true;
-// If true, QuicSession::GetNumOpenStreams will count unfinished
-// streams as open streams, QuicSession::PostProcessAfterData will not
-// check the quota of unifinished streams.
-bool FLAGS_quic_count_unfinished_as_open_streams = true;
-
// If true, use the unrolled prefetch path in QuicPacketCreator::CopyToBuffer.
bool FLAGS_quic_packet_creator_prefetch = false;
@@ -121,5 +107,8 @@
bool FLAGS_quic_use_stream_sequencer_buffer = true;
// If true, don't send QUIC packets if the send alarm is set.
-// Disabled until b/25638635 is resolved.
-bool FLAGS_respect_send_alarm = false;
+bool FLAGS_quic_respect_send_alarm = true;
+
+// If true, allow each quic stream to write 16k blocks rather than doing a round
+// robin of one packet per session when ack clocked or paced.
+bool FLAGS_quic_batch_writes = true;