New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 780325 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
please use my google.com address
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 1
Type: Bug
Proj-Servicification

Blocking:
issue 721414



Sign in to add a comment

Handle chrome-extension scheme with Network Service enabled

Project Member Reported by roc...@chromium.org, Oct 31 2017

Issue description

chrome-extension resources should be properly supported via a browser-side URLLoaderFactory and hooked up to NavigationURLLoaderNetworkService and appropriate subresource bundles.
 
Blocking: 721414
Summary: Handle chrome-extension scheme with Network Service enabled (was: Handle chrome-extension scheme with Network Service)
Cc: juncai@chromium.org
 Issue 779115  has been merged into this issue.
 Issue 779215  has been merged into this issue.

Comment 5 by laforge@google.com, Nov 7 2017

Components: -Internals>Network>Service Internals>Services>Network
Apologies, applied the wrong component in bulk.
Project Member

Comment 6 by bugdroid1@chromium.org, Nov 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a

commit 6414c4d9c743335b84cfbce2c6f35e21e42a6d5a
Author: Ken Rockot <rockot@chromium.org>
Date: Wed Nov 08 19:58:32 2017

Load extensions URLs with Network Service enabled

Adds support for chrome-extension:// URLs when the Network Service
is enabled. Navigation and subresource loads are supported, with
access policy mirroring the non-network service path.

Unlike the old code, this loading path does not run on the IO thread
and has no dependencies on IO thread data.

To support this change while reusing significant amounts of core logic,
some extensions code has been refactored to be thread agnostic with
more granular data dependencies (e.g. taking a GURL and ExtensionSet
instead of net::URLRequest and extensions::InfoMap*).

The net result of this change is that we can re-enable ~1220
browser_tests with Network Service enabled.

Bug:  780325 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation
Change-Id: I7143c1bf080f40a6f00fc761ed823add951dd61e
Reviewed-on: https://chromium-review.googlesource.com/756660
Commit-Queue: Ken Rockot <rockot@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514915}
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/chrome/browser/chrome_content_browser_client.h
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/chrome/browser/extensions/chrome_extensions_browser_client.cc
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/chrome/browser/extensions/chrome_extensions_browser_client.h
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/chrome/browser/extensions/chrome_url_request_util.cc
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/chrome/browser/extensions/chrome_url_request_util.h
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/content/browser/file_url_loader_factory.cc
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/content/browser/file_url_loader_factory.h
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/content/browser/loader/navigation_url_loader_network_service.cc
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/content/browser/loader/navigation_url_loader_network_service.h
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/content/public/browser/BUILD.gn
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/content/public/browser/content_browser_client.cc
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/content/public/browser/content_browser_client.h
[add] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/content/public/browser/file_url_loader.h
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/extensions/browser/BUILD.gn
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/extensions/browser/extension_protocols.cc
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/extensions/browser/extension_protocols.h
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/extensions/browser/extensions_browser_client.h
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/extensions/browser/test_extensions_browser_client.cc
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/extensions/browser/test_extensions_browser_client.h
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/extensions/browser/url_request_util.cc
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/extensions/browser/url_request_util.h
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/extensions/shell/browser/shell_extensions_browser_client.cc
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/extensions/shell/browser/shell_extensions_browser_client.h
[modify] https://crrev.com/6414c4d9c743335b84cfbce2c6f35e21e42a6d5a/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter

Status: Fixed (was: Assigned)
Seems like this will stick (woohoo!)

Still need component extension resources and content verification support, but I've filed separate bugs ( bug 782015  and  bug 782025 ) for those.

This means extensions are mostly working as-is now. I can run chrome+NetworkService, navigate to the webstore, install some extensions, use them, etc. Remaining work apart from the above should be limited to porting internal uses of net::URLFetcher over to SimpleURLLoader.

Sign in to add a comment