New issue
Advanced search Search tips

Issue 696653 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug



Sign in to add a comment

Launch new HTTP/2 decoder.

Project Member Reported by b...@chromium.org, Feb 27 2017

Issue description

Launch new HTTP/2 decoder residing in //net/http2/ directory, which provides functionality equivalent to that of the old decoder in //net/spdy/.  This essentially boils down to flipping FLAGS_chromium_http2_flag_spdy_use_http2_frame_decoder_adapter from false to true.  This is best done shortly after M58 branches, so that there is plenty of time to catch potential failures at M59 works its way through Canary and Dev.

For the record, the new HPACK decoder has shipped in M58, see https://crrev.com/2658763002.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7b2a21a7ff27c79e88cc5a64cece2890e8aacb1f

commit 7b2a21a7ff27c79e88cc5a64cece2890e8aacb1f
Author: bnc <bnc@chromium.org>
Date: Wed Mar 01 13:27:20 2017

Add AltSvcFrameTest for non-empty origin on non-zero frame.

BUG= 696653 

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

[modify] https://crrev.com/7b2a21a7ff27c79e88cc5a64cece2890e8aacb1f/net/spdy/spdy_session_unittest.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Mar 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/62f6a594d8fd10ed15019c9c8e4369d8477355af

commit 62f6a594d8fd10ed15019c9c8e4369d8477355af
Author: bnc <bnc@chromium.org>
Date: Wed Mar 01 20:12:38 2017

Do not enforce origin length and stream id requirement for ALTSVC frames.

Remove this check from Http2FrameDecoderAdapter, which is part of the
new gfe/http2/ HTTP/2 frame decoder implementation.  This makes sense,
as SpdyFramer, the currently used HTTP/2 frame decoder, does not enforce
this requirement either.

Http2FrameDecoderAdapter incorrectly signals an error on invalid ALTSVC frames,
whereas RFC7838 states that they MUST be ignored.  This makes
AltSvcFrameTest.DoNotProcessAltSvcFrameWithEmptyOriginOnStreamZero and
AltSvcFrameTest.DoNotProcessAltSvcFrameWithNonEmptyOriginOnNonZeroStream
fail with FLAGS_chromium_http2_flag_spdy_use_http2_frame_decoder_adapter
set, effectively blocking the launch of that flag.  This CL fixes that.

This CL lands server change 148893483 by bnc.

BUG=488484,  696653 

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

[modify] https://crrev.com/62f6a594d8fd10ed15019c9c8e4369d8477355af/net/spdy/http2_frame_decoder_adapter.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Mar 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ce54af31e8cf2b9a1da25a30b327087afc0862ef

commit ce54af31e8cf2b9a1da25a30b327087afc0862ef
Author: bnc <bnc@chromium.org>
Date: Thu Mar 02 01:36:09 2017

Fix BufferedSpdyFrameTest.OnAltSvc.

The mock ALTSVC frame in BufferedSpdyFrameTest.OnAltSvc was not spec compliant
with its non-zero stream id and non-empty origin value.  While this is of no
practical importance, because the framing layer this test is exercising does
not enforce this part of the specification, it is good practice to use spec
compliant data in tests.  This CL splits the test into two: one with
stream id 0 and non-empty origin, and another one with stream id other than
zero and empty origin, both combinations conforming to the specs.

BUG= 696653 

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

[modify] https://crrev.com/ce54af31e8cf2b9a1da25a30b327087afc0862ef/net/spdy/buffered_spdy_framer_unittest.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Mar 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9b550534ae5ce2e122e3a96086cd995070deddc4

commit 9b550534ae5ce2e122e3a96086cd995070deddc4
Author: bnc <bnc@chromium.org>
Date: Thu Mar 02 01:37:54 2017

Add SpdyFramerTests for existing ALTSVC handling functionality.

Add test for currently existing functionality (where "currently"
means since https://crrev.com/2723203002 landed earlier today):
* ALTSVC frames with empty or non-empty origins on stream zero
  or other streams are processed by the framer.  Even though
  RFC7838 requires that these frames are ignored, this is done
  in a different layer.
* On the other hand, ALTSVC frames with invalid
  Alt-Svc-Field-Value result in an error.

These tests are parametrized, and are run both using SpdyFramer
(the old frame decoder) and Http2FrameDecoder (the new frame
decoder).  This ensures that behavior of the two decoders is
consistent.

This CL lands server change 148902601 by bnc.

BUG=488484,  696653 

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

[modify] https://crrev.com/9b550534ae5ce2e122e3a96086cd995070deddc4/net/spdy/spdy_framer_test.cc

Comment 5 by b...@chromium.org, Mar 6 2017

Status: Fixed (was: Started)
https://crrev.com/2702633004 concludes this issue (forgot to add BUG to CL description).

Sign in to add a comment