I thought the first step was to make --show-app-list open chrome://apps. That shouldn't require removal of any code or shortcuts (which is what your first CL seems to be doing).
We need --show-app-list to work after the code is deleted, so it should be added to code that's switched on only after enable_app_list=0 is set. So, to test it, we first need enable_app_list=0 to work.
So on Mac, it's very difficult to forcibly remove something from the Dock, and the "shortcut" is a standalone .app "shim" bundle that communicates with Chrome over IPC. There's also the possibility (on all platforms) that shortcuts have been copied, and we won't be able to hunt all the copies down.
A broken shortcut is a poor UX, so I think we want to keep the opening chrome://apps behaviour around for a few milestones.
Then, if the logic to maintain it and (for Windows) the size-cost of the icons on the chrome.exe is acceptable I think we'd consider keeping it. Otherwise we can rewrite them with the Chrome icon, and perhaps just replace "--show-app-list" on the command line with "chrome://apps", and it should all Just Work as before. Or just delete them - I don't think there are any blockers either way.
Sizes changes after r394856
~390k on win64 (chrome.dll)
~257k on win32 (chrome.dll)
~623k on Linux (stripped)
~459k on Mac (ChromiumFramework) 651k in Chromium.app I think, but the graph is a bit whack
We should delete the promo code soon -- it's been disabled for a whole milestone. I wrote a patch for this a while ago in https://codereview.chromium.org/2012993002 . I rebased it but it might be incomplete, or in a broken state. Someone should take it over, since I have too much on my plate (and .js files intimidate me).
Removing the app launcher "settings app" stuff ( Issue 263236 ), i.e. enable_settings_app in gyp/gn, is also a priority, since it's getting in the way of efforts to convert chrome://settings to MD.
I'm still running into dead app list code occasionally - https://codereview.chromium.org/2787693002/ deletes another 1300+ lines, but there's still more to do.
some threads still to pull:
- remove AppListService::ShowForProfile, SetProfilePath, ..
- remove app_list::Switches::IsVoiceSearchEnabled(), IsFolderUIEnabled(), IsAppListSyncEnabled(), IsDriveAppsInAppListEnabled()
Comment 1 by mgiuca@chromium.org
, Apr 6 2016