<< Weekly Status Report, W18/2007 | The roads I take... | The Mozilla Platform, Firefox, and SeaMonkey >>

"old xpfe" may die soon

In 1998, some brave Netscape engineers came up with the idea of a cross-platform front end, or XPFE for the mozilla.org-developed next generation of their internet suite.

Now, nine years later, some brave SeaMonkey developers will finally kill it.

Actually, that's not quite the truth. Back then, this XPFE or "XPToolkit" was the whole effort of creating a Cross-platform UI Language (XUL) and "make cross-platform user interfaces as easy to build as web pages" - which included the idea of rendering the UI with the same Gecko rendering engine that was/is also used for browser content.
And over the years, all sorts of stuff needed to run XPFE-based applications, including most of the UI itself, was filled into the xpfe/ directory of the mozilla.org source code tree - and that directory became a bit of a mess over time.
When recreating the browser application as Firefox, people decided to sort out that mess and created a toolkit/ directory to hold that reworked and cleaner version of the XUL toolkit that nowadays build the heart of XULRunner, Firefox, Thunderbird and Sunbird, among others. To not disturb the still prime product of mozilla.org when they built up that experiment, only the new application used that new toolkit while the suite continued to use its old version that was soon called "xpfe" internally as it was living in a directory with that name - even though the "new toolkit" is just a reworked version, but still basically the cross-platform front end toolkit for XUL applications - though cleaner and improved with better extension management, among other things.
As I said, the suite continued to use the "old xpfe" code - and that's also what we inherited for the SeaMonkey project, and what our current stable 1.x releases build upon.

On the bleeding edge development trunk, we have been working on the major step of porting the suite over to the "new toolkit" though, and as the future (but not immediate) target for that development is to get the suite running on top of XULRunner, we dubbed this effort "suiterunner".
And this effort is nearing a state where it can take over from the old xpfe-based version and replace it as the main development version. When doing that, i.e. resolving bug 328887 and turning the MOZ_XUL_APP flag on in all trunk builds, the "old xpfe" toolkit will effectively have lost its last big user (Camino might still build it, but not using a lot from it, actually) and so it will rest in peace.

And we are getting really close to that point now: Our biggest problem at the moment is that download manager is broken there, but as we'd like to build our future download manager on toolkit's backend (though with a UI similar to our "old" one) and that backend is probably seeing some major rework in the near future, we might just use something that works somehow for now, and only rework the UI so that it does what we really want when that backend work has settled somewhat.
Apart from that, we basically only have two things we'd like to have for the switch, but which are not strictly required: One is a profile migrator to convert old SeaMonkey profiles into new suiterunner profiles. Most of the work for that is done, Mark is currently sorting out the actual C++ code and mainly the list of preferences we need to migrate. The other is the new NSIS-based installer for Windows, we're only waiting on a re-review from Rob Strong, who did the work on this installer for Firefox.

So, as a conclusion: An intermediate solution for download manager seems to be manifesting itself, profile migrator is almost finished, Windows installer just needs reviews (while the latter two are only "soft", not hard requirements) - and then we can wave the "old xpfe" good-bye and SeaMonkey can officially enter the brave "new toolkit" world!

Entry written by KaiRo and posted on May 10th, 2007 23:07 | Tags: Mozilla, SeaMonkey | 2 comments | TrackBack

Comments

AuthorEntry

James Napolitano

from US

quote
OWhat about "Bug 282177" – resync xpfe bindings with toolkit widgets. Isn't that a dependency?
2007-05-11 04:15

KaiRo

Webmaster

quote
OJames:
No, SeaMonkey works fine using the toolkit widgets. Improvements that have been done on the xpfe side might be good to be ported over so that they aren't lost - porting in the other direction doesn't make sense any more, we'll just let xpfe die without toolkit's improvements ;-)
2007-05-11 12:12

Add comment