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

Issue 1470713003: Landing Recent QUIC changes until and including Mon Nov 16 14:15:48 2015 (Closed)

Created:
5 years, 1 month ago by ianswett
Modified:
5 years ago
CC:
chromium-reviews, cbentzel+watch_chromium.org, Zhongyi Shi
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

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/ R=rch@chromium.org BUG= Committed: https://crrev.com/0888cffc5df1623d928740a4d3a264c16147823e Cr-Commit-Position: refs/heads/master@{#361380}

Patch Set 1 #

Patch Set 2 : Review feedback fixes in quic_connection.cc, quic_connection_test.cc and quic_server_bin.cc. #

Total comments: 2

Patch Set 3 : Fixing formatting errors. #

Patch Set 4 : git cl format net #

Patch Set 5 : Fix Windows Build. #

Total comments: 1

Patch Set 6 : Adding NET_EXPORT_PRIVATE to DelegateInterface. #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+1216 lines, -882 lines) Patch
M net/quic/congestion_control/tcp_cubic_bytes_sender.cc View 1 chunk +3 lines, -5 lines 0 comments Download
M net/quic/congestion_control/tcp_cubic_bytes_sender_test.cc View 1 chunk +0 lines, -1 line 0 comments Download
M net/quic/congestion_control/tcp_cubic_sender.cc View 1 chunk +3 lines, -6 lines 0 comments Download
M net/quic/congestion_control/tcp_cubic_sender_test.cc View 1 chunk +0 lines, -1 line 0 comments Download
M net/quic/p2p/quic_p2p_stream.h View 2 chunks +2 lines, -2 lines 0 comments Download
M net/quic/p2p/quic_p2p_stream.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_connection.h View 2 chunks +2 lines, -2 lines 0 comments Download
M net/quic/quic_connection.cc View 1 2 3 3 chunks +5 lines, -2 lines 0 comments Download
M net/quic/quic_connection_test.cc View 1 2 3 2 chunks +34 lines, -1 line 0 comments Download
M net/quic/quic_crypto_stream.h View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_crypto_stream.cc View 2 chunks +3 lines, -2 lines 0 comments Download
M net/quic/quic_flags.h View 1 chunk +2 lines, -4 lines 0 comments Download
M net/quic/quic_flags.cc View 4 chunks +5 lines, -16 lines 0 comments Download
M net/quic/quic_framer.h View 1 2 5 chunks +8 lines, -21 lines 0 comments Download
M net/quic/quic_framer.cc View 24 chunks +70 lines, -77 lines 0 comments Download
M net/quic/quic_framer_test.cc View 1 2 3 36 chunks +96 lines, -156 lines 0 comments Download
M net/quic/quic_headers_stream.h View 1 chunk +11 lines, -3 lines 0 comments Download
M net/quic/quic_headers_stream.cc View 1 2 3 3 chunks +32 lines, -8 lines 0 comments Download
M net/quic/quic_headers_stream_test.cc View 1 2 3 10 chunks +46 lines, -10 lines 0 comments Download
M net/quic/quic_http_stream.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_http_stream_test.cc View 1 2 3 3 chunks +7 lines, -10 lines 0 comments Download
M net/quic/quic_http_utils.h View 1 2 3 1 chunk +6 lines, -5 lines 0 comments Download
M net/quic/quic_http_utils.cc View 1 2 3 2 chunks +5 lines, -5 lines 0 comments Download
M net/quic/quic_network_transaction_unittest.cc View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_packet_creator.h View 1 2 3 4 5 9 chunks +62 lines, -28 lines 0 comments Download
M net/quic/quic_packet_creator.cc View 1 2 3 4 chunks +41 lines, -2 lines 0 comments Download
M net/quic/quic_packet_creator_test.cc View 36 chunks +215 lines, -182 lines 0 comments Download
M net/quic/quic_packet_generator.h View 1 2 4 chunks +9 lines, -4 lines 0 comments Download
M net/quic/quic_packet_generator.cc View 1 2 3 8 chunks +48 lines, -59 lines 0 comments Download
M net/quic/quic_packet_generator_test.cc View 1 chunk +4 lines, -2 lines 0 comments Download
M net/quic/quic_protocol.h View 1 chunk +0 lines, -3 lines 0 comments Download
M net/quic/quic_reliable_client_stream.h View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_reliable_client_stream.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M net/quic/quic_session.h View 1 2 3 2 chunks +1 line, -4 lines 0 comments Download
M net/quic/quic_session.cc View 1 2 3 8 chunks +21 lines, -48 lines 0 comments Download
M net/quic/quic_session_test.cc View 1 2 3 11 chunks +132 lines, -63 lines 0 comments Download
M net/quic/quic_spdy_session.h View 2 chunks +2 lines, -2 lines 0 comments Download
M net/quic/quic_spdy_session.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M net/quic/quic_spdy_stream.h View 4 chunks +8 lines, -11 lines 0 comments Download
M net/quic/quic_spdy_stream.cc View 4 chunks +5 lines, -4 lines 0 comments Download
M net/quic/quic_spdy_stream_test.cc View 3 chunks +8 lines, -4 lines 0 comments Download
M net/quic/quic_stream_sequencer_test.cc View 1 2 3 1 chunk +1 line, -3 lines 0 comments Download
M net/quic/quic_utils.h View 1 chunk +0 lines, -2 lines 0 comments Download
M net/quic/quic_utils.cc View 1 chunk +0 lines, -5 lines 0 comments Download
M net/quic/quic_write_blocked_list.h View 1 2 3 4 5 chunks +63 lines, -9 lines 0 comments Download
M net/quic/quic_write_blocked_list.cc View 1 chunk +7 lines, -6 lines 1 comment Download
M net/quic/quic_write_blocked_list_test.cc View 7 chunks +72 lines, -24 lines 0 comments Download
M net/quic/reliable_quic_stream.h View 2 chunks +6 lines, -3 lines 0 comments Download
M net/quic/reliable_quic_stream.cc View 3 chunks +9 lines, -3 lines 0 comments Download
M net/quic/reliable_quic_stream_test.cc View 1 2 3 4 chunks +25 lines, -3 lines 0 comments Download
M net/quic/test_tools/quic_packet_creator_peer.h View 1 chunk +8 lines, -0 lines 0 comments Download
M net/quic/test_tools/quic_packet_creator_peer.cc View 1 2 3 1 chunk +13 lines, -0 lines 0 comments Download
M net/quic/test_tools/quic_test_packet_maker.h View 2 chunks +2 lines, -2 lines 0 comments Download
M net/quic/test_tools/quic_test_packet_maker.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M net/quic/test_tools/quic_test_utils.h View 1 2 3 1 chunk +2 lines, -2 lines 0 comments Download
M net/spdy/write_blocked_list.h View 2 chunks +50 lines, -22 lines 0 comments Download
M net/spdy/write_blocked_list_test.cc View 1 chunk +28 lines, -0 lines 0 comments Download
M net/tools/quic/end_to_end_test.cc View 1 2 3 1 chunk +0 lines, -1 line 0 comments Download
M net/tools/quic/quic_client_session_test.cc View 1 chunk +3 lines, -10 lines 0 comments Download
M net/tools/quic/quic_packet_reader.cc View 1 chunk +2 lines, -6 lines 0 comments Download
M net/tools/quic/quic_server_session_test.cc View 1 2 3 1 chunk +2 lines, -2 lines 0 comments Download
M net/tools/quic/test_tools/quic_test_client.h View 2 chunks +2 lines, -2 lines 0 comments Download
M net/tools/quic/test_tools/quic_test_client.cc View 1 chunk +0 lines, -1 line 0 comments Download
M net/tools/quic/test_tools/quic_test_server.cc View 1 2 3 4 chunks +12 lines, -10 lines 0 comments Download

Messages

Total messages: 34 (12 generated)
ianswett
5 years, 1 month ago (2015-11-21 23:06:57 UTC) #1
Ryan Hamilton
Please update the CL description to match the format of the final merge CLs. Also, ...
5 years, 1 month ago (2015-11-22 00:57:18 UTC) #2
ianswett
I re-uploaded the full patch. PTAL.
5 years, 1 month ago (2015-11-23 20:07:19 UTC) #4
Ryan Hamilton
It looks like a few of the CL in the description are missing chromium CL ...
5 years, 1 month ago (2015-11-23 20:30:08 UTC) #5
ianswett
On 2015/11/23 20:30:08, Ryan Hamilton wrote: > It looks like a few of the CL ...
5 years, 1 month ago (2015-11-23 20:38:45 UTC) #6
Ryan Hamilton
(Still missing some chromium CL links) https://codereview.chromium.org/1470713003/diff/20001/net/quic/quic_connection_test.cc File net/quic/quic_connection_test.cc (right): https://codereview.chromium.org/1470713003/diff/20001/net/quic/quic_connection_test.cc#newcode5272 net/quic/quic_connection_test.cc:5272: .WillOnce(Return(PacketNumberSet())); On 2015/11/23 ...
5 years, 1 month ago (2015-11-23 20:51:11 UTC) #7
ianswett
On 2015/11/23 20:51:11, Ryan Hamilton wrote: > (Still missing some chromium CL links) > I ...
5 years, 1 month ago (2015-11-23 21:27:50 UTC) #8
Ryan Hamilton
lgtm
5 years, 1 month ago (2015-11-23 22:04:53 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1470713003/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1470713003/20001
5 years, 1 month ago (2015-11-23 22:07:43 UTC) #11
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/121443)
5 years, 1 month ago (2015-11-23 22:31:17 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1470713003/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1470713003/60001
5 years, 1 month ago (2015-11-23 22:52:56 UTC) #16
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_compile_dbg_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_compile_dbg_ng/builds/112591)
5 years ago (2015-11-23 23:51:02 UTC) #18
Ryan Hamilton
On 2015/11/23 23:51:02, commit-bot: I haz the power wrote: > Try jobs failed on following ...
5 years ago (2015-11-24 00:34:15 UTC) #19
ianswett
On 2015/11/24 00:34:15, Ryan Hamilton wrote: > On 2015/11/23 23:51:02, commit-bot: I haz the power ...
5 years ago (2015-11-24 02:32:40 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1470713003/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1470713003/80001
5 years ago (2015-11-24 02:40:29 UTC) #23
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_compile_dbg_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_compile_dbg_ng/builds/112759)
5 years ago (2015-11-24 03:47:36 UTC) #25
Ryan Hamilton
https://codereview.chromium.org/1470713003/diff/80001/net/quic/quic_packet_creator.h File net/quic/quic_packet_creator.h (right): https://codereview.chromium.org/1470713003/diff/80001/net/quic/quic_packet_creator.h#newcode33 net/quic/quic_packet_creator.h:33: class DelegateInterface { Looks like you need NET_EXPORT_PRIVATE here.
5 years ago (2015-11-24 04:02:48 UTC) #26
ianswett
On 2015/11/24 04:02:48, Ryan Hamilton wrote: > https://codereview.chromium.org/1470713003/diff/80001/net/quic/quic_packet_creator.h > File net/quic/quic_packet_creator.h (right): > > https://codereview.chromium.org/1470713003/diff/80001/net/quic/quic_packet_creator.h#newcode33 ...
5 years ago (2015-11-24 15:58:59 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1470713003/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1470713003/100001
5 years ago (2015-11-24 16:01:28 UTC) #30
commit-bot: I haz the power
Committed patchset #6 (id:100001)
5 years ago (2015-11-24 17:42:25 UTC) #31
commit-bot: I haz the power
Patchset 6 (id:??) landed as https://crrev.com/0888cffc5df1623d928740a4d3a264c16147823e Cr-Commit-Position: refs/heads/master@{#361380}
5 years ago (2015-11-24 17:43:20 UTC) #32
brucedawson
5 years ago (2015-11-30 22:53:09 UTC) #34
Message was sent while issue was closed.
https://codereview.chromium.org/1470713003/diff/100001/net/quic/quic_write_bl...
File net/quic/quic_write_blocked_list.cc (right):

https://codereview.chromium.org/1470713003/diff/100001/net/quic/quic_write_bl...
net/quic/quic_write_blocked_list.cc:13: memset(batch_write_stream_id_, 0,
This change is fragile and could be made simpler and more stable.

As it stands the two memset calls rely on knowledge of the type of the array
elements in order to verify their correctness. This dependency could be avoided
by replacing the explicit type with array[0]:

  memset(batch_write_stream_id_, 0,
           arraysize(batch_write_stream_id_) *
sizeof(batch_write_stream_id_[0]));

But even better would be this:

  memset(batch_write_stream_id_, 0, sizeof(batch_write_stream_id_));

Since arraysize divides by sizeof element and the lines of code are multiplying
by sizeof element it is simpler and safer to just use sizeof directly.

This was noticed because it triggered a VC++ /analyze warning about multiplying
sizeof() times sizeof() being suspicious.

Powered by Google App Engine
This is Rietveld 408576698