New issue
Advanced search Search tips

Issue 754007 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug
Proj-Servicification

Blocking:
issue 715695



Sign in to add a comment

Add proxy configuration support to the network service

Project Member Reported by mmenke@chromium.org, Aug 9 2017

Issue description

We need to add support for proxy configuration to the network service. Since proxy configuration has a fair amount of Chrome/ChromeOS-specific magic, the simplest way to do this seems to be to have the service run in the browser process, and pass the config to the NetworkContext via Mojo (And pass in the initial config state during NetworkContext construction - if one not passed in, maybe just use the default URLRequestContextBuilder behavior).

The main complexity with this approach is serializing the ProxyConfig to pass it between processes.

We'll also need to pass along a Mojo pipe to create a ProxyResolverFactory (And possibly restart one, on crash), but that shouldn't be too hard (And can be done independently in another CL).

Planning on punting on how to hook up ChromeOS's DHCP ProxyScriptFetcher, for now.
 
Are you planning on writing a design document for this?

ProxyConfig is already a problematic abstraction, and not one I think we should further ossify by serializing across process boundaries. ProxyConfig encodes a fairly arbitrary notion of proxy ordering and rules based on the union of various OS functionality, and has been limiting for configurability and understandability.

Would it make sense to instead cut out a bigger chunk, say a proxy resolution (mojo) service? All the settings stuff, pac vs manual, internal vs external resolver, would be internalized by the proxy resolution service.
I don't think we want to add two IPCs to every request, which a proxy resolution service would entail.

I hadn't planned on a design doc, because it's mostly just "Mojoify the ProxyConfigService interface" (The main unresolved issue that leaves is ChromeOS's DHCP magic)
ProxyConfig isn't a one time configuration though.

Do you plan on pumping new ProxyConfig from say browser process to the Network service as state changes?
Yes - we have platform specific magic, and need to be on the GTK thread on some platforms that shall remain anonymous, so we have to get it in the browser process.

We basically just keep everything as-is, except run the ProxyConfigService on the UI thread, and then have an observer that passes the config over to the network service.  Eventually we could merge the Tracker and the logic to pass the Mojo messages over to the network service, but only after iOS starts using the network service.
Here's a quick and dirty design document ("design document" may be giving it more credit than it's due).  I have already started work on the implementation, but can certainly change change approach.  Document is public:  https://docs.google.com/document/d/1wRr8oNFfwma0AssjAluSOXmBtmsDZJRYA61r2f7s7H4/edit#
Hrm...Another option:  Have the browser process create the Mojo ProxyResolver, and push it to the network process (And use a null one for direct).  That would mean more time using the old resolver during proxy config changes, though (Since we'd be using the old one until we completed fetching the PAC script, unless we did something like passing in a ProxyResolverProxy in the meantime, which delayed requests until we had a new config, which starts getting rather funky).
Another option I didn't think about is creating the ProxyResolver out of process and then pushing it to the network process (And use a null one for just direct).  This would get rid of the extra hops.  Main issue I see with it is that it would make us use the old ProxyResolver longer during network changes (Since we'd be using the old resolver while fetching the new PAC script, as opposed to delaying new requests while fetching the APC script).  Also a lot more work, and I'm reluctant to spend 6-8 weeks on this at the moment. 
 Maybe further down the line....
Project Member

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

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

commit d8b7bb7362f459662b72f5b1359ab889a99d58c3
Author: Matt Menke <mmenke@chromium.org>
Date: Thu Nov 02 18:50:28 2017

Fix crashing proxy process in tests when NetworkService is enabled.

The proxy_resolver process is sandboxed, so can't do any file I/O, but
the test fixture would try to load test certs in the process. This CL
makes it so test certs are only loaded in processes where file I/O
is permitted. Unclear how many process types this issue affected.

Also re-enable a test failing due to this issue, when the service is
enabled (ChromeMojoProxyResolverFactoryBrowserTest.ServiceLifecycle).

Bug:  754007 
Change-Id: I1ff58525caf41f84c716fe42ea98817bf23c5319
Reviewed-on: https://chromium-review.googlesource.com/749642
Commit-Queue: Matt Menke <mmenke@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513570}
[modify] https://crrev.com/d8b7bb7362f459662b72f5b1359ab889a99d58c3/content/public/test/network_service_test_helper.cc
[modify] https://crrev.com/d8b7bb7362f459662b72f5b1359ab889a99d58c3/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter

Project Member

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

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

commit a4a148c1d9de76f14e1683023b47f3bc47b3204d
Author: Matt Menke <mmenke@chromium.org>
Date: Mon Nov 06 23:55:06 2017

services/proxy_resolver: Let ProxyResolvers outlive ProxyResolverFactory

Make ProxyResolvers hold onto ServiceContextRefs. This will allow
the ServiceManager to control the lifetime of the proxy_resolver
service, shutting it down when there are no ProxyResolvers, so
ChromeMojoProxyResolverFactory will no longer need to micromanage its
lifetime.

We'll still need a ProxyResolverFactory in the browser process to
serve as a proxy between the network service and the proxy resolver
service, starting the proxy resolver service as needed, but this
greatly simplifies what that class needs to do.

Bug:  754007 
Change-Id: I8684ee22fb084aad605014fa907fce117873ee2b
Reviewed-on: https://chromium-review.googlesource.com/753850
Commit-Queue: Matt Menke <mmenke@chromium.org>
Reviewed-by: Jay Civelli <jcivelli@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514303}
[modify] https://crrev.com/a4a148c1d9de76f14e1683023b47f3bc47b3204d/content/test/BUILD.gn
[modify] https://crrev.com/a4a148c1d9de76f14e1683023b47f3bc47b3204d/content/test/DEPS
[modify] https://crrev.com/a4a148c1d9de76f14e1683023b47f3bc47b3204d/content/test/test_mojo_proxy_resolver_factory.cc
[modify] https://crrev.com/a4a148c1d9de76f14e1683023b47f3bc47b3204d/content/test/test_mojo_proxy_resolver_factory.h
[modify] https://crrev.com/a4a148c1d9de76f14e1683023b47f3bc47b3204d/services/proxy_resolver/proxy_resolver_factory_impl.cc
[modify] https://crrev.com/a4a148c1d9de76f14e1683023b47f3bc47b3204d/services/proxy_resolver/proxy_resolver_factory_impl.h
[modify] https://crrev.com/a4a148c1d9de76f14e1683023b47f3bc47b3204d/services/proxy_resolver/proxy_resolver_factory_impl_unittest.cc
[modify] https://crrev.com/a4a148c1d9de76f14e1683023b47f3bc47b3204d/services/proxy_resolver/proxy_resolver_impl.cc
[modify] https://crrev.com/a4a148c1d9de76f14e1683023b47f3bc47b3204d/services/proxy_resolver/proxy_resolver_impl.h
[modify] https://crrev.com/a4a148c1d9de76f14e1683023b47f3bc47b3204d/services/proxy_resolver/proxy_resolver_impl_unittest.cc
[modify] https://crrev.com/a4a148c1d9de76f14e1683023b47f3bc47b3204d/services/proxy_resolver/proxy_resolver_service.cc
[modify] https://crrev.com/a4a148c1d9de76f14e1683023b47f3bc47b3204d/services/proxy_resolver/proxy_resolver_service.h
[modify] https://crrev.com/a4a148c1d9de76f14e1683023b47f3bc47b3204d/services/proxy_resolver/public/interfaces/proxy_resolver.mojom

Components: -Internals>Network>Service Internals>Services>Network
Apologies, applied the wrong component in bulk.
Components: Internals>Services>ServiceManager
Bulk applying component Internals>Services>ServiceManager to issues referencing the text ServiceManager.  This may not be 100% accurate, so please feel free to pull the component as needed.
Project Member

Comment 12 by bugdroid1@chromium.org, Nov 10 2017

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

commit ee5f4605add85beb55038bfd461116a2a9333e3c
Author: Matt Menke <mmenke@chromium.org>
Date: Fri Nov 10 03:47:18 2017

Make URLRequestContextBuilderMojo take in a Mojo ProxyResolverFactory

Also convert ChromeMojoProxyResolverFactory to a ProxyResolverFactory.
The class now relies on the the proxy service to manage its own
lifetime, instead of expecting to be responsible for managing that
itself.

Bug:  754007 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: Ifab3624ea083b4e1e00beaa66e274ab8d0656496
Reviewed-on: https://chromium-review.googlesource.com/660723
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Jay Civelli <jcivelli@chromium.org>
Commit-Queue: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515445}
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/chrome/browser/io_thread.cc
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/chrome/browser/net/chrome_mojo_proxy_resolver_factory.cc
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/chrome/browser/net/chrome_mojo_proxy_resolver_factory.h
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/chrome/browser/net/chrome_mojo_proxy_resolver_factory_browsertest.cc
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/content/network/proxy_resolver_factory_mojo.cc
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/content/network/proxy_resolver_factory_mojo.h
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/content/network/proxy_resolver_factory_mojo_unittest.cc
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/content/network/proxy_service_mojo.cc
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/content/network/proxy_service_mojo.h
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/content/public/network/BUILD.gn
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/content/public/network/DEPS
[delete] https://crrev.com/7f811a91ee8c64fc163f37b6082c368d851476ea/content/public/network/mojo_proxy_resolver_factory.h
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/content/public/network/url_request_context_builder_mojo.cc
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/content/public/network/url_request_context_builder_mojo.h
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/content/test/proxy_service_mojo_unittest.cc
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/content/test/test_mojo_proxy_resolver_factory.cc
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/content/test/test_mojo_proxy_resolver_factory.h
[modify] https://crrev.com/ee5f4605add85beb55038bfd461116a2a9333e3c/content/test/url_request_context_builder_mojo_unittest.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Nov 13 2017

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

commit b317a7983b640293789f35660a21f39fe729fb4c
Author: Matt Menke <mmenke@chromium.org>
Date: Mon Nov 13 21:42:09 2017

Remove IOThreadBrowserTest. NoCache

The behavior is tested by NetworkContextConfigurationBrowserTest.Cache,
and the latter uses the correct URLRequestContext when the network
service is in use.

In another CL, I'll be switching the vestigal in-process system
URLRequestContext to use default parameters when the network service is
enabled, which will cause that context to use an in-memory cache. When
the network service is disabled, the legacy URLRequestContext will
still have no cache.  Seems best to just remove the test, since it's
redundant.

Bug:  754007 
Change-Id: I0ce14ee613cf0d400d6fc86e8931eae370df13f5
Reviewed-on: https://chromium-review.googlesource.com/766951
Reviewed-by: Randy Smith <rdsmith@chromium.org>
Commit-Queue: Matt Menke <mmenke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516060}
[modify] https://crrev.com/b317a7983b640293789f35660a21f39fe729fb4c/chrome/browser/io_thread_browsertest.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Nov 14 2017

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

commit f0747fdcf02656c6395a95a5a61fcad57c1a80da
Author: Matt Menke <mmenke@chromium.org>
Date: Tue Nov 14 01:49:47 2017

Convert IOThread unit tests to browser tests.

Creating an IOThread outside of a full Chrome environment requires a
fair bit of weirdness, and I'm running into DCHECKs in another CL in
the IOThread unit test test fixture.  Rather than try and debug it,
it's simpler just to convert them to browser tests and not support
unit testing of IOThread (Which is going away at some point, anyways).

IOThreadTestWithIOThreadObject.UpdateAuthAndroidNegotiateAccountType
is Android only, so can't be tested in a browser test. This CL just
removes it, which is a bit unfortunate, though the test only checks
that prefs::kAuthAndroidNegotiateAccountType make it to
http_auth_preferences.

Bug:  754007 
Change-Id: Ifddd5fb3dcd6d20a36352ed749b3fd5614c68289
Reviewed-on: https://chromium-review.googlesource.com/764687
Commit-Queue: Matt Menke <mmenke@chromium.org>
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Reviewed-by: Asanka Herath <asanka@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516143}
[modify] https://crrev.com/f0747fdcf02656c6395a95a5a61fcad57c1a80da/chrome/browser/io_thread.h
[modify] https://crrev.com/f0747fdcf02656c6395a95a5a61fcad57c1a80da/chrome/browser/io_thread_browsertest.cc
[delete] https://crrev.com/a5f21099f19b67c37df517bcd12db360c6a6fa63/chrome/browser/io_thread_unittest.cc
[modify] https://crrev.com/f0747fdcf02656c6395a95a5a61fcad57c1a80da/chrome/test/BUILD.gn

Project Member

Comment 15 by bugdroid1@chromium.org, Nov 21 2017

Project Member

Comment 16 by bugdroid1@chromium.org, Dec 1 2017

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

commit 991bff766e77ea3ca1a6d40367a5d4766a7c7b11
Author: Matt Menke <mmenke@chromium.org>
Date: Fri Dec 01 15:32:28 2017

Add proxy configuration to the network service.

NetworkContexts can now be created with an optional
initial proxy configuration and/or a pipe to pass
updated proxy configurations over.

Will make chrome/ use this in a followup CL.

Bug:  754007 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: Idc92e3cb6e52716d50e1780dd296bef694411c43
Reviewed-on: https://chromium-review.googlesource.com/755797
Commit-Queue: Matt Menke <mmenke@chromium.org>
Reviewed-by: Eric Roman <eroman@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520945}
[modify] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/network/BUILD.gn
[modify] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/network/DEPS
[modify] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/network/network_context.cc
[modify] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/network/network_context.h
[modify] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/network/network_context_unittest.cc
[modify] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/network/network_service_unittest.cc
[add] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/network/proxy_config_service_mojo.cc
[add] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/network/proxy_config_service_mojo.h
[add] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/network/proxy_config_service_mojo_unittest.cc
[modify] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/public/common/BUILD.gn
[modify] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/public/common/network_service.mojom
[add] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/public/common/proxy_config.mojom
[add] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/public/common/proxy_config.typemap
[add] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/public/common/proxy_config_traits.cc
[add] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/public/common/proxy_config_traits.h
[add] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/public/common/proxy_config_traits_unittest.cc
[modify] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/public/common/typemaps.gni
[modify] https://crrev.com/991bff766e77ea3ca1a6d40367a5d4766a7c7b11/content/test/BUILD.gn

Project Member

Comment 17 by bugdroid1@chromium.org, Dec 1 2017

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

commit d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf
Author: Matt Menke <mmenke@chromium.org>
Date: Fri Dec 01 19:00:50 2017

Send proxy configuration over Mojo pipe in Chrome.

Do this by moving ProxyConfigService creation and ownership
from the legacy IOThread/ProfileIOData classes on the IO thread
to a new ProxyConfigMonitor class, which lives on the UI thread
and is owned by the new SystemNetworkContextManager and
ProfileNetworkContextService classes.

Chrome's ProxyConfigService now sends messages to the network
stack over a Mojo pipe from the UI thread over to the IO thread
(or the network process) instead of plugging directly in to the
ProxyService on the IO thread.

This effectively adds support for non-PAC proxy configurations
when the network service is enabled.

This CL also makes NetworkContext default to using direct
connections, instead of the system proxy configuration, both
to ensure a NetworkContext can always successfully be created,
and because it's more sandbox friendly.  Included in this CL
because without it, tests fail on Linux and ChromeOS when the
network service is enabled, because the legacy in-process
URLRequestContextBuilder can't create a ProxyConfigService on
those platforms.

Bug:  754007 
Cq-Include-Trybots: master.tryserver.chromium.android:android_cronet_tester;master.tryserver.chromium.linux:linux_mojo;master.tryserver.chromium.mac:ios-simulator-cronet
Change-Id: I537514ae8bf3726b3215bcf9b9b27f2d8ae2a951
Reviewed-on: https://chromium-review.googlesource.com/760538
Commit-Queue: Matt Menke <mmenke@chromium.org>
Reviewed-by: Eric Roman <eroman@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521003}
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/BUILD.gn
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/io_thread.cc
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/io_thread.h
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/net/network_context_configuration_browsertest.cc
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/net/profile_network_context_service.cc
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/net/profile_network_context_service.h
[add] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/net/proxy_config_monitor.cc
[add] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/net/proxy_config_monitor.h
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/net/proxy_service_factory.cc
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/net/system_network_context_manager.cc
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/net/system_network_context_manager.h
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/profiles/off_the_record_profile_impl.cc
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/profiles/off_the_record_profile_impl.h
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/profiles/profile.h
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/profiles/profile_impl.cc
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/profiles/profile_impl.h
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/profiles/profile_io_data.cc
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/profiles/profile_io_data.h
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/ui/app_list/test/fake_profile.cc
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/browser/ui/app_list/test/fake_profile.h
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/test/base/testing_profile.cc
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/chrome/test/base/testing_profile.h
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/components/proxy_config/pref_proxy_config_tracker_impl.cc
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/components/proxy_config/pref_proxy_config_tracker_impl.h
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/content/network/network_context.cc
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/content/public/common/network_service.mojom
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/mojo/public/cpp/bindings/interface_ptr_set.h
[modify] https://crrev.com/d0d0d0508a541932ce4e43dfdeec1eb6dacf9edf/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter

Project Member

Comment 18 by bugdroid1@chromium.org, Dec 4 2017

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

commit d2a43b3ce367b66d022a87b640e10d0e64e62df9
Author: Matt Menke <mmenke@chromium.org>
Date: Mon Dec 04 23:30:16 2017

Hook up ChromeMojoProxyResolverFactory to the network service.

Adds an API to the NetworkService so that it can take in a
mojom::ProxyResolverFactory, and makes Chrome's
CreateDefaultNetworkContextParams method add an InterfracePtr
that points at ChromeMojoProxyResolverFactory.

Also moves ChromeMojoProxyResolverFactories from the IO to
the UI thread, and removes the old code to create them from
the legacy IOThread and ProfileIOData classes.


Bug:  754007 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_mojo
Change-Id: I89f77ddfb9511494f1f32a596f3a67509cd5b1e3
Reviewed-on: https://chromium-review.googlesource.com/768216
Commit-Queue: Matt Menke <mmenke@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Eric Roman <eroman@chromium.org>
Reviewed-by: Jay Civelli <jcivelli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521514}
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/chrome/browser/io_thread.cc
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/chrome/browser/io_thread.h
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/chrome/browser/io_thread_browsertest.cc
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/chrome/browser/net/chrome_mojo_proxy_resolver_factory.cc
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/chrome/browser/net/chrome_mojo_proxy_resolver_factory.h
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/chrome/browser/net/chrome_mojo_proxy_resolver_factory_browsertest.cc
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/chrome/browser/net/default_network_context_params.cc
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/chrome/browser/net/network_context_configuration_browsertest.cc
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/chrome/browser/net/proxy_browsertest.cc
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/content/network/network_context.cc
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/content/network/network_context.h
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/content/network/network_service_impl.cc
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/content/network/network_service_impl.h
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/content/public/common/BUILD.gn
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/content/public/common/network_service.mojom
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/content/public/network/network_service.h
[modify] https://crrev.com/d2a43b3ce367b66d022a87b640e10d0e64e62df9/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter

Status: Fixed (was: Assigned)
(DHCP still isn't hooked up on ChromeOS, but that's an issue for another day)

Sign in to add a comment