<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="entry"><p class="">This is the sixteenth edition of the XUL/XBL Replacement
Newsletter. Since the last edition, we’ve removed the XULDocument
implementation and have been helped with XBL removal by two big projects
completed by other teams. We’re getting close to finishing the <a href="https://bgrins.github.io/xbl-analysis/graph/#burndown" class="">burndown of XBL bindings</a> and are doing some prep work to allow building Firefox without the XBL implementation once that happens.</p>
<h2 id="xuldocument-is-gone" class=""><span style="font-size: 12px;" class="">XULDocument is gone</span></h2><p class="">Over the course of the last year we’ve been working through <a href="https://groups.google.com/d/msg/mozilla.dev.platform/LXsSeAnJpbc/Z4x8i605AgAJ" class="">a plan to remove XUL documents from mozilla-central</a>.
We first reviewed all the functionality in XULDocument, then removed
obsolete features and migrated ones we wanted to keep into the base
Document or into standalone pieces. By the end of July, XULDocument was
mostly a skeleton and Brendan Dahl landed a patch that caused all .xul
files to be loaded exactly as if they were .xhtml files. After a few
weeks with no issues, he removed the XULDocument implementation
entirely.</p><p class="">While XULDocument is now gone, there’s still plenty of work to be done to old XUL files:</p>
<ul class="">
<li class="">The file extension is still .xul so those files will need to be
converted to .xhtml. Since they are already loaded as such, this should
involve only renaming files.</li>
<li class="">Most still contain a “XUL like” DOM structure (<code class="highlighter-rouge"><window></code>), whereas we’d rather them be more like regular HTML documents (<code class="highlighter-rouge"><html><head><body></code>).
By making our consumers more standardized with the web, they’ll be
easier to understand for the uninitiated, allow tooling to work more
easily, and let us remove more special case code we have for XUL
document elements.</li>
</ul>
<h2 id="old-aboutaddons-removal" class=""><span style="font-size: 12px;" class="">Old <a href="about:addons" class="">about:addons</a> removal</span></h2><p class="">The old <a href="about:addons" class="">about:addons</a> page had the largest block of remaining XBL with
10+ unique bindings. The addons team also wanted to add some new
features to <a href="about:addons" class="">about:addons</a>, like abuse reporting and inline
recommendations. We met last year to coordinate plans for the page and
it became clear that the best way to accomplish both of these goals
would be to rewrite the old UI with an updated HTML version.</p><p class="">We knew we’d like it to be done mid-year in order to line up with
progress on XBL removal, and I’m happy to report that the addons team
has now <a href="https://mail.mozilla.org/pipermail/dev-addons/2019-June/004137.html" class="">shipped the new version</a>
in Firefox 68, which allowed us to remove the bindings. Thanks to
everyone who helped to get the new page shipped on time, especially Mark
Striemer, Luca Greco, Rob Wu, and David Durst.</p>
<h2 id="old-url-bar-removal" class=""><span style="font-size: 12px;" class="">Old URL bar removal</span></h2><p class="">Another project that allowed us to remove a number bindings landed in
Firefox 68. QuantumBar is a rewrite of the AwesomeBar which makes
experimentation and maintenance easier. It’s also built with HTML/JS
instead of XUL/XBL, so after it shipped the team was able to remove
quite a few bindings (including the most complex remaining binding: <code class="highlighter-rouge">legacy-urlbar</code>).
Thanks to everyone who worked on this, especially Marco Bonardo, Dão
Gottwald, Drew Willcoxon, Harry Twyford, and Mike de Boer.</p>
<h2 id="binding-removals" class=""><span style="font-size: 12px;" class="">Binding Removals</span></h2><p class="">There are <a href="https://bgrins.github.io/xbl-analysis/#timeline" class="">7 bindings left</a>, compared to 25 from the last update and 300 from the start of the project. Here’s a list of changes:</p>
<ul class="">
<li class="">Alex Surkov <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1539651" class="">converted the <code class="highlighter-rouge">places-popup-base</code> and <code class="highlighter-rouge">places-popup-arrow</code> bindings to Custom Elements</a>.</li>
<li class="">Andrew Swan <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1563062" class="">removed much of the old about:addons codebase</a>, which included a bunch of bindings: <code class="highlighter-rouge">rating</code>, <code class="highlighter-rouge">download-progress</code>, <code class="highlighter-rouge">creator-link</code>, <code class="highlighter-rouge">install-status</code>, <code class="highlighter-rouge">addon-base</code>, <code class="highlighter-rouge">addon-generic</code>, <code class="highlighter-rouge">addon-uninstalled</code>, <code class="highlighter-rouge">addon-installing</code>, <code class="highlighter-rouge">detail-row</code>.</li>
<li class="">Dão Gottwald <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1513337" class="">removed the <code class="highlighter-rouge">urlbar</code> binding</a> by inlining the QuantumBar markup into browser.xhtml.</li>
<li class="">Dão also <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1562274" class="">removed the <code class="highlighter-rouge">urlbar-rich-result-popup</code> binding</a> which was unused after QuantumBar.</li>
<li class="">Harry Twyford <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1551232" class="">removed the <code class="highlighter-rouge">legacy-urlbar</code> binding</a> which was unused after QuantumBar.</li>
<li class="">I <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1555361" class="">removed the <code class="highlighter-rouge">basetext</code> binding</a> which became unnecessary after <code class="highlighter-rouge">richlistitem</code> was removed.</li>
<li class="">Tim Nguyen <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1554238" class="">removed the <code class="highlighter-rouge">richlistitem</code> binding</a>
by enabling all consumers to use the Custom Element which we had
previously landed for extended bindings. In the same bug he also removed
the <code class="highlighter-rouge">category</code> binding which was the last remaining extended <code class="highlighter-rouge"><richlistitem></code>.</li>
<li class="">Tim also <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1564969" class="">removed the <code class="highlighter-rouge">autocomplete-rich-result-popup</code> binding</a> which was unused after QuantumBar.</li>
</ul><div class=""><br class=""></div></div></body></html>