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

* 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-06 10:31:09 -05:00
committed by GitHub
parent 8fd775faca
commit c4bfc1491a
3 changed files with 41 additions and 4 deletions

View File

@@ -17,6 +17,7 @@
#include "base/memory/raw_ptr.h"
#include "base/notreached.h"
#include "base/sequence_checker.h"
#include "content/public/browser/global_request_id.h"
#include "gin/object_template_builder.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "mojo/public/cpp/system/data_pipe_producer.h"
@@ -375,6 +376,13 @@ void SimpleURLLoaderWrapper::Start() {
loader_->SetAllowHttpErrorResults(true);
loader_->SetURLLoaderFactoryOptions(request_options_);
// Set a non-zero request ID so that the request can use the
// TrustedHeaderClient code path for webRequest header modifications.
// See proxying_url_loader_factory.cc for details.
if (electron::IsBrowserProcess()) {
loader_->SetRequestID(
content::GlobalRequestID::MakeBrowserInitiated().request_id);
}
loader_->SetOnResponseStartedCallback(base::BindOnce(
&SimpleURLLoaderWrapper::OnResponseStarted, weak_factory_.GetWeakPtr()));
loader_->SetOnRedirectCallback(base::BindRepeating(