<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>