From be0664d51ffd703f047638648af3dfe7efb3e951 Mon Sep 17 00:00:00 2001 From: Adrienne Walker Date: Tue, 12 Oct 2021 17:51:41 +0000 Subject: [PATCH] appcache: Remove AppCacheFactory from url loader factory bundle Bug: 582750 Change-Id: I30f60dce343e1a702f314bf2b10290f64734c1cd Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3208947 Auto-Submit: enne Reviewed-by: Dmitry Gozman Reviewed-by: Nate Chapin Reviewed-by: Daniel Cheng Commit-Queue: enne Cr-Commit-Position: refs/heads/main@{#930644} --- .../appcache/appcache_request_handler.cc | 14 +-- .../navigation_subresource_loader_params.cc | 2 - .../navigation_subresource_loader_params.h | 6 -- .../renderer_host/render_frame_host_impl.cc | 34 -------- .../shared_worker_host_unittest.cc | 2 - .../worker_host/worker_script_fetcher.cc | 7 -- content/renderer/render_frame_impl.cc | 4 +- .../dedicated_worker_host_factory_client.cc | 5 +- .../worker/embedded_shared_worker_stub.cc | 5 +- .../loader/url_loader_factory_bundle.cc | 15 ---- .../url_loader_factory_bundle_mojom_traits.cc | 8 -- .../common/loader/url_loader_factory_bundle.h | 12 --- .../loader/url_loader_factory_bundle.mojom | 4 - .../child_url_loader_factory_bundle.h | 13 --- .../tracked_child_url_loader_factory_bundle.h | 4 - .../loader/child_url_loader_factory_bundle.cc | 86 ++++++------------- ...ted_or_shared_worker_fetch_context_impl.cc | 2 +- ...tracked_child_url_loader_factory_bundle.cc | 28 ------ 18 files changed, 37 insertions(+), 214 deletions(-) diff --git a/content/browser/appcache/appcache_request_handler.cc b/content/browser/appcache/appcache_request_handler.cc index 3d24d6840906e9..724801692f82b3 100644 --- a/content/browser/appcache/appcache_request_handler.cc +++ b/content/browser/appcache/appcache_request_handler.cc @@ -645,18 +645,8 @@ bool AppCacheRequestHandler::MaybeCreateLoaderForResponse( absl::optional AppCacheRequestHandler::MaybeCreateSubresourceLoaderParams() { - if (!should_create_subresource_loader_) - return absl::nullopt; - - // The factory is destroyed when the renderer drops the connection. - mojo::PendingRemote factory_remote; - - AppCacheSubresourceURLFactory::CreateURLLoaderFactory( - appcache_host_, factory_remote.InitWithNewPipeAndPassReceiver()); - - SubresourceLoaderParams params; - params.pending_appcache_loader_factory = std::move(factory_remote); - return absl::optional(std::move(params)); + // TODO(enne): remove the rest of this file. + return absl::nullopt; } void AppCacheRequestHandler::MaybeCreateSubresourceLoader( diff --git a/content/browser/navigation_subresource_loader_params.cc b/content/browser/navigation_subresource_loader_params.cc index 0f92d787607820..1fc76c49f8eb1a 100644 --- a/content/browser/navigation_subresource_loader_params.cc +++ b/content/browser/navigation_subresource_loader_params.cc @@ -16,8 +16,6 @@ SubresourceLoaderParams::SubresourceLoaderParams( SubresourceLoaderParams& SubresourceLoaderParams::operator=( SubresourceLoaderParams&& other) { - pending_appcache_loader_factory = - std::move(other.pending_appcache_loader_factory); controller_service_worker_info = std::move(other.controller_service_worker_info); controller_service_worker_object_host = diff --git a/content/browser/navigation_subresource_loader_params.h b/content/browser/navigation_subresource_loader_params.h index 62c18479dcb6cb..c6180b86145cb2 100644 --- a/content/browser/navigation_subresource_loader_params.h +++ b/content/browser/navigation_subresource_loader_params.h @@ -27,12 +27,6 @@ struct CONTENT_EXPORT SubresourceLoaderParams { SubresourceLoaderParams(SubresourceLoaderParams&& other); SubresourceLoaderParams& operator=(SubresourceLoaderParams&& other); - // For AppCache. - // Subresource loader factory info for appcache, that is to be used to - // create a subresource loader in the renderer. - mojo::PendingRemote - pending_appcache_loader_factory; - // For ServiceWorkers. // The controller service worker, non-null if the frame is to be // controlled by the service worker. diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc index 754d634b04d59e..a2c0654fe3f542 100644 --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc @@ -7783,40 +7783,6 @@ void RenderFrameHostImpl::CommitNavigation( .GetTupleOrPrecursorTupleIfOpaque() .scheme(); - // NOTE: On Network Service navigations, we want to ensure that a frame is - // given everything it will need to load any accessible subresources. We - // however only do this for cross-document navigations, because the - // alternative would be redundant effort. - if (subresource_loader_params && - subresource_loader_params->pending_appcache_loader_factory.is_valid()) { - // If the caller has supplied a factory for AppCache, use it. - mojo::Remote appcache_remote(std::move( - subresource_loader_params->pending_appcache_loader_factory)); - - mojo::PendingRemote - appcache_proxied_remote; - auto appcache_proxied_receiver = - appcache_proxied_remote.InitWithNewPipeAndPassReceiver(); - bool use_proxy = - GetContentClient()->browser()->WillCreateURLLoaderFactory( - browser_context, this, GetProcess()->GetID(), - ContentBrowserClient::URLLoaderFactoryType::kDocumentSubResource, - subresource_loader_factories_config.origin(), - /*navigation_id=*/absl::nullopt, - subresource_loader_factories_config.ukm_source_id(), - &appcache_proxied_receiver, /*header_client=*/nullptr, - /*bypass_redirect_checks=*/nullptr, - /*disable_secure_dns=*/nullptr, /*factory_override=*/nullptr); - if (use_proxy) { - appcache_remote->Clone(std::move(appcache_proxied_receiver)); - appcache_remote.reset(); - appcache_remote.Bind(std::move(appcache_proxied_remote)); - } - - subresource_loader_factories->pending_appcache_factory() = - appcache_remote.Unbind(); - } - ContentBrowserClient::NonNetworkURLLoaderFactoryMap non_network_factories; // Set up the default factory. diff --git a/content/browser/worker_host/shared_worker_host_unittest.cc b/content/browser/worker_host/shared_worker_host_unittest.cc index bb03db51cf91e3..3d776621564cb9 100644 --- a/content/browser/worker_host/shared_worker_host_unittest.cc +++ b/content/browser/worker_host/shared_worker_host_unittest.cc @@ -113,8 +113,6 @@ class SharedWorkerHostTest : public testing::Test { mojo::PendingRemote loader_factory_remote = network::NotImplementedURLLoaderFactory::Create(); - subresource_loader_params->pending_appcache_loader_factory = - std::move(loader_factory_remote); // Set up for service worker. auto service_worker_handle = diff --git a/content/browser/worker_host/worker_script_fetcher.cc b/content/browser/worker_host/worker_script_fetcher.cc index f635246dee19a2..c00b61c45131cc 100644 --- a/content/browser/worker_host/worker_script_fetcher.cc +++ b/content/browser/worker_host/worker_script_fetcher.cc @@ -114,13 +114,6 @@ void DidCreateScriptLoader( bool success) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - // If a URLLoaderFactory for AppCache is supplied, use that. - if (subresource_loader_params && - subresource_loader_params->pending_appcache_loader_factory) { - subresource_loader_factories->pending_appcache_factory() = - std::move(subresource_loader_params->pending_appcache_loader_factory); - } - // Prepare the controller service worker info to pass to the renderer. blink::mojom::ControllerServiceWorkerInfoPtr controller; base::WeakPtr controller_service_worker_object_host; diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 01171579c3addb..c70c1a418fdc7d 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc @@ -2887,7 +2887,7 @@ void RenderFrameImpl::CommitNavigationWithParams( this, std::move(container_info), std::move(controller_service_worker_info), network::SharedURLLoaderFactory::Create( - new_loader_factories->CloneWithoutAppCacheFactory())); + new_loader_factories->Clone())); } WebString subresource_filter = navigation_params->response.HttpHeaderField( @@ -3363,7 +3363,7 @@ RenderFrameImpl::CreateWorkerFetchContext() { blink::WebDedicatedOrSharedWorkerFetchContext::Create( provider->context(), GetWebView()->GetRendererPreferences(), std::move(watcher_receiver), GetLoaderFactoryBundle()->Clone(), - GetLoaderFactoryBundle()->CloneWithoutAppCacheFactory(), + GetLoaderFactoryBundle()->Clone(), /*pending_subresource_loader_updater=*/mojo::NullReceiver(), web_cors_exempt_header_list, std::move(pending_resource_load_info_notifier)); diff --git a/content/renderer/worker/dedicated_worker_host_factory_client.cc b/content/renderer/worker/dedicated_worker_host_factory_client.cc index d2197eed1eff61..c322ecf75b7957 100644 --- a/content/renderer/worker/dedicated_worker_host_factory_client.cc +++ b/content/renderer/worker/dedicated_worker_host_factory_client.cc @@ -83,8 +83,7 @@ DedicatedWorkerHostFactoryClient::CloneWorkerFetchContext( ->CloneForNestedWorker( service_worker_provider_context_.get(), subresource_loader_factory_bundle_->Clone(), - subresource_loader_factory_bundle_ - ->CloneWithoutAppCacheFactory(), + subresource_loader_factory_bundle_->Clone(), std::move(pending_subresource_loader_updater_), std::move(task_runner)); } else { @@ -119,7 +118,7 @@ DedicatedWorkerHostFactoryClient::CreateWorkerFetchContext( service_worker_provider_context_.get(), renderer_preference, std::move(watcher_receiver), subresource_loader_factory_bundle_->Clone(), - subresource_loader_factory_bundle_->CloneWithoutAppCacheFactory(), + subresource_loader_factory_bundle_->Clone(), std::move(pending_subresource_loader_updater_), web_cors_exempt_header_list, std::move(pending_resource_load_info_notifier)); diff --git a/content/renderer/worker/embedded_shared_worker_stub.cc b/content/renderer/worker/embedded_shared_worker_stub.cc index ebb5b2c54d0c88..5e851e7bb9a39f 100644 --- a/content/renderer/worker/embedded_shared_worker_stub.cc +++ b/content/renderer/worker/embedded_shared_worker_stub.cc @@ -150,10 +150,9 @@ EmbeddedSharedWorkerStub::CreateWorkerFetchContext( mojo::PendingReceiver preference_watcher_receiver, const std::vector& cors_exempt_header_list) { - // Make the factory used for service worker network fallback (that should - // skip AppCache if it is provided). + // Make the factory used for service worker network fallback. std::unique_ptr fallback_factory = - subresource_loader_factory_bundle_->CloneWithoutAppCacheFactory(); + subresource_loader_factory_bundle_->Clone(); blink::WebVector web_cors_exempt_header_list( cors_exempt_header_list.size()); diff --git a/third_party/blink/common/loader/url_loader_factory_bundle.cc b/third_party/blink/common/loader/url_loader_factory_bundle.cc index c8dcae3d3b329f..39e16d966ce76d 100644 --- a/third_party/blink/common/loader/url_loader_factory_bundle.cc +++ b/third_party/blink/common/loader/url_loader_factory_bundle.cc @@ -59,7 +59,6 @@ scoped_refptr PendingURLLoaderFactoryBundle::CreateFactory() { auto other = std::make_unique(); other->pending_default_factory_ = std::move(pending_default_factory_); - other->pending_appcache_factory_ = std::move(pending_appcache_factory_); other->pending_scheme_specific_factories_ = std::move(pending_scheme_specific_factories_); other->pending_isolated_world_factories_ = @@ -93,10 +92,6 @@ network::mojom::URLLoaderFactory* URLLoaderFactoryBundle::GetFactory( return it2->second.get(); } - // AppCache factory must be used if it's given. - if (appcache_factory_) - return appcache_factory_.get(); - // Hitting the DCHECK below means that a subresource load has unexpectedly // happened in a speculative frame (or in a test frame created via // RenderViewTest). This most likely indicates a bug somewhere else. @@ -137,11 +132,6 @@ URLLoaderFactoryBundle::Clone() { CloneRemoteMapToPendingRemoteMap(isolated_world_factories_), bypass_redirect_checks_); - if (appcache_factory_) { - appcache_factory_->Clone(pending_factories->pending_appcache_factory() - .InitWithNewPipeAndPassReceiver()); - } - return pending_factories; } @@ -156,11 +146,6 @@ void URLLoaderFactoryBundle::Update( default_factory_.Bind( std::move(pending_factories->pending_default_factory())); } - if (pending_factories->pending_appcache_factory()) { - appcache_factory_.reset(); - appcache_factory_.Bind( - std::move(pending_factories->pending_appcache_factory())); - } BindPendingRemoteMapToRemoteMap( &scheme_specific_factories_, std::move(pending_factories->pending_scheme_specific_factories())); diff --git a/third_party/blink/common/loader/url_loader_factory_bundle_mojom_traits.cc b/third_party/blink/common/loader/url_loader_factory_bundle_mojom_traits.cc index 843e83911529e4..9ed45a865a98dd 100644 --- a/third_party/blink/common/loader/url_loader_factory_bundle_mojom_traits.cc +++ b/third_party/blink/common/loader/url_loader_factory_bundle_mojom_traits.cc @@ -21,12 +21,6 @@ mojo::PendingRemote Traits::default_factory( return std::move(bundle->pending_default_factory()); } -// static -mojo::PendingRemote Traits::appcache_factory( - BundleInfoType& bundle) { - return std::move(bundle->pending_appcache_factory()); -} - // static blink::PendingURLLoaderFactoryBundle::SchemeMap Traits::scheme_specific_factories(BundleInfoType& bundle) { @@ -51,8 +45,6 @@ bool Traits::Read(blink::mojom::URLLoaderFactoryBundleDataView data, (*out_bundle)->pending_default_factory() = data.TakeDefaultFactory< mojo::PendingRemote>(); - (*out_bundle)->pending_appcache_factory() = data.TakeAppcacheFactory< - mojo::PendingRemote>(); if (!data.ReadSchemeSpecificFactories( &(*out_bundle)->pending_scheme_specific_factories())) { return false; diff --git a/third_party/blink/public/common/loader/url_loader_factory_bundle.h b/third_party/blink/public/common/loader/url_loader_factory_bundle.h index eab9f521bbcdb4..e47e3938e27175 100644 --- a/third_party/blink/public/common/loader/url_loader_factory_bundle.h +++ b/third_party/blink/public/common/loader/url_loader_factory_bundle.h @@ -60,11 +60,6 @@ class BLINK_COMMON_EXPORT PendingURLLoaderFactoryBundle return pending_default_factory_; } - mojo::PendingRemote& - pending_appcache_factory() { - return pending_appcache_factory_; - } - SchemeMap& pending_scheme_specific_factories() { return pending_scheme_specific_factories_; } @@ -85,8 +80,6 @@ class BLINK_COMMON_EXPORT PendingURLLoaderFactoryBundle mojo::PendingRemote pending_default_factory_; - mojo::PendingRemote - pending_appcache_factory_; SchemeMap pending_scheme_specific_factories_; // TODO(https://crbug.com/1098410): Remove the @@ -156,11 +149,6 @@ class BLINK_COMMON_EXPORT URLLoaderFactoryBundle // context should not be given access to the network. mojo::Remote default_factory_; - // |appcache_factory_| is a special loader factory that intercepts - // requests when the context has AppCache. See also - // AppCacheSubresourceURLFactory. - mojo::Remote appcache_factory_; - // Map from URL scheme to Remote for handling URL requests // for schemes not handled by the |default_factory_|. See also // PendingURLLoaderFactoryBundle::SchemeMap and diff --git a/third_party/blink/public/mojom/loader/url_loader_factory_bundle.mojom b/third_party/blink/public/mojom/loader/url_loader_factory_bundle.mojom index 82abe20de0c077..aa3e86f9e52035 100644 --- a/third_party/blink/public/mojom/loader/url_loader_factory_bundle.mojom +++ b/third_party/blink/public/mojom/loader/url_loader_factory_bundle.mojom @@ -30,10 +30,6 @@ struct URLLoaderFactoryBundle { map> isolated_world_factories; - // A special factory that is used for AppCache. - // TODO(https://crbug.com/582750): Drop this when AppCache is deprecated. - pending_remote? appcache_factory; - // Whether redirect checks should be bypassed, since they are happening in the // browser. bool bypass_redirect_checks = false; diff --git a/third_party/blink/public/platform/child_url_loader_factory_bundle.h b/third_party/blink/public/platform/child_url_loader_factory_bundle.h index 70656202beaa58..f4cdf6787f690c 100644 --- a/third_party/blink/public/platform/child_url_loader_factory_bundle.h +++ b/third_party/blink/public/platform/child_url_loader_factory_bundle.h @@ -38,8 +38,6 @@ class BLINK_PLATFORM_EXPORT ChildPendingURLLoaderFactoryBundle ChildPendingURLLoaderFactoryBundle( mojo::PendingRemote pending_default_factory, - mojo::PendingRemote - pending_default_network_factory, SchemeMap pending_scheme_specific_factories, OriginMap pending_isolated_world_factories, mojo::PendingRemote @@ -58,7 +56,6 @@ class BLINK_PLATFORM_EXPORT ChildPendingURLLoaderFactoryBundle std::unique_ptr pending_bundle( new ChildPendingURLLoaderFactoryBundle( std::move(pending_default_factory), - {}, // pending_default_network_factory {}, // pending_scheme_specific_factories {}, // pending_isolated_world_factories {}, // pending_prefetch_loader_factory @@ -100,13 +97,6 @@ class BLINK_PLATFORM_EXPORT ChildURLLoaderFactoryBundle override; std::unique_ptr Clone() override; - // Does the same as Clone(), but without cloning the appcache_factory_. - // This is used for creating a bundle for network fallback loading with - // Service Workers (where AppCache must be skipped), and only when - // claim() is called. - virtual std::unique_ptr - CloneWithoutAppCacheFactory(); - std::unique_ptr PassInterface(); void Update( @@ -124,9 +114,6 @@ class BLINK_PLATFORM_EXPORT ChildURLLoaderFactoryBundle ~ChildURLLoaderFactoryBundle() override; private: - std::unique_ptr CloneInternal( - bool include_appcache); - mojo::Remote prefetch_loader_factory_; std::map subresource_overrides_; diff --git a/third_party/blink/public/platform/tracked_child_url_loader_factory_bundle.h b/third_party/blink/public/platform/tracked_child_url_loader_factory_bundle.h index 1810078a5cd2f0..05df1e51a93a1b 100644 --- a/third_party/blink/public/platform/tracked_child_url_loader_factory_bundle.h +++ b/third_party/blink/public/platform/tracked_child_url_loader_factory_bundle.h @@ -31,8 +31,6 @@ class BLINK_PLATFORM_EXPORT TrackedChildPendingURLLoaderFactoryBundle TrackedChildPendingURLLoaderFactoryBundle( mojo::PendingRemote pending_default_factory, - mojo::PendingRemote - pending_appcache_factory, SchemeMap pending_scheme_specific_factories, OriginMap pending_isolated_world_factories, mojo::PendingRemote @@ -135,8 +133,6 @@ class BLINK_PLATFORM_EXPORT HostChildURLLoaderFactoryBundle // ChildURLLoaderFactoryBundle overrides. // Returns |std::unique_ptr|. std::unique_ptr Clone() override; - std::unique_ptr - CloneWithoutAppCacheFactory() override; bool IsHostChildURLLoaderFactoryBundle() const override; // Update this bundle with |info|, and post cloned |info| to tracked bundles. diff --git a/third_party/blink/renderer/platform/loader/child_url_loader_factory_bundle.cc b/third_party/blink/renderer/platform/loader/child_url_loader_factory_bundle.cc index f7e9689c20592e..8be819e356a488 100644 --- a/third_party/blink/renderer/platform/loader/child_url_loader_factory_bundle.cc +++ b/third_party/blink/renderer/platform/loader/child_url_loader_factory_bundle.cc @@ -137,15 +137,11 @@ ChildPendingURLLoaderFactoryBundle::ChildPendingURLLoaderFactoryBundle( std::move(base_factories->pending_scheme_specific_factories()), std::move(base_factories->pending_isolated_world_factories()), base_factories->bypass_redirect_checks()) { - pending_appcache_factory_ = - std::move(base_factories->pending_appcache_factory()); } ChildPendingURLLoaderFactoryBundle::ChildPendingURLLoaderFactoryBundle( mojo::PendingRemote pending_default_factory, - mojo::PendingRemote - pending_appcache_factory, SchemeMap pending_scheme_specific_factories, OriginMap pending_isolated_world_factories, mojo::PendingRemote @@ -157,9 +153,7 @@ ChildPendingURLLoaderFactoryBundle::ChildPendingURLLoaderFactoryBundle( std::move(pending_isolated_world_factories), bypass_redirect_checks), pending_prefetch_loader_factory_( - std::move(pending_prefetch_loader_factory)) { - pending_appcache_factory_ = std::move(pending_appcache_factory); -} + std::move(pending_prefetch_loader_factory)) {} ChildPendingURLLoaderFactoryBundle::~ChildPendingURLLoaderFactoryBundle() = default; @@ -168,7 +162,6 @@ scoped_refptr ChildPendingURLLoaderFactoryBundle::CreateFactory() { auto other = std::make_unique(); other->pending_default_factory_ = std::move(pending_default_factory_); - other->pending_appcache_factory_ = std::move(pending_appcache_factory_); other->pending_scheme_specific_factories_ = std::move(pending_scheme_specific_factories_); other->pending_isolated_world_factories_ = @@ -238,42 +231,6 @@ void ChildURLLoaderFactoryBundle::CreateLoaderAndStart( std::unique_ptr ChildURLLoaderFactoryBundle::Clone() { - return CloneInternal(true /* include_appcache */); -} - -std::unique_ptr -ChildURLLoaderFactoryBundle::CloneWithoutAppCacheFactory() { - return CloneInternal(false /* include_appcache */); -} - -void ChildURLLoaderFactoryBundle::Update( - std::unique_ptr info) { - if (info->pending_prefetch_loader_factory()) { - prefetch_loader_factory_.Bind( - std::move(info->pending_prefetch_loader_factory())); - } - URLLoaderFactoryBundle::Update(std::move(info)); -} - -void ChildURLLoaderFactoryBundle::UpdateSubresourceOverrides( - std::vector* - subresource_overrides) { - for (auto& element : *subresource_overrides) - subresource_overrides_[element->url] = std::move(element); -} - -void ChildURLLoaderFactoryBundle::SetPrefetchLoaderFactory( - mojo::PendingRemote - prefetch_loader_factory) { - prefetch_loader_factory_.Bind(std::move(prefetch_loader_factory)); -} - -bool ChildURLLoaderFactoryBundle::IsHostChildURLLoaderFactoryBundle() const { - return false; -} - -std::unique_ptr -ChildURLLoaderFactoryBundle::CloneInternal(bool include_appcache) { mojo::PendingRemote default_factory_pending_remote; if (default_factory_) { @@ -281,13 +238,6 @@ ChildURLLoaderFactoryBundle::CloneInternal(bool include_appcache) { default_factory_pending_remote.InitWithNewPipeAndPassReceiver()); } - mojo::PendingRemote - appcache_factory_pending_remote; - if (appcache_factory_ && include_appcache) { - appcache_factory_->Clone( - appcache_factory_pending_remote.InitWithNewPipeAndPassReceiver()); - } - mojo::PendingRemote pending_prefetch_loader_factory; if (prefetch_loader_factory_) { @@ -300,7 +250,6 @@ ChildURLLoaderFactoryBundle::CloneInternal(bool include_appcache) { return std::make_unique( std::move(default_factory_pending_remote), - std::move(appcache_factory_pending_remote), CloneRemoteMapToPendingRemoteMap(scheme_specific_factories_), CloneRemoteMapToPendingRemoteMap(isolated_world_factories_), std::move(pending_prefetch_loader_factory), bypass_redirect_checks_); @@ -312,11 +261,6 @@ ChildURLLoaderFactoryBundle::PassInterface() { if (default_factory_) pending_default_factory = default_factory_.Unbind(); - mojo::PendingRemote - pending_appcache_factory; - if (appcache_factory_) - pending_appcache_factory = appcache_factory_.Unbind(); - mojo::PendingRemote pending_prefetch_loader_factory; if (prefetch_loader_factory_) { @@ -324,10 +268,36 @@ ChildURLLoaderFactoryBundle::PassInterface() { } return std::make_unique( - std::move(pending_default_factory), std::move(pending_appcache_factory), + std::move(pending_default_factory), BoundRemoteMapToPendingRemoteMap(std::move(scheme_specific_factories_)), BoundRemoteMapToPendingRemoteMap(std::move(isolated_world_factories_)), std::move(pending_prefetch_loader_factory), bypass_redirect_checks_); } +void ChildURLLoaderFactoryBundle::Update( + std::unique_ptr info) { + if (info->pending_prefetch_loader_factory()) { + prefetch_loader_factory_.Bind( + std::move(info->pending_prefetch_loader_factory())); + } + URLLoaderFactoryBundle::Update(std::move(info)); +} + +void ChildURLLoaderFactoryBundle::UpdateSubresourceOverrides( + std::vector* + subresource_overrides) { + for (auto& element : *subresource_overrides) + subresource_overrides_[element->url] = std::move(element); +} + +void ChildURLLoaderFactoryBundle::SetPrefetchLoaderFactory( + mojo::PendingRemote + prefetch_loader_factory) { + prefetch_loader_factory_.Bind(std::move(prefetch_loader_factory)); +} + +bool ChildURLLoaderFactoryBundle::IsHostChildURLLoaderFactoryBundle() const { + return false; +} + } // namespace blink diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.cc b/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.cc index 1ee99edc1fa832..aacdcd10f00ae8 100644 --- a/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.cc +++ b/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicated_or_shared_worker_fetch_context_impl.cc @@ -641,7 +641,7 @@ void DedicatedOrSharedWorkerFetchContextImpl::UpdateSubresourceLoaderFactories( loader_factory_ = network::SharedURLLoaderFactory::Create( subresource_loader_factory_bundle->Clone()); fallback_factory_ = network::SharedURLLoaderFactory::Create( - subresource_loader_factory_bundle->CloneWithoutAppCacheFactory()); + subresource_loader_factory_bundle->Clone()); web_loader_factory_ = std::make_unique( loader_factory_, cors_exempt_header_list_, terminate_sync_load_event_); ResetServiceWorkerURLLoaderFactory(); diff --git a/third_party/blink/renderer/platform/loader/tracked_child_url_loader_factory_bundle.cc b/third_party/blink/renderer/platform/loader/tracked_child_url_loader_factory_bundle.cc index 6f0425db61cf17..8c206d4a52b637 100644 --- a/third_party/blink/renderer/platform/loader/tracked_child_url_loader_factory_bundle.cc +++ b/third_party/blink/renderer/platform/loader/tracked_child_url_loader_factory_bundle.cc @@ -19,8 +19,6 @@ TrackedChildPendingURLLoaderFactoryBundle:: TrackedChildPendingURLLoaderFactoryBundle( mojo::PendingRemote pending_default_factory, - mojo::PendingRemote - pending_appcache_factory, SchemeMap pending_scheme_specific_factories, OriginMap pending_isolated_world_factories, mojo::PendingRemote @@ -29,7 +27,6 @@ TrackedChildPendingURLLoaderFactoryBundle:: bool bypass_redirect_checks) : ChildPendingURLLoaderFactoryBundle( std::move(pending_default_factory), - std::move(pending_appcache_factory), std::move(pending_scheme_specific_factories), std::move(pending_isolated_world_factories), std::move(pending_prefetch_loader_factory), @@ -48,7 +45,6 @@ scoped_refptr TrackedChildPendingURLLoaderFactoryBundle::CreateFactory() { auto other = std::make_unique(); other->pending_default_factory_ = std::move(pending_default_factory_); - other->pending_appcache_factory_ = std::move(pending_appcache_factory_); other->pending_scheme_specific_factories_ = std::move(pending_scheme_specific_factories_); other->pending_isolated_world_factories_ = @@ -91,7 +87,6 @@ TrackedChildURLLoaderFactoryBundle::Clone() { return std::make_unique( std::move(pending_factories->pending_default_factory()), - std::move(pending_factories->pending_appcache_factory()), std::move(pending_factories->pending_scheme_specific_factories()), std::move(pending_factories->pending_isolated_world_factories()), std::move(pending_factories->pending_prefetch_loader_factory()), @@ -156,29 +151,6 @@ HostChildURLLoaderFactoryBundle::Clone() { return std::make_unique( std::move(pending_factories->pending_default_factory()), - std::move(pending_factories->pending_appcache_factory()), - std::move(pending_factories->pending_scheme_specific_factories()), - std::move(pending_factories->pending_isolated_world_factories()), - std::move(pending_factories->pending_prefetch_loader_factory()), - std::move(main_thread_host_bundle_clone), - pending_factories->bypass_redirect_checks()); -} - -std::unique_ptr -HostChildURLLoaderFactoryBundle::CloneWithoutAppCacheFactory() { - auto pending_factories = - base::WrapUnique(static_cast( - ChildURLLoaderFactoryBundle::CloneWithoutAppCacheFactory() - .release())); - - DCHECK(base::SequencedTaskRunnerHandle::IsSet()); - auto main_thread_host_bundle_clone = std::make_unique< - TrackedChildURLLoaderFactoryBundle::HostPtrAndTaskRunner>(AsWeakPtr(), - task_runner_); - - return std::make_unique( - std::move(pending_factories->pending_default_factory()), - std::move(pending_factories->pending_appcache_factory()), std::move(pending_factories->pending_scheme_specific_factories()), std::move(pending_factories->pending_isolated_world_factories()), std::move(pending_factories->pending_prefetch_loader_factory()),