fix: webRequest.onBeforeSendHeaders not being able to modify reserved headers (#49242)

* fix: `webRequest.onBeforeSendHeaders` not being able to modify reserved headers

Co-authored-by: Samuel Attard <sattard@anthropic.com>

* chore: add unit test for reserved header

Co-authored-by: Samuel Attard <sattard@anthropic.com>

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <sattard@anthropic.com>
This commit is contained in:
trop[bot]
2026-01-05 16:30:50 -05:00
committed by GitHub
parent d8687cfc9d
commit ade4c00984
3 changed files with 41 additions and 4 deletions

View File

@@ -55,9 +55,9 @@ ProxyingURLLoaderFactory::InProgressRequest::InProgressRequest(
proxied_loader_receiver_(this, std::move(loader_receiver)),
target_client_(std::move(client)),
current_response_(network::mojom::URLResponseHead::New()),
// Always use "extraHeaders" mode to be compatible with old APIs, except
// when the |request_id_| is zero, which is not supported in Chromium and
// only happens in Electron when the request is started from net module.
// Always use "extraHeaders" mode to be compatible with old APIs.
// A non-zero request ID is required to use the TrustedHeaderClient path
// which allows webRequest to modify headers like Proxy-Authorization.
has_any_extra_headers_listeners_(network_service_request_id != 0) {
// If there is a client error, clean up the request.
target_client_.set_disconnect_handler(base::BindOnce(