Goal: I want the JumpListManager to only ever be accessed off of the main thread, so that the main thread in the parent process never has to await a lock.
Get rid of maxListItems, since it doesn’t appear to be used
Get rid of isListCommitted
Make .available return a Promise
Make abortListBuild return a Promise
Make deleteActiveList return a Promise
Make SetAppUserModelId return a Promise
Add WebIDL for JumpListShortcutDescription and add populateJumpList method to JumpListBuilder.
Custom List (this is the Frequently Visited stuff) - Frequent is ENABLED by default - Recent is DISABLED by default - Don’t need separators
Tasks
Update methods so that tasks and custom lists are added in the same method call. So a single populate method that takes something like… (taskDescriptions, customTitle, customListDescriptions)
Finish the URL removal thing. Basically, if an item was removed via the shell, the next call to AppendCategory cannot include that item with the same display name - the next call needs to display something else entirely.
Figure out how to make the above testable. Then write tests.
Implement clearJumpList (it’s called deleteActiveList)
See if the above works. If it does, get rid of old changes that we don’t need and merge patches down
Update WindowsJumpList.jsm to use the new API instead of the old one.
Update WindowsJumpList.jsm to be simpler so that it doesn’t try to do so much lazy stuff since now it’s all off of the main thread
Remove the old implementation! Hooray!
Migrate off of dedicated lazy thread to background thread pool