FADE IN DINGY OFFICE INTERIOR
Camera zooms out to reveal BROWSER ARCHITECTURE ENGINEER, typing furiously. It’s S02E01 of Browser Architecture Newsletters! Desktop Technology Stack The Browser Architecture group is working hard to tackle some large problems with the technology stack used to build Desktop Firefox. XBL Replacement The latest updates can be found in our spin-off, XBL Replacement Newsletter S01E04 <https://groups.google.com/d/msg/firefox-dev/Cg_O0VSRf18/tEV1XYdfDgAJ>. In addition to that: - You may have seen lots of activity lately on the de-xbl metabug <https://bugzilla.mozilla.org/show_bug.cgi?id=1397874>. That’s because :enn, :paolo, and :timdream have been given starring roles on the project! - Now that tabbrowser is no longer implemented with XBL, :dao has driven forward a bunch of long-needed cleanups to gBrowser. He simplified <https://bugzilla.mozilla.org/show_bug.cgi?id=1443849> the initialization process and extracted the async tab switcher <https://bugzilla.mozilla.org/show_bug.cgi?id=1436361> and tab progress listener <https://bugzilla.mozilla.org/show_bug.cgi?id=1441816> into separate modules. This work caused a tabpaint improvement <https://bugzilla.mozilla.org/show_bug.cgi?id=1442651#c28> on talos and fixed at least one race condition <https://bugzilla.mozilla.org/show_bug.cgi?id=1401846> caused by XBL constructors. Overlays XUL overlays have been written out of this season! You might remember overlays from such timeless frustrations as trying to understand how Firefox menus and hotkeys are combined, which is partially described by the following diagram: :bdahl has completely removed overlays, and you can binge-watch the carnage in the tracking spreadsheet <https://docs.google.com/spreadsheets/d/1Y5ISRmNe4buHu-xt6IUOj2Kvj-JlFlEBr20olzuhuRo/edit#gid=0> ! XUL removal The Browser Architecture team is beginning to focus on the larger goal after XBL replacement -- XUL removal. This is a large (!) and hairy (!!) area, so :bgrins wrote the first draft of a screenplay <https://groups.google.com/d/msg/firefox-dev/mUlCUvgL6Do/By8zt3HKBQAJ> discussing how we might tackle the beast. There’s a metabug on file to remove in-content XUL <https://bugzilla.mozilla.org/show_bug.cgi?id=1446829>, which is likely to be one of the first parts to hit the cutting room floor. Fluent Fluent is working hard to win the hearts of the audience. It’s currently only starring in small film festivals like Firefox Preferences <https://bugzilla.mozilla.org/show_bug.cgi?id=1415730>, but it seems to work well with the XBL removal, and has led to some nice cleanups in the JS code all around the component. Using some pretty rough estimations we started the cycle with close to 700 DTD entries, landed removal of 300 of them, and have removal of another 200 under review right now. At this pace people have started murmuring about Preferences becoming DTD free by the time Firefox 61 hits beta! Sync.next Prototyping of new sync approaches based on top of a new storage system continues. There are some great 15-30 minute show <https://vreplay.mozilla.com/replay/showRecordingExternal.html?key=4CktwmuLBFQKVq3> and tell <https://vreplay.mozilla.com/replay/showRecordingExternal.html?key=FQqpK6wMIOcdahk> video <https://vreplay.mozilla.com/replay/showRecordingExternal.html?key=8eJmwbzRqJewnH1> recordings <https://vreplay.mozilla.com/replay/showRecordingExternal.html?key=Cbwy9tKztuCfwvX> (sadly, Flash is required to watch). Q2 OKR planning for the Sync team is eagerly scoping out a better future and how to get there. Look for the companion newsletter (a mini-series?) in the near future. rkv We recently reviewed a proposal to migrate storage currently (ab)using ad hoc flat files, JSON files, preferences etc. to a lightweight Rust key-value store built on top of LMDB, netting us a faster, more durable, multi-process and cross-platform storage capability. The review was largely a success (link to follow); the next steps are to move forward with thorough documentation and guidance for consumers, evaluate outstanding open questions (particularly around verifying platform support), and then to begin work on shipping vehicles within Firefox. We're initially looking at XULStore and the search cache as suitable candidates. You can track this work in the repo <https://github.com/mozilla-prototypes/rkv/projects> and the initial WIP landing bug <https://bugzilla.mozilla.org/show_bug.cgi?id=1445451>. How We Work Browser Architecture is also investigating less technical ways to increase Firefox’s engineering velocity. Modernization to reflect Firefox technical leadership in the module ownership system As described in a governance mailing list post <https://groups.google.com/d/msg/mozilla.governance/YTTqUzWaJ00/-MopTK71AwAJ>, “We propose to restructure the Firefox-related modules under control of a new “Technical Leadership Module Committee” (TLMC).” Our own Dave Townsend is one of the six proposed committee members. The TLMC will be working on improving engineering practices that apply across all modules that feed into Firefox. Is it time for Node? We’re tackling how to better support the many parts of Firefox that use Node.js. We’re starting to see Node gain more acceptance: thanks to Mark Banner and others we’re installing Node as part of mach bootstrap <https://bugzilla.mozilla.org/show_bug.cgi?id=1424921>, we’re running v8.9.4 in the lint automation tasks <https://bugzilla.mozilla.org/show_bug.cgi?id=1443547>, and we’ll be upgrading to v8.9.4 for Windows developers <https://bugzilla.mozilla.org/show_bug.cgi?id=1443545> in Q2. To further the effort, Nick Alexander and Gregory Szorc have proposed to require Node in the build system on dev-platform <https://groups.google.com/d/msg/mozilla.dev.platform/7sPFmewLoUg/bO7oon4sAAAJ>. That post talks about Firefox 61, but we’re still working through technical details and don’t expect to require Node before Firefox 62 at the earliest. Come work with us! Joe Walker, who manages Browser Architecture, is spearheading temporary rotations into the Browser Architecture group <https://docs.google.com/document/d/1SDFupachWhy1r4Ww6-FiZ1P25QRzRZg5KOKl5Kj5zzg>. Engineers from across the organization will join the group for a few months to work on a cross-cutting concern in their area with the support of the team and our architecture review process <https://mozilla.github.io/firefox-browser-architecture/text/0006-architecture-review-process.html>. If you’re interested in rotating in, contact Joe directly. (We always need guest stars!) You can always reach us on Slack or IRC (#browser-arch). This newsletter is also available as a Google Doc <https://docs.google.com/document/d/1V-O-5OGx42XSj-cG41X-DSFaBs1emkTJO3HNAAAMTfw/edit?usp=sharing> . Nick (cinematic editor for the Browser Architecture production studio) _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform