A lot of the complexity that we’re dealing with architecturally is because we’re trying to maintain the old backend while adding the new capability with a new backend, but the two backends share some infrastructure.
What I want to do is determine if we can do a better job of separating out the jumplist backend by reading a pref at runtime and choosing the right implementation.
TODO
Rename nsIJumpListBuilder to nsILegacyJumpListBuilder
Add createLegacyJumpListBuilder to nsIWinTaskBar to use the old mechanism
Update WindowsJumpList to use the legacy interface
Create a new nsIJumpListBuilder
Populate nsIJumpListBuilder using the code we developed in the previous iteration
Have createJumpListBuilder in nsIWinTaskBar use that
Update WindowsJumpLists to choose the right builder based on the pref and treat them correctly based on that pref.