HTTP/2 PUSH allows a way for servers to proactively initiate streams, sending along header data, that clients can use and match with requests.
Blocking a request (such as onBeforeRequest) will not necessarily reject the H/2 PUSH'd stream. Further, altering a request (such as onBeforeSendHeaders) can cause a PUSH mismatch, as in order to consume a PUSH, the pushed data should match the request.
We should consider offering a callback to allow extension developers the ability to signal and reject pushed requests. Given that extensions do so today via the delegate interface, this would also overlap with various EM interventions about blocking requests, by allowing extensions to block pushes. Finally, it would offer extension developers the ability to measure push usage in the wild.
Comment 1 by rsleevi@chromium.org
, Oct 10 2017