Add histogram for HTTP/2 push header validation |
||
Issue descriptionAfter issue 554220 is completed, exactly one of the following can happen to any stream pushed on an HTTP/2 connection: * the pushed stream is rejected when received (for example, because of invalid scheme or method); * the pushed stream is rejected when a request is generated because the pushed response headers have not been received yet; * the pushed stream is rejected when the pushed response headers are received (for example, because the response is 206 Partial Range); * the pushed stream is rejected when a request is generated because the pushed response headers do not match the request headers (for example, because of Vary header); * the pushed stream is matched with a request; * the pushed stream is never matched with a request and is reset after a timeout. A histogram is needed with these buckets that is recorded exactly once for every pushed stream.
,
May 14 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6d5075c4f0103c938c3fbdbe279c40a3efdde3b6 commit 6d5075c4f0103c938c3fbdbe279c40a3efdde3b6 Author: Bence Béky <bnc@chromium.org> Date: Mon May 14 10:07:52 2018 Do not handle impossible cases in SpdySession. Clean up some corner cases concerning HTTP/2 pushed streams. I plan to add a histogram that records every possible outcome of receiving a pushed stream, and it is cleaner if impossible cases are not handled with an early return, but they are simply documented by a DCHECK. Note that GetPromisedUrlFromHeaders() guarantees a lot of things about the pushed request: if the scheme is not http or https, or if the method is not GET or HEAD, then it returns an invalid URL. Therefore there is no need to handle these cases explicitly in SpdySession. There is test coverage in SpdyNetworkTransactionTest that enforces this. Bug: 831536 Change-Id: Ic3dae56b026598fa2965c8eee0db02cfbc95eb06 Reviewed-on: https://chromium-review.googlesource.com/1055760 Commit-Queue: Bence Béky <bnc@chromium.org> Reviewed-by: Ryan Hamilton <rch@chromium.org> Cr-Commit-Position: refs/heads/master@{#558244} [modify] https://crrev.com/6d5075c4f0103c938c3fbdbe279c40a3efdde3b6/net/spdy/spdy_session.cc
,
May 14 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/eacd48f8498212b43d7cefee9acaf38bae16ef6a commit eacd48f8498212b43d7cefee9acaf38bae16ef6a Author: Bence Béky <bnc@chromium.org> Date: Mon May 14 11:34:33 2018 Add histogram to track fate of HTTP/2 pushed streams. Bug: 831536 Change-Id: I4d0d859eafdcc89457e5d2224ddc42908e5b41d8 Reviewed-on: https://chromium-review.googlesource.com/1055949 Commit-Queue: Bence Béky <bnc@chromium.org> Reviewed-by: Gayane Petrosyan <gayane@chromium.org> Reviewed-by: Ryan Hamilton <rch@chromium.org> Cr-Commit-Position: refs/heads/master@{#558261} [modify] https://crrev.com/eacd48f8498212b43d7cefee9acaf38bae16ef6a/net/spdy/spdy_http_stream.cc [modify] https://crrev.com/eacd48f8498212b43d7cefee9acaf38bae16ef6a/net/spdy/spdy_network_transaction_unittest.cc [modify] https://crrev.com/eacd48f8498212b43d7cefee9acaf38bae16ef6a/net/spdy/spdy_session.cc [modify] https://crrev.com/eacd48f8498212b43d7cefee9acaf38bae16ef6a/net/spdy/spdy_session.h [modify] https://crrev.com/eacd48f8498212b43d7cefee9acaf38bae16ef6a/net/spdy/spdy_session_unittest.cc [modify] https://crrev.com/eacd48f8498212b43d7cefee9acaf38bae16ef6a/tools/metrics/histograms/enums.xml [modify] https://crrev.com/eacd48f8498212b43d7cefee9acaf38bae16ef6a/tools/metrics/histograms/histograms.xml
,
May 14 2018
,
May 24 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/40e9c2237ae1a0d338ba596bf4c661f07bbc8080 commit 40e9c2237ae1a0d338ba596bf4c661f07bbc8080 Author: Bence Béky <bnc@chromium.org> Date: Thu May 24 20:21:20 2018 Do not expand UMA_HISTOGRAM_ENUMERATION in 19 places. Instead of expanding UMA_HISTOGRAM_ENUMERATION macro in 19 places, use a single static method to log this histogram. The motivation for this change is to avoid binary bloat. This is a follow-up to https://crrev.com/c/1055949. This CL results in 2384 byte decrease in binary size for locally compiled release build on Linux, and no change for debug build. Bug: 831536 Change-Id: I0b5e741e29529c9f6ae22336b3a6c3d194042249 Reviewed-on: https://chromium-review.googlesource.com/1071731 Reviewed-by: Charlie Harrison <csharrison@chromium.org> Commit-Queue: Bence Béky <bnc@chromium.org> Cr-Commit-Position: refs/heads/master@{#561607} [modify] https://crrev.com/40e9c2237ae1a0d338ba596bf4c661f07bbc8080/net/spdy/spdy_http_stream.cc [modify] https://crrev.com/40e9c2237ae1a0d338ba596bf4c661f07bbc8080/net/spdy/spdy_session.cc [modify] https://crrev.com/40e9c2237ae1a0d338ba596bf4c661f07bbc8080/net/spdy/spdy_session.h |
||
►
Sign in to add a comment |
||
Comment 1 by bugdroid1@chromium.org
, May 14 2018