Figure out what to do for net::ProxyResolutionService::TryResolveProxySynchronously() used by Predictor |
|||||||||||
Issue descriptionPredictor currently depends on the ability to check if proxy can be resolved synchronously (see net::ProxyResolutionService::TryResolveProxySynchronously) https://cs.chromium.org/chromium/src/chrome/browser/net/predictor.cc?rcl=5204eb18ab845ca715a8c256adea21463166c7f5&l=978 https://cs.chromium.org/chromium/src/chrome/browser/predictors/preconnect_manager.cc?rcl=5204eb18ab845ca715a8c256adea21463166c7f5&l=264 With network service, all calls to ProxyResolution service will be async. Network service won't be able to support this sync feature. We need to figure out a way forward.
,
May 2 2018
The predictor uses this call to avoid preresolving dns addresses if a proxy is enabled. I didn't want to use this sync call in the new predictor initially but it caused a regression on perf bots. The reason is that we don't preconnect until an address is successfully resolved. Some of perf bots are offline and use proxy for testing so dns requests always fail and we can't preconnect. We could make an async request to resolve proxy in parallel with dns resolve and go straight to the preconnect if a proxy is enabled.
,
May 15 2018
,
May 18 2018
,
Jun 7 2018
,
Jul 30
alex, let me know if you can start on this since it should be unblocked now.
,
Aug 6
I'm proceeding with the plan proposed in c#2 for the new predictor, i.e. issuing an async request to resolve proxy in parallel with dns request. NetworkContext::LookUpProxyForURL() is the API for proxy resolution I'm going to use.
,
Aug 14
can you provide an update?
,
Aug 16
I decided to not block the network servicification on this. I'll remove the synchronous call to the ProxyResolutionProxy in my next CL and I'll add support of async resolution after that.
,
Aug 21
,
Sep 4
,
Sep 7
,
Sep 10
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/248c267fc1c931ba1863d72bb1ddbd45f8680218 commit 248c267fc1c931ba1863d72bb1ddbd45f8680218 Author: Alexandr Ilin <alexilin@chromium.org> Date: Mon Sep 10 10:40:51 2018 predictors: Request a proxy lookup in parallel with host resolve request This CL adds an asynchronous proxy lookup request to the PreconnectManager after the synchronous request was removed in https://crrev.com/c/1165550. The idea is that we don't need to wait for a host to be resolved before a preconnect if a proxy is enabled. Since we don't have a synchronous API for proxy lookup anymore, we issue both host and proxy requests in parallel. Then we wait until either one of the requests completes with success or both requests fail. Bug: 838763 Change-Id: Ib3fa47884ba82d1fc12c62f7fd24dd21c279e9c5 Reviewed-on: https://chromium-review.googlesource.com/1202222 Commit-Queue: Alexandr Ilin <alexilin@chromium.org> Reviewed-by: Benoit L <lizeb@chromium.org> Cr-Commit-Position: refs/heads/master@{#589877} [modify] https://crrev.com/248c267fc1c931ba1863d72bb1ddbd45f8680218/chrome/browser/BUILD.gn [modify] https://crrev.com/248c267fc1c931ba1863d72bb1ddbd45f8680218/chrome/browser/predictors/loading_predictor_browsertest.cc [modify] https://crrev.com/248c267fc1c931ba1863d72bb1ddbd45f8680218/chrome/browser/predictors/loading_stats_collector_unittest.cc [modify] https://crrev.com/248c267fc1c931ba1863d72bb1ddbd45f8680218/chrome/browser/predictors/preconnect_manager.cc [modify] https://crrev.com/248c267fc1c931ba1863d72bb1ddbd45f8680218/chrome/browser/predictors/preconnect_manager.h [modify] https://crrev.com/248c267fc1c931ba1863d72bb1ddbd45f8680218/chrome/browser/predictors/preconnect_manager_unittest.cc [add] https://crrev.com/248c267fc1c931ba1863d72bb1ddbd45f8680218/chrome/browser/predictors/proxy_lookup_client_impl.cc [add] https://crrev.com/248c267fc1c931ba1863d72bb1ddbd45f8680218/chrome/browser/predictors/proxy_lookup_client_impl.h [add] https://crrev.com/248c267fc1c931ba1863d72bb1ddbd45f8680218/chrome/test/data/predictors/proxy.pac
,
Sep 12
A synchronous proxy lookup was replaced by an asynchronous one, see c#13. Marking this as Fixed. |
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by xunji...@chromium.org
, May 2 2018