Allow at most one in-flight preconnect to proxy servers that support request priorities |
||||||||||||
Issue descriptionCurrently, when a user starts a navigation, the //net/predictor may trigger multiple preconnects based on its previous learning. Each of these preconnects may open up a new connection to a proxy server (depending on proxy resolution). For the users with configured proxy servers, this causes Chromium to open up to 32 connections to the proxy server. These preconnections are useful for cases when the server does not support request priorities. However, for HTTP2 proxy servers, these preconnections (except the first one) are unnecessary since HTTP2 is designed to be used on only one transport layer connection.
,
Dec 27 2016
,
Dec 27 2016
,
Dec 28 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7450edf914e2fedef46171ec5741d17b127df0f0 commit 7450edf914e2fedef46171ec5741d17b127df0f0 Author: tbansal <tbansal@chromium.org> Date: Wed Dec 28 21:12:53 2016 Cleanup the preconnect to proxy code and Job controller code (1) Add a boolean |restrict_to_one_preconnect_for_proxies| to network session params. This allows us to run multiple experiments using a single field trial. Next CL will add the variation param |race_preconnects_to_proxies| to experiment with racing the alternative and main jobs for proxy preconnects. (2) Remove an extra parameter in HttpStreamFactoryImpl::Job::Delegate::OnStreamReady() method. BUG= 667471 ,671291 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester Review-Url: https://codereview.chromium.org/2600943002 Cr-Commit-Position: refs/heads/master@{#440893} [modify] https://crrev.com/7450edf914e2fedef46171ec5741d17b127df0f0/components/network_session_configurator/network_session_configurator.cc [modify] https://crrev.com/7450edf914e2fedef46171ec5741d17b127df0f0/net/http/http_network_session.cc [modify] https://crrev.com/7450edf914e2fedef46171ec5741d17b127df0f0/net/http/http_network_session.h [modify] https://crrev.com/7450edf914e2fedef46171ec5741d17b127df0f0/net/http/http_stream_factory_impl.cc [modify] https://crrev.com/7450edf914e2fedef46171ec5741d17b127df0f0/net/http/http_stream_factory_impl.h [modify] https://crrev.com/7450edf914e2fedef46171ec5741d17b127df0f0/net/http/http_stream_factory_impl_job.cc [modify] https://crrev.com/7450edf914e2fedef46171ec5741d17b127df0f0/net/http/http_stream_factory_impl_job.h [modify] https://crrev.com/7450edf914e2fedef46171ec5741d17b127df0f0/net/http/http_stream_factory_impl_job_controller.cc [modify] https://crrev.com/7450edf914e2fedef46171ec5741d17b127df0f0/net/http/http_stream_factory_impl_job_controller.h [modify] https://crrev.com/7450edf914e2fedef46171ec5741d17b127df0f0/net/http/http_stream_factory_impl_job_controller_unittest.cc [modify] https://crrev.com/7450edf914e2fedef46171ec5741d17b127df0f0/net/http/http_stream_factory_impl_unittest.cc [modify] https://crrev.com/7450edf914e2fedef46171ec5741d17b127df0f0/net/spdy/spdy_test_util_common.cc
,
Jan 18 2017
,
Jan 23 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/37e33d58c076a55df84e0187538d6ec8996c206b commit 37e33d58c076a55df84e0187538d6ec8996c206b Author: tbansal <tbansal@chromium.org> Date: Mon Jan 23 17:02:15 2017 Allow a preconnecting job to a HTTP2 proxy server based on privacy mode Currently, one preconnect job is allowed in-flight for one proxy server. This CL changes it to allow one in-flight preconnect job for one (proxy server, privacy mode) tuple. This is needed since requests that use different privacy modes cannot share the same connection. BUG= 667471 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester Review-Url: https://codereview.chromium.org/2648593002 Cr-Commit-Position: refs/heads/master@{#445392} [modify] https://crrev.com/37e33d58c076a55df84e0187538d6ec8996c206b/net/http/http_stream_factory_impl.cc [modify] https://crrev.com/37e33d58c076a55df84e0187538d6ec8996c206b/net/http/http_stream_factory_impl.h [modify] https://crrev.com/37e33d58c076a55df84e0187538d6ec8996c206b/net/http/http_stream_factory_impl_job_controller.cc [modify] https://crrev.com/37e33d58c076a55df84e0187538d6ec8996c206b/net/http/http_stream_factory_impl_job_controller.h [modify] https://crrev.com/37e33d58c076a55df84e0187538d6ec8996c206b/net/http/http_stream_factory_impl_unittest.cc
,
Feb 7 2017
Requesting merge for the CL in Comment #6.
,
Feb 7 2017
Your change meets the bar and is auto-approved for M57. Please go ahead and merge the CL to branch 2987 manually. Please contact milestone owner if you have questions. Owners: amineer@(clank), cmasso@(bling), ketakid@(cros), govind@(desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Feb 7 2017
,
Feb 22 2017
Requesting merge for the CL in Comment #6.
,
Feb 22 2017
Your change meets the bar and is auto-approved for M57. Please go ahead and merge the CL to branch 2987 manually. Please contact milestone owner if you have questions. Owners: amineer@(clank), cmasso@(bling), ketakid@(cros), govind@(desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Feb 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9de7914b0e652585d4ac07303a949fbf1b19f09c commit 9de7914b0e652585d4ac07303a949fbf1b19f09c Author: Tarun Bansal <tbansal@google.com> Date: Wed Feb 22 23:25:05 2017 Allow a preconnecting job to a HTTP2 proxy server based on privacy mode Currently, one preconnect job is allowed in-flight for one proxy server. This CL changes it to allow one in-flight preconnect job for one (proxy server, privacy mode) tuple. This is needed since requests that use different privacy modes cannot share the same connection. BUG= 667471 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester Review-Url: https://codereview.chromium.org/2648593002 Cr-Commit-Position: refs/heads/master@{#445392} (cherry picked from commit 37e33d58c076a55df84e0187538d6ec8996c206b) Review-Url: https://codereview.chromium.org/2707053006 . Cr-Commit-Position: refs/branch-heads/2987@{#649} Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943} [modify] https://crrev.com/9de7914b0e652585d4ac07303a949fbf1b19f09c/net/http/http_stream_factory_impl.cc [modify] https://crrev.com/9de7914b0e652585d4ac07303a949fbf1b19f09c/net/http/http_stream_factory_impl.h [modify] https://crrev.com/9de7914b0e652585d4ac07303a949fbf1b19f09c/net/http/http_stream_factory_impl_job_controller.cc [modify] https://crrev.com/9de7914b0e652585d4ac07303a949fbf1b19f09c/net/http/http_stream_factory_impl_job_controller.h [modify] https://crrev.com/9de7914b0e652585d4ac07303a949fbf1b19f09c/net/http/http_stream_factory_impl_unittest.cc
,
Feb 22 2017
,
Mar 17 2017
,
Mar 17 2017
Marking as fixed. The fix is behind a field trial. Issue 682041 will track the experiment. |
||||||||||||
►
Sign in to add a comment |
||||||||||||
Comment 1 by bugdroid1@chromium.org
, Dec 13 2016