Load ARC++ App Service icons from the cache

Looking in the cache is what the existing code (without
--enable-features=AppService) does: e.g. ArcAppIcon::LoadForScaleFactor
calls ArcAppListPrefs::GetIconPath.

Without looking in the cache (but with --enable-features=AppService), we
have to delay calling ARC_GET_INSTANCE_FOR_METHOD(etc, RequestAppIcon)
until ARC++ is ready (as notified by arc::ConnectionObserver<etc>'s
OnConnectionReady). On my high-end test hardware, waiting for
OnConnectionReady can still take around six seconds after log-in. During
that time, prior to this commit, ARC++ apps' icons are blank.

BUG=826982

Change-Id: I9db258bf12d25a22d32c4b2b9d6756555c7256bf
Reviewed-on: https://chromium-review.googlesource.com/c/1416796
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624358}
6 files changed