The ChannelsUpdater/ChannelsInitializer should iterate through channels to be updated instead of deleting & recreating from scratch, to be:
a) more efficient
b) safer in terms of third party changes - we don't know if the effect of deleting a channel might change in future / on different devices
c) safer in terms of Chrome changes - there's a risk of a race condition if we try to update from two places simultaneously and crash before one has finished recreating the channels. Right now this shouldn't happen because the async task to update channels is scheduled on a serial executor but this could change.
Comment 1 by awdf@chromium.org
, Apr 18 2017