empty launcher |
||||
Issue descriptionI just synced to ToT(#546475) and got empty launcher. newcomer@, can you take a look?
,
Mar 28 2018
Regression of crrev.com/c/974660. AppListServiceImpl::GetAppListClient() is never called. We used to have |GetViewDelegate| called lazily from views to populate models, but now we've break views into Ash, so we should call it somewhere in Chrome.
,
Mar 28 2018
Suspect CL: https://chromium.googlesource.com/chromium/src/+/db8976b8b9dcd6a99057d49742cf6c42395d9058 +hejq@ who is OOO until monday. +xiyuan who was a reviewer, is it ok to revert this change?
,
Mar 28 2018
Two options to fix that: - Add a mojo interface from Ash to Chrome. Each time app list views are shown we notify Chrome to fetch the models. - Populate the active user's model on user change in Chrome. But this will unexpectedly initiated a lot of AppList objects (search/models/) and break a bunch of tests.
,
Mar 28 2018
Ok! Talked to hejq@ offline. I will revert this for now and assign to hejq@ for follow up when he is back.
,
Mar 28 2018
,
Mar 28 2018
Yep, let's revert it for now. I am inclined to add a AppListServiceImpl::GetAppListClient around [1] to fix the issue. [1] https://cs.chromium.org/chromium/src/chrome/browser/chromeos/login/session/user_session_manager.cc?rcl=e9e0f8824b98d30675feb923896daa31a82813ef&l=1964
,
Mar 28 2018
,
Apr 2 2018
RE #8: I think it won't work in user_session_manager. AppListClientImpl should be associated with a profile when its corresponding model updater is ready. However, putting it in AppListSyncableService::BuildModel should work. It then tries to set the profile once the models are built, and does nothing if the active profile doesn't change. And in this way it only sets the profile on demand, instead of every time a profile is created, so it won't break those tests.
,
Apr 2 2018
Or to set it even later, I guess AppListClientImpl::ViewShown is another option。
,
Apr 2 2018
AppListSyncableService::BuildModel does not sound right because it has nothing to do with user sign-in/switching. AppListClientImpl::ViewShown is probably too late because user might see the UI of the incomplete model. Why UserSessionManager is not a good place to set profile for AppListClientImpl? I don't think the builders need to be fully done when we set profile. AppListClientImpl can send whatever it knows and send the rest incrementally when the builders add more stuff.
,
Apr 2 2018
Yes. We do not need builders at that moment, but we need the model updater of that profile. So more precisely we want to put this call somewhere after AppListSyncableService is registered. Maybe a PostTask will work for this.
,
Apr 16 2018
CL: https://chromium-review.googlesource.com/c/chromium/src/+/996054 It's updated and relanded and this issue should be fixed. |
||||
►
Sign in to add a comment |
||||
Comment 1 by newcomer@chromium.org
, Mar 28 2018