Living in a Go Faster, post-XUL world

David Rajchenbach-Teller dteller at
Mon Jul 13 13:13:28 UTC 2015

So, we have reached a stage at which we basically agree that we should
get rid of XUL. We also want to support Go Faster-style piecewise
updates of Firefox. We want Firefox to start fast. We want the UI to
remain responsive. We want to keep supporting add-ons. Oh, and we want
contributors, too. And we don't want to lose internationalization.
Mmmh... and perhaps we don't want to restart Firefox from bare Gecko.

All of the above are worthy objectives, but getting them all will
require some careful thought.

So I'd like to put together a list of all our requirements, against
which we could evaluate potential solutions, re-architectures, etc. for
the front-end:

** High-level
* Get rid of the deprecated (XUL) bits of Gecko in a finite time.
* Don't break Firefox [1].

** User-oriented goals.
* Firefox should start fast.
* The UI should not suffer from jank.
* The UI should not cause jank.
* Look and feel like a native app, even with add-ons.
* Keep supporting internationalization.
* Keep supporting lightweight themes.

** Contributor/dev-oriented goals.
* Use technologies that the world understands.
* Use technologies that are useful to add-on authors.
* Support piece-wise, restart-less front-end updates.
* Provide an add-ons API that won't break.
* Code the front-end with the add-ons API.

[1] I have heard this claim contested. Some apparently suggest that we
should actually break Firefox and base all our XUL-less, Go Faster
initiatives on a clean slate from e.g. Browser.html or Servo. If you
wish to defend this, please step forward :)

Does this sound like a correct list for all of you?


David Rajchenbach-Teller, PhD
 Performance Team, Mozilla

More information about the firefox-dev mailing list