XPViewer is Dead
In the beginning, testing was hard. Every time you wanted to see a page, you had to restart raptor with the url on the command line, or some such nonsense. Then there was "viewer", and viewer was good. All of raptor rejoiced with browser-like functionality that made testing so much easier. It quickly became an all-purpose test bed, and all was good.
Then the xfpe team (rod and kevin) got together and said, "lo, with this great new layout engine and the related technology, we can do an xp app!" "No, you can't," spoke a chorus of nay-sayers. And yet they did, in very little time. It looked like a real browser. And it ran on 2+ platforms. It made great demos. And it used the raptor engine exactly like viewer. There was once again much rejoicing, but this time there was also a little confusion. Which browser-like thing should I use?
There is utility in having both. The logic goes like this:
1. viewer belongs to raptor/NGLayout/Gecko. It is the testing harness for the layout engine, and to that extent it can be manipulated in any way that the raptor team wants. Need a menu item to test a new feature? Slap it in! Need to test some new embedding api's? Have the best time. But the rule is, viewer belongs to development for developing. It is not "the browser." The Prime Directive of Viewer is "thou shall not break the viewer, even for an instant!" Because if you do, work stops for lots of angry developers.
2. xpviewer (or whatever it'll be called in the future) belongs to the xpfe team. To the extent that it does some of the same things as viewer, fine. But it is the the app that will grow up to become "the browser." and xpfe team needs the freedom to do the right things for the xpfe team. If they need to break the xpviewer for a while, that's their right. Raptor dev has to be insulated of xpfe dev. And by the way, because everything lives behind interfaces, xpfe is insulated from raptor changes as well.
So if you're doing layout-centric things (like the editor core, for which this note was originally written) focus on viewer. Do all you need to do in viewer. Then migrate over to xpviewer when they fire the gun that signals "we're stable, and we can guarantee you a working app from now on." The transition should be darn near invisble at that point, because from the raptor's point of view, both viewer and xpviewer are "just" embedding hosts for the layout engine.
Got a response? TalkBack!