Pass origin to RegisterNonNetworkSubresourceURLLoaderFactories
This CL enables RegisterNonNetworkSubresourceURLLoaderFactories to retrieve the origin that is going to use the factories. Bug: 1227761 Change-Id: I3dfb9f14df8bf60c003efe2ea4281d92696d9501 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3350608 Reviewed-by: Łukasz Anforowicz <lukasza@chromium.org> Reviewed-by: Alex Moshchuk <alexmos@chromium.org> Reviewed-by: Hiroki Nakagawa <nhiroki@chromium.org> Reviewed-by: Devlin Cronin <rdevlin.cronin@chromium.org> Reviewed-by: Bo Liu <boliu@chromium.org> Reviewed-by: Wez <wez@chromium.org> Reviewed-by: Sean Topping <seantopping@chromium.org> Commit-Queue: Ghazale Hosseinabadi <ghazale@chromium.org> Cr-Commit-Position: refs/heads/main@{#956283}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
c8cac2b7c6
commit
fa65f3580f
android_webview/browser
chrome/browser
chromecast/browser
content
browser
devtools
protocol
download
renderer_host
service_worker
worker_host
public
extensions/shell/browser
fuchsia/engine/browser
@ -869,6 +869,7 @@ bool AwContentBrowserClient::HandleExternalProtocol(
|
||||
void AwContentBrowserClient::RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
int render_process_id,
|
||||
int render_frame_id,
|
||||
const absl::optional<url::Origin>& request_initiator_origin,
|
||||
NonNetworkURLLoaderFactoryMap* factories) {
|
||||
WebContents* web_contents = content::WebContents::FromRenderFrameHost(
|
||||
content::RenderFrameHost::FromID(render_process_id, render_frame_id));
|
||||
|
@ -193,6 +193,7 @@ class AwContentBrowserClient : public content::ContentBrowserClient {
|
||||
void RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
int render_process_id,
|
||||
int render_frame_id,
|
||||
const absl::optional<url::Origin>& request_initiator_origin,
|
||||
NonNetworkURLLoaderFactoryMap* factories) override;
|
||||
bool ShouldAllowNoLongerUsedProcessToExit() override;
|
||||
bool ShouldIsolateErrorPage(bool in_main_frame) override;
|
||||
|
@ -4903,6 +4903,7 @@ void ChromeContentBrowserClient::
|
||||
RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
int render_process_id,
|
||||
int render_frame_id,
|
||||
const absl::optional<url::Origin>& request_initiator_origin,
|
||||
NonNetworkURLLoaderFactoryMap* factories) {
|
||||
#if BUILDFLAG(IS_CHROMEOS_ASH) || BUILDFLAG(ENABLE_EXTENSIONS)
|
||||
content::RenderFrameHost* frame_host =
|
||||
|
@ -494,6 +494,7 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
|
||||
void RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
int render_process_id,
|
||||
int render_frame_id,
|
||||
const absl::optional<url::Origin>& request_initiator_origin,
|
||||
NonNetworkURLLoaderFactoryMap* factories) override;
|
||||
bool WillCreateURLLoaderFactory(
|
||||
content::BrowserContext* browser_context,
|
||||
|
@ -898,6 +898,7 @@ void CastContentBrowserClient::RegisterNonNetworkNavigationURLLoaderFactories(
|
||||
void CastContentBrowserClient::RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
int render_process_id,
|
||||
int render_frame_id,
|
||||
const absl::optional<url::Origin>& request_initiator_origin,
|
||||
NonNetworkURLLoaderFactoryMap* factories) {
|
||||
if (render_frame_id == MSG_ROUTING_NONE) {
|
||||
LOG(ERROR) << "Service worker not supported.";
|
||||
|
@ -250,6 +250,7 @@ class CastContentBrowserClient
|
||||
void RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
int render_process_id,
|
||||
int render_frame_id,
|
||||
const absl::optional<url::Origin>& request_initiator_origin,
|
||||
NonNetworkURLLoaderFactoryMap* factories) override;
|
||||
void OnNetworkServiceCreated(
|
||||
network::mojom::NetworkService* network_service) override;
|
||||
|
@ -2891,6 +2891,7 @@ CreateNetworkFactoryForDevTools(
|
||||
base::StringPiece scheme,
|
||||
RenderProcessHost* host,
|
||||
int routing_id,
|
||||
const url::Origin& origin,
|
||||
network::mojom::URLLoaderFactoryParamsPtr params) {
|
||||
if (!host || !params) {
|
||||
// Return an invalid remote by default.
|
||||
@ -2917,7 +2918,7 @@ CreateNetworkFactoryForDevTools(
|
||||
GetContentClient()
|
||||
->browser()
|
||||
->RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
host->GetID(), routing_id, &factories);
|
||||
host->GetID(), routing_id, origin, &factories);
|
||||
auto i = factories.find(std::string(scheme));
|
||||
if (i == factories.end()) {
|
||||
return {};
|
||||
@ -2990,7 +2991,7 @@ void NetworkHandler::LoadNetworkResource(
|
||||
|
||||
auto factory = CreateNetworkFactoryForDevTools(
|
||||
gurl.scheme(), frame->GetProcess(), frame->GetRoutingID(),
|
||||
std::move(params));
|
||||
frame->GetLastCommittedOrigin(), std::move(params));
|
||||
|
||||
url_loader_factory.Bind(std::move(factory));
|
||||
auto loader = DevToolsNetworkResourceLoader::Create(
|
||||
@ -3006,7 +3007,7 @@ void NetworkHandler::LoadNetworkResource(
|
||||
// TODO(sigurds): Support dedicated workers.
|
||||
auto info = host->CreateNetworkFactoryParamsForDevTools();
|
||||
auto factory = CreateNetworkFactoryForDevTools(
|
||||
gurl.scheme(), host->GetProcessHost(), MSG_ROUTING_NONE,
|
||||
gurl.scheme(), host->GetProcessHost(), MSG_ROUTING_NONE, info.origin,
|
||||
std::move(info.factory_params));
|
||||
if (factory.is_valid()) {
|
||||
url_loader_factory.Bind(std::move(factory));
|
||||
|
@ -1361,7 +1361,7 @@ void DownloadManagerImpl::BeginResourceDownloadOnChecksComplete(
|
||||
->browser()
|
||||
->RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
params->render_process_host_id(),
|
||||
params->render_frame_host_routing_id(),
|
||||
params->render_frame_host_routing_id(), params->initiator(),
|
||||
&non_network_url_loader_factories);
|
||||
auto it = non_network_url_loader_factories.find(params->url().scheme());
|
||||
if (it != non_network_url_loader_factories.end()) {
|
||||
|
@ -8085,7 +8085,9 @@ void RenderFrameHostImpl::CommitNavigation(
|
||||
GetContentClient()
|
||||
->browser()
|
||||
->RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
GetProcess()->GetID(), routing_id_, &non_network_factories);
|
||||
GetProcess()->GetID(), routing_id_,
|
||||
subresource_loader_factories_config.origin(),
|
||||
&non_network_factories);
|
||||
|
||||
for (auto& factory : non_network_factories) {
|
||||
mojo::PendingRemote<network::mojom::URLLoaderFactory>
|
||||
|
@ -815,7 +815,7 @@ EmbeddedWorkerInstance::CreateFactoryBundle(
|
||||
GetContentClient()
|
||||
->browser()
|
||||
->RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
rph->GetID(), MSG_ROUTING_NONE, &non_network_factories);
|
||||
rph->GetID(), MSG_ROUTING_NONE, origin, &non_network_factories);
|
||||
|
||||
for (auto& pair : non_network_factories) {
|
||||
const std::string& scheme = pair.first;
|
||||
|
@ -475,7 +475,8 @@ WorkerScriptFetcher::CreateFactoryBundle(
|
||||
GetContentClient()
|
||||
->browser()
|
||||
->RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
worker_process_id, MSG_ROUTING_NONE, &non_network_factories);
|
||||
worker_process_id, MSG_ROUTING_NONE,
|
||||
request_initiator_storage_key.origin(), &non_network_factories);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -792,6 +792,7 @@ void ContentBrowserClient::
|
||||
void ContentBrowserClient::RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
int render_process_id,
|
||||
int render_frame_id,
|
||||
const absl::optional<url::Origin>& request_initiator_origin,
|
||||
NonNetworkURLLoaderFactoryMap* factories) {}
|
||||
|
||||
bool ContentBrowserClient::WillCreateURLLoaderFactory(
|
||||
|
@ -1358,6 +1358,7 @@ class CONTENT_EXPORT ContentBrowserClient {
|
||||
virtual void RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
int render_process_id,
|
||||
int render_frame_id,
|
||||
const absl::optional<url::Origin>& request_initiator_origin,
|
||||
NonNetworkURLLoaderFactoryMap* factories);
|
||||
|
||||
// Describes the purpose of the factory in WillCreateURLLoaderFactory().
|
||||
|
@ -311,6 +311,7 @@ void ShellContentBrowserClient::
|
||||
void ShellContentBrowserClient::RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
int render_process_id,
|
||||
int render_frame_id,
|
||||
const absl::optional<url::Origin>& request_initiator_origin,
|
||||
NonNetworkURLLoaderFactoryMap* factories) {
|
||||
DCHECK(factories);
|
||||
|
||||
|
@ -102,6 +102,7 @@ class ShellContentBrowserClient : public content::ContentBrowserClient {
|
||||
void RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
int render_process_id,
|
||||
int render_frame_id,
|
||||
const absl::optional<url::Origin>& request_initiator_origin,
|
||||
NonNetworkURLLoaderFactoryMap* factories) override;
|
||||
bool WillCreateURLLoaderFactory(
|
||||
content::BrowserContext* browser_context,
|
||||
|
@ -167,6 +167,7 @@ void WebEngineContentBrowserClient::
|
||||
RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
int render_process_id,
|
||||
int render_frame_id,
|
||||
const absl::optional<url::Origin>& request_initiator_origin,
|
||||
NonNetworkURLLoaderFactoryMap* factories) {
|
||||
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
||||
switches::kEnableContentDirectories)) {
|
||||
|
@ -46,6 +46,7 @@ class WebEngineContentBrowserClient final
|
||||
void RegisterNonNetworkSubresourceURLLoaderFactories(
|
||||
int render_process_id,
|
||||
int render_frame_id,
|
||||
const absl::optional<url::Origin>& request_initiator_origin,
|
||||
NonNetworkURLLoaderFactoryMap* factories) override;
|
||||
bool ShouldEnableStrictSiteIsolation() override;
|
||||
void AppendExtraCommandLineSwitches(base::CommandLine* command_line,
|
||||
|
Reference in New Issue
Block a user