Commit d5e7e89d authored by Hiroki Nakagawa's avatar Hiroki Nakagawa Committed by Commit Bot

ServiceWorker: Remove the external file scheme support from updated script loading

This CL removes the "externalfile" scheme support from URLLoaderFactories for
service worker updated script loading. The scheme is used for loading files from
ChromeOS-specific local file systems (e.g., "Downloads" and "removable"):
https://cs.chromium.org/chromium/src/chrome/browser/chromeos/fileapi/file_system_backend.h?rcl=7bd9f2e138d37076a1ed3380126be8d00ae3837c&l=38

Service workers never support the scheme:
https://cs.chromium.org/chromium/src/chrome/common/chrome_content_client.cc?rcl=013d0ec7da2f2c1b4c78af14fa1bdc83290dfb35&l=645
https://cs.chromium.org/chromium/src/content/browser/service_worker/embedded_worker_instance.cc?l=1092-1095&rcl=183f7e64155459d1c5f50155234a176e4fce7b3f

See the following comment for the context:
https://chromium-review.googlesource.com/c/chromium/src/+/1669251/7/chrome/browser/chrome_content_browser_client.cc#4893

Bug: 648295, 964229
Change-Id: I4d18bb972f38eba4498b109e595627a43cfdc6dc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1798102
Commit-Queue: Hiroki Nakagawa <nhiroki@chromium.org>
Reviewed-by: default avatarMatt Falkenhagen <falken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#695542}
parent 307235df
...@@ -4653,22 +4653,14 @@ void ChromeContentBrowserClient:: ...@@ -4653,22 +4653,14 @@ void ChromeContentBrowserClient::
RegisterNonNetworkServiceWorkerUpdateURLLoaderFactories( RegisterNonNetworkServiceWorkerUpdateURLLoaderFactories(
content::BrowserContext* browser_context, content::BrowserContext* browser_context,
NonNetworkURLLoaderFactoryMap* factories) { NonNetworkURLLoaderFactoryMap* factories) {
#if BUILDFLAG(ENABLE_EXTENSIONS) || defined(OS_CHROMEOS) #if BUILDFLAG(ENABLE_EXTENSIONS)
DCHECK(browser_context); DCHECK(browser_context);
DCHECK(factories); DCHECK(factories);
#if BUILDFLAG(ENABLE_EXTENSIONS)
factories->emplace( factories->emplace(
extensions::kExtensionScheme, extensions::kExtensionScheme,
extensions::CreateExtensionServiceWorkerScriptURLLoaderFactory( extensions::CreateExtensionServiceWorkerScriptURLLoaderFactory(
browser_context)); browser_context));
#endif // BUILDFLAG(ENABLE_EXTENSIONS) #endif // BUILDFLAG(ENABLE_EXTENSIONS)
#if defined(OS_CHROMEOS)
Profile* profile = Profile::FromBrowserContext(browser_context);
factories->emplace(content::kExternalFileScheme,
std::make_unique<chromeos::ExternalFileURLLoaderFactory>(
profile, content::ChildProcessHost::kInvalidUniqueID));
#endif // defined(OS_CHROMEOS)
#endif // BUILDFLAG(ENABLE_EXTENSIONS) || defined(OS_CHROMEOS)
} }
namespace { namespace {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment