Browser Architecture Newsletter #7 (S02E02)

Nicholas Alexander nalexander at
Wed Sep 19 17:34:48 UTC 2018

Browser Architecture Newsletter #7 (S02E02)

It’s been a long six months since the last Browser Architecture newsletter
Short and sweet and no theme for this newsletter.

XUL/XBL Replacement

The XUL/XBL replacement project is churning ahead.  There are two major
goals right now:


   Replacing XBL bindings with Web technologies like Custom Elements; and

   Making the main browser window be an HTML document with (mostly) HTML
   DOM elements instead of a XUL document with (mostly) XUL DOM elements.

There’s been progress on both fronts; more details can be found in the
latest XUL/XBL Replacement newsletter


Fluent is the localization system that Firefox intends as the replacement
for XML and DTD files.  The first Firefox feature to convert to Fluent is
about:preferences <>,
which now has only 10 old-style strings remaining (down from an initial
1100 old-style strings)!  Behind the scenes, a big hurdle in the path to
smooth future conversions landed recently: Bug 1455649
<> integrated
localization deeply into the (chrome-only) DOM.

Sync and storage

rkv <> is a new lightweight Rust key-value
storage engine built on top of LMDB.  We’re looking at using it for a
variety of components, including XULStore and the search cache.  In order
to let others “kick the tires” easily, Myk Melez landed rkv into
mozilla-central <>,
although it’s not yet compiled into Firefox for Desktop.  If you’ve got
some keys and some values that you’d like to persist efficiently, I know a

Mentat <> was to be our heavyweight store
for user data that we wanted to sync between devices.  But we couldn’t
bring the technology to a meaningful market quickly enough, so we’re not
pursuing Mentat any further
The Application Services team is rapidly building a cross-platform Sync 1.5
stack in Rust <> and that
will be the vehicle for improving the Firefox Sync experience for the
foreseeable future.

Node time!

We have made significant progress toward enabling Node.js tooling in the
Firefox build system.  This effort truly spans teams and projects: the
build maintainers and the browser architecture team made a case for Node.js
and set technical direction; the GitHub Integration working group incubated
the effort; and Firefox feature teams including the Activity Stream team
(Dan Mosedale), the ESLint team (Mark Banner), and the Devtools team (Jason
Laster and Alexandre Poirot) are driving the work across the line!

The build now requires Node.js by default
<>.  Up next is adding
the ability to use this from files and then drafting proposals
for how we’d like to manage node_modules.  The first consumers will be the
Firefox debugger, Activity Stream, and the ESLint integration. Thanks to
the many folks who have helped and continue to help this project forward.

Firefox technical leadership in the module ownership system

Since the last newsletter the new Firefox Technical Leadership Module has
been formed. You can see some of the discussion around it and its purpose
in the governance thread
The FTLM has representation from the Browser Architecture team in the form
of Dave Townsend.

You can always reach us on Slack or IRC (#browser-arch). This newsletter is
also available as a Google Doc

Nick (who promises a theme next time)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the firefox-dev mailing list