Some thoughts on the Seamonkey /xpfe to /toolkit transition
Apart from the backend stuff like /bootstrap etc., porting the Seamonkey bindings will pose quite some problems. Toolbars, for example, are quite different: /xpfe has grippies, /toolkit's toolbars are customizable... (And both are non-movable, btw.)
Making /xpfe toolbars base upon /toolkit will be problematic:
1. Make chrome://global/content/bindings/* refer to /toolkit and introduce chrome://xpfe/content/bindings/* for /xpfe
- This means touching all Seamonkey stuff that relies upon the /xpfe implementation and will break lots of addons doing the same!
2. Keep chrome://global/content/bindings/* refer to /xpfe and introduce chrome://toolkit/content/bindings/* for /toolkit
- This will not work without changes to /toolkit, because /toolkit bindings expect to be available via chrome://global/content/bindings/* (as do /xpfe bindings) and so would refer to the (wrong) /xpfe ones.
3. Drop /xpfe and put all the stuff into /toolkit
- This means putting lots of #ifdefs into /toolkit, because they most probably won't accept all the stuff back they dropped. Furthermore, it's a quite ugly.
4. Make /xpfe binding files include the /toolkit files via some ?xbl-include? magic
- This will mean implementing such an ?xbl-include? processing instruction in the first place (or do we already have something like that?). It will have problems with some edges of XBL inheritabce, too.
Currently, I see only 4. as a useful way to make /xpfe bindings be based upon /toolkit, and that still needs some exploring...