New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 826751 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug

Blocking:
issue 733662



Sign in to add a comment

empty launcher

Project Member Reported by osh...@chromium.org, Mar 28 2018

Issue description

I just synced to ToT(#546475) and got empty launcher.
newcomer@, can you take a look?


 
Status: Started (was: Assigned)

Comment 2 Deleted

Comment 3 by hejq@chromium.org, 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.
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? 


Comment 5 by hejq@chromium.org, 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.
Cc: newcomer@chromium.org
Owner: hejq@chromium.org
Ok! Talked to hejq@ offline. I will revert this for now and assign to hejq@ for follow up when he is back.


Comment 8 by xiy...@chromium.org, 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
Blocking: 733662

Comment 10 by hejq@chromium.org, 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.

Comment 11 by hejq@chromium.org, Apr 2 2018

Or to set it even later, I guess AppListClientImpl::ViewShown is another option。
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. 

Comment 13 by hejq@chromium.org, 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.

Comment 14 by hejq@chromium.org, Apr 16 2018

Status: Fixed (was: Started)
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