Landing Recent QUIC changes until 11:40 AM MTV time, Jun 3, 2018 UTC-4

Deprecate FLAGS_quic_reloadable_flag_quic_one_tlp.
Merge internal change: 199053556
https://chromium-review.googlesource.com/c/1090401/

Initialize is_current_packet_connectivity_probing_ to avoid undefined reads.
Merge internal change: 199003415
https://chromium-review.googlesource.com/c/1090400/

Deprecate FLAGS_quic_reloadable_flag_quic_unified_send_alarm.
Merge internal change: 198779139
https://chromium-review.googlesource.com/c/1090399/

Fix a bug caused by peer sending a request and RST_STREAM in the same packet. Protected by FLAGS_quic_reloadable_flag_quic_deprecate_scoped_scheduler2.
Merge internal change: 198720940
https://chromium-review.googlesource.com/c/1090398/

Deprecate FLAGS_quic_reloadable_flag_quic_simplify_pacing_sender.
Also make SentPacketManager::TimeUntilSend a const function.
Merge internal change: 198617533
https://chromium-review.googlesource.com/c/1090397/

Output PCC DebugState also on packet sent, for PCC's monitor-interval-based
trace analysis. (It will not influence other congestion control protocols.)
Merge internal change: 198606967
https://chromium-review.googlesource.com/c/1090396/

Support framing/deframing of IETF QUIC Path Challenge/Response Frames
n/a - code active only if QUIC Version 99 flag is set to true.
This CL provides support to frame/deframe IETF QUIC path challenge
and path response frames. Logic to request transmission of the frames,
and handle them when received, will be added in a following CL.r
Merge internal change: 198595417
https://chromium-review.googlesource.com/c/1090395/

Deprecate feature flag
FLAGS_quic_reloadable_flag_quic_handle_write_results_for_connectivity_probe.
Merge internal change: 198589773
https://chromium-review.googlesource.com/c/1090394/

Add support for IETF Quic Stop Sending frame.
n/a code active only if version-99 flag set to true.
This CL hooks up the framer/deframer for the IETF Quic Stop Sending frame.
Higher level logic is needed to cause these frames to be generated under
the correct circumstances, and to be handled when received.
Merge internal change: 198557228
https://chromium-review.googlesource.com/c/1090393/

Add framer support for the IETF Quic NEW CONNECTION ID frame.
N/A this code is enabled only if QUIC Version 99 is enabled.
This CL adds support to the IETF Framer/Deframer for the New Connection ID
frame. Higher-level code (to cause such a frame to be generated or handle
one correctly on reception) will be done in a later CL.r
Merge internal change: 198547423
https://chromium-review.googlesource.com/c/1090392/

Add IETF MAX STREAM ID and STREAM ID BLOCKED frames
N/A -- code is version-99, protected by the version-99 flag.
This CL adds support to the framer so that the frames can be generated if requested and parsed if received. Higher-level support (i.e., the logic to decide when to request generation of these frames or to perform appropriate actions upon reception) is not provided in this CL. It will be in a follow-on CL.
Merge internal change: 198543131
https://chromium-review.googlesource.com/c/1090391/

In QUIC, remove connection_rejected_statelessly from QuicTimeWaitList::AddConnectionIdToTimeWait. No functional change expected, not protected.
Merge internal change: 198456330
https://chromium-review.googlesource.com/c/1089391/

Support IETF APPLICATION CLOSE frame for version 99
Add APPLICATION CLOSE framer, deframer, tests, and so on, so that QUIC running as version-99 can generate and receive these frames.  This CL DOES NOT include the necessary API for applications using QUIC to generate APPLICATION CLOSEs
N/A Code is under control of the version-99 flag
Merge internal change: 198446282
https://chromium-review.googlesource.com/c/1089390/

Add IETF BLOCKED and STREAM BLOCKED frames
N/A  Code functional only if version 99 flag enabled
This code executed only if version 99 is active. Version 99 is flag protected/disabled.
Merge internal change: 198429591
https://chromium-review.googlesource.com/c/1089147/

Add IETF MAX DATA/MAX STREAM DATA frames
N/A code protected by version-99 flag, not active unless version-99 enabled
Merge internal change: 198424176
https://chromium-review.googlesource.com/c/1089146/

[email protected]

Change-Id: Iec9de0857510f101c46a184661ff110ef1c149cf
Reviewed-on: https://chromium-review.googlesource.com/1090403
Reviewed-by: Zhongyi Shi <[email protected]>
Commit-Queue: Bin Wu <[email protected]>
Cr-Commit-Position: refs/heads/master@{#565503}
diff --git a/components/domain_reliability/quic_error_mapping.cc b/components/domain_reliability/quic_error_mapping.cc
index cac76e3..cedca9f 100644
--- a/components/domain_reliability/quic_error_mapping.cc
+++ b/components/domain_reliability/quic_error_mapping.cc
@@ -260,6 +260,32 @@
     {quic::QUIC_DECOMPRESSION_FAILURE, "quic.decompression_failure"},
     // Receive a RST_STREAM with offset larger than kMaxStreamLength.
     {quic::QUIC_STREAM_LENGTH_OVERFLOW, "quic.stream_length_overflow"},
+    // APPLICATION_CLOSE frame data is malformed.
+    {quic::QUIC_INVALID_APPLICATION_CLOSE_DATA,
+     "quic.invalid.application_close_data"},
+    // Received a MAX DATA frame with errors.
+    {quic::QUIC_INVALID_MAX_DATA_FRAME_DATA,
+     "quic.invalid.max_data_frame_data"},
+    // Received a MAX STREAM DATA frame with errors.
+    {quic::QUIC_INVALID_MAX_STREAM_DATA_FRAME_DATA,
+     "quic.invalid.max_stream_data_frame_data"},
+    // Received a MAX STREAM ID frame with bad data
+    {quic::QUIC_MAX_STREAM_ID_DATA, "quic.max_stream_id_data"},
+    // Received a STREAM ID BLOCKED frame with bad data
+    {quic::QUIC_STREAM_ID_BLOCKED_DATA, "quic.stream_id_blocked_data"},
+    // Error deframing a STREAM BLOCKED frame.
+    {quic::QUIC_INVALID_STREAM_BLOCKED_DATA,
+     "quic.invalid.stream_blocked_data"},
+    // NEW CONNECTION ID frame data is malformed.
+    {quic::QUIC_INVALID_NEW_CONNECTION_ID_DATA,
+     "quic.invalid.new_connection_id_data"},
+    // Received a MAX STREAM DATA frame with errors.
+    {quic::QUIC_INVALID_STOP_SENDING_FRAME_DATA,
+     "quic.invalid.stop_sending_frame_data"},
+    // Error deframing PATH CHALLENGE or PATH RESPONSE frames.
+    {quic::QUIC_INVALID_PATH_CHALLENGE_DATA,
+     "quic.invalid.path_challenge_data"},
+    {quic::QUIC_INVALID_PATH_RESPONSE_DATA, "quic.invalid.path_response_data"},
 
     // No error. Used as bound while iterating.
     {quic::QUIC_LAST_ERROR, "quic.last_error"}};