In Azeem's review of [1], he pointed out that there's no reason that AndroidSmsAppInstallingStatusObserver needs to live within the MultiDeviceSetup service. It would be better placed within AndroidSmsService instead, since:
(1) If Messages is prohibited by policy, MultiDeviceSetupClient does not create an instance of AndroidSmsAppInstallingStatusObserver at all. Since AndroidSmsService is also not created in this case, it makes sense to bundle all of this functionality in the same spot.
(2) It can rely on MultiDeviceSetupClient to provide all the needed information, so it does not need to be within the implementation of the service.
Since AndroidSmsAppInstallingStatusObserver is the only client of AndroidSmsAppHelperDelegate within the MultiDeviceSetup service, we can also remove the pure virtual AndroidSmsAppHelperDelegate class out of //chromeos/services/multidevice_setup/public/cpp altogether and would no longer need to pass a AndroidSmsAppHelperDelegate* into the service at all.
[1] https://chromium-review.googlesource.com/c/chromium/src/+/1402022
Comment 1 by jlkl...@google.com
, Jan 10