New issue
Advanced search Search tips

Issue 810845 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

PUSH_PROMISE URL parsing in HTTP/2 and QUIC

Project Member Reported by wangyix@chromium.org, Feb 9 2018

Issue description

GetUrlFromHeaderBlock() in net/spdy/chromium/spdy_http_utils.cc needs to be updated to do something similar to GetPromisedUrlFromHeaderBlock() in  net/quic/core/spdy_utils.cc. :scheme, :authority, and :path headers need to be parsed and validated separately.

 
Cc: rch@chromium.org

Comment 2 by b...@chromium.org, Feb 9 2018

For what it's worth, GetUrlFromHeaderBlock() is not used any longer for HTTP/2 pushed streams since https://crrev.com/c/896808.

Actually I plan to eliminate GetUrlFromHeaderBlock() entirely.  It's only called from SpdyStream::SendRequestHeaders(), but the caller can just provide an URL instead (since it generates the header block based on the URL in the first place).
Components: Internals>Network
Components: Internals>Network>HTTP2
Components: -Internals>Network

Comment 6 by b...@chromium.org, Apr 27 2018

Cc: -b...@chromium.org
Owner: b...@chromium.org
Status: Assigned (was: Untriaged)

Comment 7 by b...@chromium.org, Apr 27 2018

GetUrlFromHeaderBlock() is only called in quic_chromium_client_session.cc and thus can be moved to the anonymous namespace in that file.

Comment 8 by b...@chromium.org, May 14 2018

Components: Internals>Network>QUIC
Status: Started (was: Assigned)
Summary: PUSH_PROMISE URL parsing in HTTP/2 and QUIC (was: PUSH_PROMISE URL parsing in SPDY)
Renaming issue, because seems like QUIC needs to be addressed as well as HTTP/2.  Turns out QuicClientPuthPromiseIndex::Try() is using GetPromisedUrlFromHeaders(), but QuicChromiumClientSession::HandlePromised() is the only caller of GetUrlFromHeaderBlock(), which is probably incorrect.


Cc: zhongyi@chromium.org

Comment 10 by b...@chromium.org, May 14 2018

FYI a fix is in progress at https://crrev.com/c/1057414.
Project Member

Comment 11 by bugdroid1@chromium.org, May 14 2018

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

commit 4c0b8a1e41b38b7930d30baeb33789d7303d741a
Author: Bence Béky <bnc@chromium.org>
Date: Mon May 14 21:25:38 2018

Use GetPromisedUrlFromHeaders() for QUIC pushed streams.

Just like it is already done for HTTP/2 pushed streams, and it is
already done in QuicClientPuthPromiseIndex::Try() for QUIC pushed
streams, use GetPromisedUrlFromHeaders() instead of
GetUrlFromHeaderBlock() in QuicChromiumClientSession::HandlePromised().

Bug:  810845 
Change-Id: I60a656f6e2d382bf7a1b5e288de4fb42e2a2d4db
Reviewed-on: https://chromium-review.googlesource.com/1057414
Commit-Queue: Ryan Hamilton <rch@chromium.org>
Reviewed-by: Ryan Hamilton <rch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558466}
[modify] https://crrev.com/4c0b8a1e41b38b7930d30baeb33789d7303d741a/net/quic/chromium/quic_chromium_client_session.cc
[modify] https://crrev.com/4c0b8a1e41b38b7930d30baeb33789d7303d741a/net/spdy/spdy_http_utils.cc
[modify] https://crrev.com/4c0b8a1e41b38b7930d30baeb33789d7303d741a/net/spdy/spdy_http_utils.h

Comment 12 by b...@chromium.org, May 15 2018

Status: Fixed (was: Started)
Labels: M-68

Sign in to add a comment