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

Issue 796425 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 737282
issue 803135



Sign in to add a comment

Replace raw mojom::URLLoaderFactory pointers and various getters with a unified ref-counted interface

Project Member Reported by yzshen@chromium.org, Dec 20 2017

Issue description

The network service FYI perf bot is constantly failing recently. For example:
https://ci.chromium.org/buildbot/chromium.perf.fyi/Mojo%20Linux%20Perf/4087

(At least some) crashes have the following stack [1].
It seems the URLLoaderFactory raw pointer is invalid when it is used. This pointer is held by a WebURLLoaderImpl instance, whose loading is scheduled by ResourceLoadScheduler.

IIUC, the URLLoaderFactory pointer comes from URLLoaderFactoryBundle owned by RenderFrameImpl. This crash could happen if we schedule a WebURLLoaderImpl to run after the render frame is gone (or navigate away).

+CC some loading experts.

=================================================
[1]
	Thread 0 (crashed)
	 0  chrome!content::ThrottlingURLLoader::StartNow(content::mojom::URLLoaderFactory*, int, int, unsigned int, base::OnceCallback<void (mojo::InterfaceRequest<content::mojom::URLLoader>, mojo::InterfacePtr<content::mojom::URLLoaderClient>)>, content::ResourceRequest const&, scoped_refptr<base::SingleThreadTaskRunner>) [throttling_url_loader.cc : 278 + 0x0]
	 1  chrome!content::ThrottlingURLLoader::Start(content::mojom::URLLoaderFactory*, int, int, unsigned int, base::OnceCallback<void (mojo::InterfaceRequest<content::mojom::URLLoader>, mojo::InterfacePtr<content::mojom::URLLoaderClient>)>, content::ResourceRequest const&, scoped_refptr<base::SingleThreadTaskRunner>) [throttling_url_loader.cc : 257 + 0x1c]
	 2  chrome!content::ThrottlingURLLoader::CreateLoaderAndStart(content::mojom::URLLoaderFactory*, std::__1::vector<std::__1::unique_ptr<content::URLLoaderThrottle, std::__1::default_delete<content::URLLoaderThrottle> >, std::__1::allocator<std::__1::unique_ptr<content::URLLoaderThrottle, std::__1::default_delete<content::URLLoaderThrottle> > > >, int, int, unsigned int, content::ResourceRequest const&, content::mojom::URLLoaderClient*, net::NetworkTrafficAnnotationTag const&, scoped_refptr<base::SingleThreadTaskRunner>) [throttling_url_loader.cc : 143 + 0x1c]
	 3  chrome!content::ResourceDispatcher::StartAsync(std::__1::unique_ptr<content::ResourceRequest, std::__1::default_delete<content::ResourceRequest> >, int, scoped_refptr<base::SingleThreadTaskRunner>, url::Origin const&, net::NetworkTrafficAnnotationTag const&, bool, std::__1::unique_ptr<content::RequestPeer, std::__1::default_delete<content::RequestPeer> >, blink::WebURLRequest::LoadingIPCType, content::mojom::URLLoaderFactory*, std::__1::vector<std::__1::unique_ptr<content::URLLoaderThrottle, std::__1::default_delete<content::URLLoaderThrottle> >, std::__1::allocator<std::__1::unique_ptr<content::URLLoaderThrottle, std::__1::default_delete<content::URLLoaderThrottle> > > >, mojo::StructPtr<content::mojom::URLLoaderClientEndpoints>) [resource_dispatcher.cc : 710 + 0x10]
	 4  chrome!content::WebURLLoaderImpl::Context::Start(blink::WebURLRequest const&, content::SyncLoadResponse*) [web_url_loader_impl.cc : 702 + 0x20]
	 5  chrome!content::WebURLLoaderImpl::LoadAsynchronously(blink::WebURLRequest const&, blink::WebURLLoaderClient*) [web_url_loader_impl.cc : 1294 + 0xa]
	 6  chrome!blink::ResourceLoader::StartWith(blink::ResourceRequest const&) [ResourceLoader.cpp : 150 + 0xe]
	 7  chrome!blink::ResourceLoadScheduler::MaybeRun() [ResourceLoadScheduler.cpp : 655 + 0x8]
	 8  chrome!blink::ResourceLoadScheduler::Release(unsigned long, blink::ResourceLoadScheduler::ReleaseOption, blink::ResourceLoadScheduler::TrafficReportHints const&) [ResourceLoadScheduler.h : 0 + 0x10]
	 9  chrome!blink::ResourceLoader::HandleError(blink::ResourceError const&) [ResourceLoader.cpp : 157 + 0xa]
	10  chrome!blink::ResourceLoader::DidReceiveResponse(blink::WebURLResponse const&, std::__1::unique_ptr<blink::WebDataConsumerHandle, std::__1::default_delete<blink::WebDataConsumerHandle> >) [ResourceLoader.cpp : 0 + 0x5]
	11  chrome!non-virtual thunk to blink::ResourceLoader::DidReceiveResponse(blink::WebURLResponse const&) [ResourceLoader.cpp : 601 + 0x5]
	12  chrome!content::WebURLLoaderImpl::Context::OnReceivedResponse(content::ResourceResponseInfo const&) [web_url_loader_impl.cc : 822 + 0x5]
	13  chrome!content::ResourceDispatcher::OnReceivedResponse(int, content::ResourceResponseHead const&) [resource_dispatcher.cc : 228 + 0x6]
	14  chrome!content::URLLoaderClientImpl::OnReceiveResponse(content::ResourceResponseHead const&, base::Optional<net::SSLInfo> const&, mojo::InterfacePtr<content::mojom::DownloadedTempFile>) [url_loader_client_impl.cc : 232 + 0x8]
	15  chrome!content::ThrottlingURLLoader::OnReceiveResponse(content::ResourceResponseHead const&, base::Optional<net::SSLInfo> const&, mojo::InterfacePtr<content::mojom::DownloadedTempFile>) [throttling_url_loader.cc : 350 + 0x17]
	16  chrome!content::mojom::URLLoaderClientStubDispatch::Accept(content::mojom::URLLoaderClient*, mojo::Message*) [url_loader.mojom.cc : 917 + 0x9]
	17  chrome!mojo::InterfaceEndpointClient::HandleIncomingMessageThunk::Accept(mojo::Message*) [interface_endpoint_client.cc : 418 + 0x38]
	18  chrome!mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) [multiplex_router.cc : 880 + 0x8]
	19  chrome!mojo::internal::MultiplexRouter::Accept(mojo::Message*) [multiplex_router.cc : 604 + 0xb]
	20  chrome!mojo::Connector::ReadSingleMessage(unsigned int*) [connector.cc : 445 + 0x3]
	21  chrome!mojo::Connector::ReadAllAvailableMessages() [connector.cc : 474 + 0xb]
	22  chrome!mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) [callback.h : 94 + 0x9]
	23  chrome!base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) [callback.h : 65 + 0x3]
	24  chrome!blink::scheduler::TaskQueueManager::DoWork(blink::scheduler::internal::Sequence::WorkType) [task_queue_manager.cc : 516 + 0xf]
	25  chrome!base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) [callback.h : 65 + 0x3]
	26  chrome!blink::scheduler::internal::ThreadControllerImpl::DoWork(blink::scheduler::internal::Sequence::WorkType) [thread_controller_impl.cc : 109 + 0xf]
	27  chrome!base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) [callback.h : 65 + 0x3]
	28  chrome!base::MessageLoop::RunTask(base::PendingTask*) [message_loop.cc : 391 + 0x8]
	29  chrome!base::MessageLoop::DoWork() [message_loop.cc : 403 + 0xb]
	30  chrome!base::MessagePumpDefault::Run(base::MessagePump::Delegate*) [message_pump_default.cc : 37 + 0x17]
	31  chrome!<name omitted> [run_loop.cc : 130 + 0x8]
	32  chrome!content::RendererMain(content::MainFunctionParams const&) [renderer_main.cc : 222 + 0x8]
	33  chrome!content::ContentMainRunnerImpl::Run() [content_main_runner.cc : 356 + 0x4]
	34  chrome!service_manager::Main(service_manager::MainParams const&) [main.cc : 456 + 0x1e]
	35  chrome!content::ContentMain(content::ContentMainParams const&) [content_main.cc : 19 + 0x8]
	36  chrome!ChromeMain [chrome_main.cc : 128 + 0x5]
	37  libc-2.19.so + 0x21f45
	38  chrome + 0x18157c0
	39  chrome + 0x1701000
	40  ld-2.19.so + 0x103c3
	41  chrome + 0x1701000
	42  chrome!_start + 0x2a

 
When a frame is gone, I expect that ResourceFetcher::ClearContext is called and that calls ResourceLoadScheduler::Shutdown which clears all pending loaders.

Comment 2 by yzshen@chromium.org, Dec 21 2017

Thanks Yutaka.

I will look and see whether there is bug in the code path you pointed out.
Another possibility is when the same render frame is navigated to a new URL. In that case we will also invalidate the URL loader factory pointers for the previous contents.

Comment 3 by yzshen@chromium.org, Dec 21 2017

Owner: yzshen@chromium.org
Status: (was: Untriaged)

Comment 4 by yzshen@chromium.org, Dec 21 2017

Status: Assigned

Comment 5 by yzshen@chromium.org, Dec 22 2017

I looked into it some more and confirmed that the crash happens when an existing render frame navigates to a new URL. During CommitNavigation it updates its |subresource_loader_factories_| which destroys all previous URLLoaderFactory objects it owns. However, there are WebURLLoaderImpl objects holding raw pointers to those already-destroyed URLLoaderFactory objects. Some time later, ResourceLoadScheduler tries to start such a WebURLLoaderImpl and causes the crash.

It seems very error prone to use raw pointers. I think we should consider passing/storing a wrapper object around instead, for example, a ChildURLLoaderFactoryGetter.

But it would be even better if we could go one step further: define a unified (virtual) interface for URLLoaderFactoryGetter, ChildURLLoaderFactoryGetter, URLLoaderFactoryBundle and raw URLLoaderFactory pointers. And use this interface everywhere, both in browser and in renderer processes. This would be useful for lifespan management, choosing from multiple factory and also crash recovery.

(I will put this in a document so we can discuss more efficiently there.)


Comment 6 by yzshen@chromium.org, Jan 11 2018

Summary: Replace raw mojom::URLLoaderFactory pointers and various getters with a unified ref-counted interface (was: Network service: Crash with invalid URLLoaderFactory pointer)
Project Member

Comment 7 by bugdroid1@chromium.org, Jan 17 2018

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

commit d87986f559cfe3deccaca00511058cdaa359631e
Author: Yuzhu Shen <yzshen@chromium.org>
Date: Wed Jan 17 22:16:37 2018

Introduce SharedURLLoaderFactory interface.

This is a ref-counted C++ interface to replace raw mojom::URLLoaderFactory
pointers and various factory getters.

This CL also:
- provides {Wrapper, WeakWrapper}SharedURLLoaderFactory implementation which
  wrap mojom::URLLoaderFactoryPtr and raw mojom::URLLoaderFactory pointer respectively;
- changes ThrottlingURLLoader, WebURLLoaderImpl and ResourceDispatcher to use
  SharedURLLoaderFactory.

There will be follow-up CLs to convert existing factory getters to use this interface.


Bug= 796425 

Change-Id: I06bece0e2bc29cfb9151a04d199d0ea7689f7213
Reviewed-on: https://chromium-review.googlesource.com/862715
Commit-Queue: Yuzhu Shen <yzshen@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529914}
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/browser/loader/navigation_url_loader_network_service.cc
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/common/BUILD.gn
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/common/throttling_url_loader.cc
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/common/throttling_url_loader.h
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/common/throttling_url_loader_unittest.cc
[add] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/common/weak_wrapper_shared_url_loader_factory.cc
[add] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/common/weak_wrapper_shared_url_loader_factory.h
[add] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/common/wrapper_shared_url_loader_factory.cc
[add] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/common/wrapper_shared_url_loader_factory.h
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/public/common/BUILD.gn
[add] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/public/common/shared_url_loader_factory.cc
[add] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/public/common/shared_url_loader_factory.h
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/renderer/loader/resource_dispatcher.cc
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/renderer/loader/resource_dispatcher.h
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/renderer/loader/resource_dispatcher_unittest.cc
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/renderer/loader/sync_load_context.cc
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/renderer/loader/sync_load_context.h
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/renderer/loader/url_loader_client_impl_unittest.cc
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/renderer/loader/url_response_body_consumer_unittest.cc
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/renderer/loader/web_url_loader_impl.cc
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/renderer/loader/web_url_loader_impl.h
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/renderer/loader/web_url_loader_impl_unittest.cc
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/renderer/service_worker/service_worker_context_client.cc
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/renderer/service_worker/service_worker_network_provider.cc
[modify] https://crrev.com/d87986f559cfe3deccaca00511058cdaa359631e/content/renderer/service_worker/worker_fetch_context_impl.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jan 23 2018

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

commit 5d58446477738bdea980f343ba439719208e189e
Author: Yuzhu Shen <yzshen@chromium.org>
Date: Tue Jan 23 20:01:22 2018

Convert URLLoaderFactoryBundle to implement SharedURLLoaderFactory interface.

This CL also typemaps content.mojom.URLLoaderFactoryBundle to
std::unique_ptr<content::URLLoaderFactoryBundleInfo>.

This is part of the effort to avoid using raw mojom::URLLoaderFactory pointers
in renderers and also unify interface of URLLoaderFactory getters.

Bug:  796425 
Change-Id: Ia30cd253ec0c82624fbf466a70da489e4464b82f
Reviewed-on: https://chromium-review.googlesource.com/877390
Commit-Queue: Yuzhu Shen <yzshen@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531318}
[modify] https://crrev.com/5d58446477738bdea980f343ba439719208e189e/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/5d58446477738bdea980f343ba439719208e189e/content/common/url_loader_factory_bundle.cc
[modify] https://crrev.com/5d58446477738bdea980f343ba439719208e189e/content/common/url_loader_factory_bundle.h
[modify] https://crrev.com/5d58446477738bdea980f343ba439719208e189e/content/common/url_loader_factory_bundle.typemap
[modify] https://crrev.com/5d58446477738bdea980f343ba439719208e189e/content/common/url_loader_factory_bundle_struct_traits.cc
[modify] https://crrev.com/5d58446477738bdea980f343ba439719208e189e/content/common/url_loader_factory_bundle_struct_traits.h
[modify] https://crrev.com/5d58446477738bdea980f343ba439719208e189e/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/5d58446477738bdea980f343ba439719208e189e/content/renderer/render_frame_impl.h
[modify] https://crrev.com/5d58446477738bdea980f343ba439719208e189e/content/test/test_render_frame.cc
[modify] https://crrev.com/5d58446477738bdea980f343ba439719208e189e/content/test/test_render_frame_host.cc

Comment 9 by yzshen@chromium.org, Jan 26 2018

Issue 806314 has been merged into this issue.
Project Member

Comment 10 by bugdroid1@chromium.org, Jan 27 2018

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

commit 0c1715ff605364a9e3a0a90fdfa57597eacb14d0
Author: Yuzhu Shen <yzshen@chromium.org>
Date: Sat Jan 27 03:48:50 2018

Renderer: Merge URLLoaderFactoryBundle and ChildURLLoaderFactoryGetter.

This CL:
- introduces ChildURLLoaderFactoryBundle which is a subclass of
  URLLoaderFactoryBundle with support for a direct network loader factory and
  lazy initialization for certain factories. It is basically the combination of
  URLLoaderFactoryBundle and ChildURLLoaderFactoryGetter.

- replaces all usage of URLLoaderFactoryBundle and ChildURLLoaderFactoryGetter
  in renderer with ChildURLLoaderFactoryBundle.

Bug:  796425 

TBR=jam@chromium.org
(for removing an include from chrome/renderer/net/net_error_helper.cc)

Change-Id: I1d3a1141bc35340ae586fc30df6496eb84a26c29
Reviewed-on: https://chromium-review.googlesource.com/882606
Commit-Queue: Yuzhu Shen <yzshen@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Yuzhu Shen <yzshen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532150}
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/chrome/renderer/net/net_error_helper.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/common/possibly_associated_interface_ptr.h
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/common/url_loader_factory_bundle.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/common/url_loader_factory_bundle.h
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/common/wrapper_shared_url_loader_factory.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/common/wrapper_shared_url_loader_factory.h
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/public/renderer/BUILD.gn
[delete] https://crrev.com/c5b48e217408a16843dc1c2fe6bbe10b6771ad04/content/public/renderer/child_url_loader_factory_getter.h
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/BUILD.gn
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/fetchers/resource_fetcher_browsertest.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/fetchers/resource_fetcher_impl.cc
[add] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/loader/child_url_loader_factory_bundle.cc
[add] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/loader/child_url_loader_factory_bundle.h
[delete] https://crrev.com/c5b48e217408a16843dc1c2fe6bbe10b6771ad04/content/renderer/loader/child_url_loader_factory_getter_impl.cc
[delete] https://crrev.com/c5b48e217408a16843dc1c2fe6bbe10b6771ad04/content/renderer/loader/child_url_loader_factory_getter_impl.h
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/loader/web_url_loader_impl.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/loader/web_url_loader_impl.h
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/render_frame_impl.h
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/renderer_blink_platform_impl.h
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/service_worker/service_worker_context_client.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/service_worker/service_worker_fetch_context_impl.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/service_worker/service_worker_fetch_context_impl.h
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/service_worker/service_worker_network_provider.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/service_worker/service_worker_network_provider.h
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/service_worker/service_worker_provider_context.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/service_worker/service_worker_provider_context.h
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/service_worker/service_worker_provider_context_unittest.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/service_worker/service_worker_subresource_loader.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/service_worker/service_worker_subresource_loader.h
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/service_worker/service_worker_subresource_loader_unittest.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/service_worker/worker_fetch_context_impl.cc
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/service_worker/worker_fetch_context_impl.h
[modify] https://crrev.com/0c1715ff605364a9e3a0a90fdfa57597eacb14d0/content/renderer/shared_worker/embedded_shared_worker_stub.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Jan 28 2018

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

commit a3080cc67e82d48bf0f2e18f0a5ed91d153f146e
Author: Yuzhu Shen <yzshen@chromium.org>
Date: Sun Jan 28 06:57:26 2018

Change more raw URLLoaderFactory pointers to SharedURLLoaderFactory.

This CL changes:
- RenderFrame::GetURLLoaderFactory()
- ResourceFetcher::Start()

Bug:  796425 
TBR=jam@chromium.org
(for fairly mechanical change of callsites in chrome/renderer/net/net_error_helper.cc).

Change-Id: I65a99bd416a8a2ea1e1ca34870242868be11b8d0
Reviewed-on: https://chromium-review.googlesource.com/887645
Commit-Queue: Yuzhu Shen <yzshen@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532267}
[modify] https://crrev.com/a3080cc67e82d48bf0f2e18f0a5ed91d153f146e/chrome/renderer/net/net_error_helper.cc
[modify] https://crrev.com/a3080cc67e82d48bf0f2e18f0a5ed91d153f146e/content/public/renderer/render_frame.h
[modify] https://crrev.com/a3080cc67e82d48bf0f2e18f0a5ed91d153f146e/content/public/renderer/resource_fetcher.h
[modify] https://crrev.com/a3080cc67e82d48bf0f2e18f0a5ed91d153f146e/content/renderer/fetchers/resource_fetcher_browsertest.cc
[modify] https://crrev.com/a3080cc67e82d48bf0f2e18f0a5ed91d153f146e/content/renderer/fetchers/resource_fetcher_impl.cc
[modify] https://crrev.com/a3080cc67e82d48bf0f2e18f0a5ed91d153f146e/content/renderer/fetchers/resource_fetcher_impl.h
[modify] https://crrev.com/a3080cc67e82d48bf0f2e18f0a5ed91d153f146e/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/a3080cc67e82d48bf0f2e18f0a5ed91d153f146e/content/renderer/render_frame_impl.h

Cc: chongz@chromium.org
Owner: ----
Status: Available (was: Assigned)
Renderer-side usage has been replaced with SharedURLLoaderFactory.

It makes sense to me to also change the browser side to use SharedURLLoaderFactory.

Anyone would like to take over? :)
Blocking: 737282
Owner: chongz@chromium.org
Status: Started (was: Available)
https://crrev.com/c/924173 updated the API for browser side UI thread, e.g.
`scoped_refptr<SharedURLLoaderFactory> StoragePartitionImpl::GetURLLoaderFactoryForBrowserProcess()`.

https://crrev.com/c/935284 updated the API for browser side IO thread, e.g.
`scoped_refptr<SharedURLLoaderFactory> URLLoaderFactoryGetter::GetNetworkFactory()`.

Remaining Tasks:

1. Need a way to bind |URLLoaderFactoryRequest| to |scoped_refptr<SharedURLLoaderFactory>|, see:
https://crrev.com/c/935284/13/content/browser/loader/navigation_url_loader_network_service.cc#598

2. Need a way to expose IO thread |SharedURLLoaderFactory| to Chrome (e.g. 'storage_partition.h'), see:
https://crrev.com/c/935284/7/content/browser/url_loader_factory_getter.cc#21

3. Replace remaining raw pointers on the browser side.
 Issue 780959  has been merged into this issue.
Project Member

Comment 15 by bugdroid1@chromium.org, Mar 1 2018

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

commit 5271432afaf17f5d5e68dc70fded3941a10ce99b
Author: Chong Zhang <chongz@chromium.org>
Date: Thu Mar 01 23:31:02 2018

Introduce a SharedURLLoaderFactory wrapper for URLLoaderFactoryGetter

This CL changed the return type of
|URLLoaderFactoryGetter::GetNetworkFactory()| to
|scoped_refptr<SharedURLLoaderFactory>| in an effort to reduce the
usage of raw pointers.

The returned |SharedURLLoaderFactory| is basically a wrapper around
|URLLoaderFactoryGetter|, which holds a reference to
|URLLoaderFactoryGetter| and handles reconnection after crash.

It's safe to use the wrapper after the storage partition has gone, in
which case the url requests will be silently dropped.

Bug:  796425 
Change-Id: Ie89b7f8933bc6e1c274cf42bc6bd2265c50c37d4
Reviewed-on: https://chromium-review.googlesource.com/935284
Commit-Queue: Chong Zhang <chongz@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#540346}
[modify] https://crrev.com/5271432afaf17f5d5e68dc70fded3941a10ce99b/content/browser/appcache/appcache_update_url_loader_request.cc
[modify] https://crrev.com/5271432afaf17f5d5e68dc70fded3941a10ce99b/content/browser/download/download_manager_impl.cc
[modify] https://crrev.com/5271432afaf17f5d5e68dc70fded3941a10ce99b/content/browser/download/download_worker.cc
[modify] https://crrev.com/5271432afaf17f5d5e68dc70fded3941a10ce99b/content/browser/download/resource_downloader.cc
[modify] https://crrev.com/5271432afaf17f5d5e68dc70fded3941a10ce99b/content/browser/download/resource_downloader.h
[modify] https://crrev.com/5271432afaf17f5d5e68dc70fded3941a10ce99b/content/browser/loader/navigation_url_loader_network_service.cc
[modify] https://crrev.com/5271432afaf17f5d5e68dc70fded3941a10ce99b/content/browser/loader/prefetch_url_loader_service.cc
[modify] https://crrev.com/5271432afaf17f5d5e68dc70fded3941a10ce99b/content/browser/loader/prefetch_url_loader_service.h
[modify] https://crrev.com/5271432afaf17f5d5e68dc70fded3941a10ce99b/content/browser/network_service_restart_browsertest.cc
[modify] https://crrev.com/5271432afaf17f5d5e68dc70fded3941a10ce99b/content/browser/url_loader_factory_getter.cc
[modify] https://crrev.com/5271432afaf17f5d5e68dc70fded3941a10ce99b/content/browser/url_loader_factory_getter.h

Project Member

Comment 16 by bugdroid1@chromium.org, Mar 7 2018

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

commit 70432e3868d27b3f27bbc0cc96928d9eb5c0041f
Author: Chong Zhang <chongz@chromium.org>
Date: Wed Mar 07 04:43:52 2018

Remove TODOs about |URLLoaderFactoryGetter::CloneNetworkFactory()|

We don't need reconnection inside
|NavigationURLLoaderNetworkService::URLLoaderRequestController| since
it's only for a single navigation.

This CL removes TODOs and tweaks comments.

Bug:  796425 
Change-Id: I52d1d6d98b4dbf24fbe459e52444febed540f8b4
Reviewed-on: https://chromium-review.googlesource.com/952543
Reviewed-by: Ken Rockot <rockot@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Chong Zhang <chongz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541338}
[modify] https://crrev.com/70432e3868d27b3f27bbc0cc96928d9eb5c0041f/content/browser/loader/navigation_url_loader_network_service.cc
[modify] https://crrev.com/70432e3868d27b3f27bbc0cc96928d9eb5c0041f/content/browser/url_loader_factory_getter.h

Project Member

Comment 17 by bugdroid1@chromium.org, Mar 7 2018

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

commit 4dd97ebfdee8aec0889fe04e27dbc13150941228
Author: Chong Zhang <chongz@chromium.org>
Date: Wed Mar 07 04:48:48 2018

Expose IO thread SharedURLLoaderFactory on 'storage_partition.h'

This CL introduced the API
|StoragePartition::GetURLLoaderFactoryForBrowserProcessIOThread()|
to expose IO thread |SharedURLLoaderFactory| to consumers like /chrome.

The method returns a |SharedURLLoaderFactoryInfo| and must be consumed
on IO thread. The constructed |SharedURLLoaderFactory| shares the same
underlying |URLLoaderFactoryGetter| per |StoragePartition|.

Bug:  796425 
Change-Id: I8108b907e915af82321c12763bc10556d7afda6a
Reviewed-on: https://chromium-review.googlesource.com/949094
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Chong Zhang <chongz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541346}
[modify] https://crrev.com/4dd97ebfdee8aec0889fe04e27dbc13150941228/content/browser/network_service_restart_browsertest.cc
[modify] https://crrev.com/4dd97ebfdee8aec0889fe04e27dbc13150941228/content/browser/storage_partition_impl.cc
[modify] https://crrev.com/4dd97ebfdee8aec0889fe04e27dbc13150941228/content/browser/storage_partition_impl.h
[modify] https://crrev.com/4dd97ebfdee8aec0889fe04e27dbc13150941228/content/browser/url_loader_factory_getter.cc
[modify] https://crrev.com/4dd97ebfdee8aec0889fe04e27dbc13150941228/content/browser/url_loader_factory_getter.h
[modify] https://crrev.com/4dd97ebfdee8aec0889fe04e27dbc13150941228/content/public/browser/storage_partition.h
[modify] https://crrev.com/4dd97ebfdee8aec0889fe04e27dbc13150941228/content/public/test/test_storage_partition.cc
[modify] https://crrev.com/4dd97ebfdee8aec0889fe04e27dbc13150941228/content/public/test/test_storage_partition.h

Labels: Proj-Servicification
Status: Fixed (was: Started)
Tasks 1&2 in #c13 has been fixed.
As for 3. there is a long tail of raw pointer usages, and I think it would be better to rely on driven-by fixes instead of trying to replace all of them now.

Marking this issue as fixed.
Status: Started (was: Fixed)
Reopen to move |SharedURLLoaderFactory| to services/network.
Blocking: 803135
Project Member

Comment 21 by bugdroid1@chromium.org, Mar 13 2018

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

commit b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c
Author: Chong Zhang <chongz@chromium.org>
Date: Tue Mar 13 19:14:11 2018

Move SharedURLLoaderFactory to services/network/public/cpp/

We want to move |SharedURLLoaderFactory| to make it available to
consumers that doesn't depend on content/.

This CL is mostly mechanical changes and doesn't affect behaviors.

TBR=jam@chromium.org
(for fairly mechanical changes of callsites in chrome/).

Bug:  796425 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: Icdaccce5323c7585e26f742e9d0433f0fa1aea4b
Reviewed-on: https://chromium-review.googlesource.com/959617
Reviewed-by: Chong Zhang <chongz@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Chong Zhang <chongz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542876}
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/chrome/browser/captive_portal/captive_portal_service.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/chrome/browser/ui/cocoa/passwords/account_avatar_fetcher_manager.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/chrome/browser/ui/cocoa/passwords/account_avatar_fetcher_manager.mm
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/chrome/browser/ui/cocoa/passwords/account_chooser_view_controller_unittest.mm
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/chrome/browser/ui/cocoa/passwords/autosignin_prompt_view_controller_unittest.mm
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/chrome/browser/ui/cocoa/passwords/password_prompt_bridge_interface.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/chrome/browser/ui/cocoa/passwords/password_prompt_view_bridge.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/chrome/browser/ui/cocoa/passwords/password_prompt_view_bridge.mm
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/chrome/browser/ui/webui/devtools_ui.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/chrome/renderer/net/net_error_helper.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/appcache/appcache_subresource_url_factory.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/download/download_manager_impl.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/download/download_worker.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/download/resource_downloader.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/download/resource_downloader.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/loader/navigation_url_loader_network_service.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/loader/prefetch_url_loader.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/loader/prefetch_url_loader.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/loader/prefetch_url_loader_service.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/loader/prefetch_url_loader_service.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/network_service_restart_browsertest.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/storage_partition_impl.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/storage_partition_impl.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/url_loader_factory_getter.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/url_loader_factory_getter.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/web_package/mock_signed_exchange_handler.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/web_package/mock_signed_exchange_handler.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/web_package/signed_exchange_cert_fetcher.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/web_package/signed_exchange_cert_fetcher.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/web_package/signed_exchange_handler.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/web_package/signed_exchange_handler.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/web_package/signed_exchange_url_loader_factory_for_non_network_service.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/web_package/signed_exchange_url_loader_factory_for_non_network_service.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/web_package/web_package_loader.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/web_package/web_package_loader.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/web_package/web_package_prefetch_handler.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/web_package/web_package_prefetch_handler.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/web_package/web_package_request_handler.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/browser/web_package/web_package_request_handler.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/common/single_request_url_loader_factory.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/common/single_request_url_loader_factory.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/common/throttling_url_loader.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/common/throttling_url_loader.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/common/throttling_url_loader_unittest.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/common/url_loader_factory_bundle.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/common/url_loader_factory_bundle.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/common/weak_wrapper_shared_url_loader_factory.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/common/weak_wrapper_shared_url_loader_factory.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/common/wrapper_shared_url_loader_factory.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/common/wrapper_shared_url_loader_factory.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/public/browser/storage_partition.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/public/common/BUILD.gn
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/public/renderer/render_frame.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/public/renderer/resource_fetcher.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/public/test/test_storage_partition.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/public/test/test_storage_partition.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/fetchers/resource_fetcher_browsertest.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/fetchers/resource_fetcher_impl.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/fetchers/resource_fetcher_impl.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/loader/child_url_loader_factory_bundle.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/loader/child_url_loader_factory_bundle.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/loader/resource_dispatcher.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/loader/resource_dispatcher.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/loader/sync_load_context.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/loader/sync_load_context.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/loader/tracked_child_url_loader_factory_bundle.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/loader/tracked_child_url_loader_factory_bundle.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/loader/web_url_loader_impl.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/loader/web_url_loader_impl.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/loader/web_url_loader_impl_unittest.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/render_frame_impl.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/service_worker/service_worker_fetch_context_impl.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/service_worker/service_worker_fetch_context_impl.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/service_worker/service_worker_network_provider.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/service_worker/service_worker_network_provider.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/service_worker/service_worker_provider_context.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/service_worker/service_worker_provider_context.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/service_worker/service_worker_provider_context_unittest.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/service_worker/service_worker_subresource_loader.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/service_worker/service_worker_subresource_loader.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/service_worker/service_worker_subresource_loader_unittest.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/service_worker/worker_fetch_context_impl.cc
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/content/renderer/service_worker/worker_fetch_context_impl.h
[modify] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/services/network/public/cpp/BUILD.gn
[rename] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/services/network/public/cpp/shared_url_loader_factory.cc
[rename] https://crrev.com/b7c8d1ce9f10ff2cd18f0b9d13849bfac484d88c/services/network/public/cpp/shared_url_loader_factory.h

Status: Fixed (was: Started)

Sign in to add a comment