|
|
DescriptionDon't delay creation of system URLRequestContext until first use.
This also requires updating ProxyConfigServiceImpl to pass its status synchronously
to the ProxyConfig it creates, since there's not yet an IO Thread to post a task to
during IOThread creation.
BUG=715695
Review-Url: https://codereview.chromium.org/2860033003
Cr-Commit-Position: refs/heads/master@{#471791}
Committed: https://chromium.googlesource.com/chromium/src/+/02505dac8a35d644e38d27b01e48645ce39599bc
Patch Set 1 #Patch Set 2 : Base on top of trunk, fix PrefProxyConfigTrackerImpl #Patch Set 3 : Rework tests #Patch Set 4 : Another startup fix. Will need to update unit tests #Patch Set 5 : Update tests #Patch Set 6 : Fix testing_io_thread_state.h #Patch Set 7 : Fix testing_io_thread_state.h (Again) #
Total comments: 1
Patch Set 8 : Fix android #
Total comments: 4
Patch Set 9 : Response to stevenjob's comments #Patch Set 10 : Merge #Patch Set 11 : Merge #
Total comments: 8
Patch Set 12 : Response to comments #Patch Set 13 : Oops #
Total comments: 2
Patch Set 14 : Remove comment #
Messages
Total messages: 65 (49 generated)
The CQ bit was checked by mmenke@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by mmenke@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Patchset #3 (id:40001) has been deleted
Description was changed from ========== Don't delay creation of system URLRequestContext BUG=715695 ========== to ========== Don't delay creation of system URLRequestContext until first use. This also requires updating ProxyConfigServiceImpl to handle getting a OnProxyConfigChanged call from the delegate proxy config service before it has received its initiate settings. BUG=715695 ==========
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_asan_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by mmenke@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by mmenke@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_androi...) linux_chromium_chromeos_ozone_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) linux_chromium_chromeos_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...) linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by mmenke@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Don't delay creation of system URLRequestContext until first use. This also requires updating ProxyConfigServiceImpl to handle getting a OnProxyConfigChanged call from the delegate proxy config service before it has received its initiate settings. BUG=715695 ========== to ========== Don't delay creation of system URLRequestContext until first use. This also requires updating ProxyConfigServiceImpl to pass its status synchronously to the ProxyConfig it creates, since there's not yet an IO Thread to post a task to during IOThread creation. BUG=715695 ==========
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by mmenke@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: android_arm64_dbg_recipe on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/android_arm6...)
The CQ bit was checked by mmenke@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
mmenke@chromium.org changed reviewers: + eroman@chromium.org, stevenjb@chromium.org
[eroman]: Please review chrome/browser/io_thread and testing_io_thread_state. Sending this to you because, the main complexity is around creating the proxy config service earlier (Before the IOThread is even running, actually, though can still get its TaskRunner, just not post tasks to it yet). [stevenjb]: Please review components/proxy_config/ https://codereview.chromium.org/2860033003/diff/140001/chrome/test/base/testi... File chrome/test/base/testing_io_thread_state.cc (right): https://codereview.chromium.org/2860033003/diff/140001/chrome/test/base/testi... chrome/test/base/testing_io_thread_state.cc:99: io_thread_state_->CleanUp(); This change is needed because now system_proxy_config_service_ is initialized in IOThread::Init, it's not destroyed when destroying globals, and on OSX the proxy service DCHECKs that it's destroyed on the IOTHread, which normally happens in IOThread::Cleanup.
The CQ bit was unchecked by mmenke@chromium.org
The CQ bit was checked by mmenke@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...)
components/proxy_config lgtm w/ nits https://codereview.chromium.org/2860033003/diff/160001/components/proxy_confi... File components/proxy_config/pref_proxy_config_tracker_impl.h (right): https://codereview.chromium.org/2860033003/diff/160001/components/proxy_confi... components/proxy_config/pref_proxy_config_tracker_impl.h:42: const net::ProxyConfig& initial_config); No longer explicit s/initial_config/initial_pref_config/ https://codereview.chromium.org/2860033003/diff/160001/components/proxy_confi... File components/proxy_config/pref_proxy_config_tracker_impl_unittest.cc (right): https://codereview.chromium.org/2860033003/diff/160001/components/proxy_confi... components/proxy_config/pref_proxy_config_tracker_impl_unittest.cc:79: // Initializes the proxy config service. The delegate config service has the single ' ' between sentences.
Thanks for the feedback! (And if you're wondering about the test...In an earlier CL, I had run into issues with the case where it got a config from the delegate service before the proxy service was notified of settings. Eventually changed code so that didn't happen, anyways, and made most of my new tests moot, but thought I'd keep the one that made sense) https://codereview.chromium.org/2860033003/diff/160001/components/proxy_confi... File components/proxy_config/pref_proxy_config_tracker_impl.h (right): https://codereview.chromium.org/2860033003/diff/160001/components/proxy_confi... components/proxy_config/pref_proxy_config_tracker_impl.h:42: const net::ProxyConfig& initial_config); On 2017/05/10 18:46:16, stevenjb wrote: > No longer explicit > s/initial_config/initial_pref_config/ Done. https://codereview.chromium.org/2860033003/diff/160001/components/proxy_confi... File components/proxy_config/pref_proxy_config_tracker_impl_unittest.cc (right): https://codereview.chromium.org/2860033003/diff/160001/components/proxy_confi... components/proxy_config/pref_proxy_config_tracker_impl_unittest.cc:79: // Initializes the proxy config service. The delegate config service has the On 2017/05/10 18:46:16, stevenjb wrote: > single ' ' between sentences. Done.
eroman: Ping! If you're busy, I can look for someone else, though going to be sending another CL your way shortly.
Sorry, I actually was out past 2 days but failed to updated my status.
On 2017/05/12 01:17:42, eroman wrote: > Sorry, I actually was out past 2 days but failed to updated my status. Not a problem at all.
The CQ bit was checked by mmenke@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
lgtm https://codereview.chromium.org/2860033003/diff/220001/components/proxy_confi... File components/proxy_config/pref_proxy_config_tracker_impl.cc (right): https://codereview.chromium.org/2860033003/diff/220001/components/proxy_confi... components/proxy_config/pref_proxy_config_tracker_impl.cc:134: update_pending_(true), Can you delete this variable? Seems like the only places that cares about this is PrefProxyConfigTrackerImpl::OnProxyConfigChanged() and it can check the nullity of |proxy_config_service_impl_|. https://codereview.chromium.org/2860033003/diff/220001/components/proxy_confi... components/proxy_config/pref_proxy_config_tracker_impl.cc:148: PrefProxyConfigTrackerImpl::CreateTrackingProxyConfigService( The interface for CreateTrackingProxyConfigService() doesn't document whether this can be called multiple times. Presumably it can't. Care to add a DCHECK() that proxy_config_service_impl_ is null here, and add a comment to the interface? https://codereview.chromium.org/2860033003/diff/220001/components/proxy_confi... File components/proxy_config/pref_proxy_config_tracker_impl.h (right): https://codereview.chromium.org/2860033003/diff/220001/components/proxy_confi... components/proxy_config/pref_proxy_config_tracker_impl.h:40: ProxyConfigServiceImpl(net::ProxyConfigService* base_service, If you are changing the signature anyway, want to make this a unique_ptr?
The CQ bit was checked by mmenke@chromium.org to run a CQ dry run
https://codereview.chromium.org/2860033003/diff/220001/components/proxy_confi... File components/proxy_config/pref_proxy_config_tracker_impl.cc (right): https://codereview.chromium.org/2860033003/diff/220001/components/proxy_confi... components/proxy_config/pref_proxy_config_tracker_impl.cc:134: update_pending_(true), On 2017/05/12 21:12:59, eroman wrote: > Can you delete this variable? > > Seems like the only places that cares about this is > PrefProxyConfigTrackerImpl::OnProxyConfigChanged() and it can check the nullity > of |proxy_config_service_impl_|. This is used in a subclass, chromeos::ProxyConfigServiceImpl, in a manner there that implies its configuration updates can also fail. I'm sufficiently nervous about its state machinery and use in that class that I think fixing it is beyond the scope of this CL. I'll try and remove it in a followup CL. https://codereview.chromium.org/2860033003/diff/220001/components/proxy_confi... components/proxy_config/pref_proxy_config_tracker_impl.cc:148: PrefProxyConfigTrackerImpl::CreateTrackingProxyConfigService( On 2017/05/12 21:12:59, eroman wrote: > The interface for CreateTrackingProxyConfigService() doesn't document whether > this can be called multiple times. Presumably it can't. > > Care to add a DCHECK() that proxy_config_service_impl_ is null here, and add a > comment to the interface? Done (Docs added to PrefProxyConfigTracker) https://codereview.chromium.org/2860033003/diff/220001/components/proxy_confi... File components/proxy_config/pref_proxy_config_tracker_impl.h (right): https://codereview.chromium.org/2860033003/diff/220001/components/proxy_confi... components/proxy_config/pref_proxy_config_tracker_impl.h:40: ProxyConfigServiceImpl(net::ProxyConfigService* base_service, On 2017/05/12 21:12:59, eroman wrote: > If you are changing the signature anyway, want to make this a unique_ptr? SGTM, done
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-device-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device-xcode-...) ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...) ios-simulator-xcode-clang on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator-xco...)
The CQ bit was checked by mmenke@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
lgtm https://codereview.chromium.org/2860033003/diff/220001/components/proxy_confi... File components/proxy_config/pref_proxy_config_tracker_impl.cc (right): https://codereview.chromium.org/2860033003/diff/220001/components/proxy_confi... components/proxy_config/pref_proxy_config_tracker_impl.cc:134: update_pending_(true), On 2017/05/12 21:29:57, mmenke wrote: > On 2017/05/12 21:12:59, eroman wrote: > > Can you delete this variable? > > > > Seems like the only places that cares about this is > > PrefProxyConfigTrackerImpl::OnProxyConfigChanged() and it can check the > nullity > > of |proxy_config_service_impl_|. > > This is used in a subclass, chromeos::ProxyConfigServiceImpl, in a manner there > that implies its configuration updates can also fail. I'm sufficiently nervous > about its state machinery and use in that class that I think fixing it is beyond > the scope of this CL. > > I'll try and remove it in a followup CL. No need to follow-up if it isn't simple. Just figured if there was an opportunity to add small cleanups while the code was paged into working memory, would be good. https://codereview.chromium.org/2860033003/diff/260001/components/proxy_confi... File components/proxy_config/pref_proxy_config_tracker_impl.h (right): https://codereview.chromium.org/2860033003/diff/260001/components/proxy_confi... components/proxy_config/pref_proxy_config_tracker_impl.h:39: // Takes ownership of the passed |base_service|. You can delete this comment now.
Thanks! https://codereview.chromium.org/2860033003/diff/220001/components/proxy_confi... File components/proxy_config/pref_proxy_config_tracker_impl.cc (right): https://codereview.chromium.org/2860033003/diff/220001/components/proxy_confi... components/proxy_config/pref_proxy_config_tracker_impl.cc:134: update_pending_(true), On 2017/05/12 21:54:55, eroman wrote: > On 2017/05/12 21:29:57, mmenke wrote: > > On 2017/05/12 21:12:59, eroman wrote: > > > Can you delete this variable? > > > > > > Seems like the only places that cares about this is > > > PrefProxyConfigTrackerImpl::OnProxyConfigChanged() and it can check the > > nullity > > > of |proxy_config_service_impl_|. > > > > This is used in a subclass, chromeos::ProxyConfigServiceImpl, in a manner > there > > that implies its configuration updates can also fail. I'm sufficiently > nervous > > about its state machinery and use in that class that I think fixing it is > beyond > > the scope of this CL. > > > > I'll try and remove it in a followup CL. > > No need to follow-up if it isn't simple. > > Just figured if there was an opportunity to add small cleanups while the code > was paged into working memory, would be good. I think it's probably pretty simple, just didn't want to delve into yet another weird proxy class. I'll take a look, and if it seems at all complicated, I'll skip it. https://codereview.chromium.org/2860033003/diff/260001/components/proxy_confi... File components/proxy_config/pref_proxy_config_tracker_impl.h (right): https://codereview.chromium.org/2860033003/diff/260001/components/proxy_confi... components/proxy_config/pref_proxy_config_tracker_impl.h:39: // Takes ownership of the passed |base_service|. On 2017/05/12 21:54:55, eroman wrote: > You can delete this comment now. Thanks, will do!
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by mmenke@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from stevenjb@chromium.org Link to the patchset: https://codereview.chromium.org/2860033003/#ps260001 (title: "Oops")
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...)
mmenke@chromium.org changed reviewers: + sky@chromium.org
[+sky] For chrome/test/base/testing_io_thread_state.cc
LGTM
The CQ bit was checked by mmenke@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from stevenjb@chromium.org, eroman@chromium.org, sky@chromium.org Link to the patchset: https://codereview.chromium.org/2860033003/#ps280001 (title: "Remove comment")
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 280001, "attempt_start_ts": 1494860639618980, "parent_rev": "eb2f886f0b9491f8e01ee197cd82a909c11102a6", "commit_rev": "02505dac8a35d644e38d27b01e48645ce39599bc"}
Message was sent while issue was closed.
Description was changed from ========== Don't delay creation of system URLRequestContext until first use. This also requires updating ProxyConfigServiceImpl to pass its status synchronously to the ProxyConfig it creates, since there's not yet an IO Thread to post a task to during IOThread creation. BUG=715695 ========== to ========== Don't delay creation of system URLRequestContext until first use. This also requires updating ProxyConfigServiceImpl to pass its status synchronously to the ProxyConfig it creates, since there's not yet an IO Thread to post a task to during IOThread creation. BUG=715695 Review-Url: https://codereview.chromium.org/2860033003 Cr-Commit-Position: refs/heads/master@{#471791} Committed: https://chromium.googlesource.com/chromium/src/+/02505dac8a35d644e38d27b01e48... ==========
Message was sent while issue was closed.
Committed patchset #14 (id:280001) as https://chromium.googlesource.com/chromium/src/+/02505dac8a35d644e38d27b01e48... |