<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="entry"><p class="">This is the second edition of the XBL Replacement Newsletter. 
Since the last update, we’ve continued to remove unused or unnecessary 
bindings and improved tooling to make it easier to keep track of the 
work and to help find candidates for removal.</p><p class="">Just a reminder that easiest way to follow along with the work is to follow the main <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1397874" class="">meta bug</a>. If you’d like to help by removing a binding, I’ve added a whiteboard tag <a href="https://mzl.la/2AyTxCG" class="">[xbl-available]</a>
 to mark bugs that are unblocked and have instructions in them. The list
 is a bit short for now but I expect that more bindings will fit that 
description over time, especially once Custom Element support is ready.</p><div class=""><b class="">Binding Removals</b></div><p class="">There are <a href="https://bgrins.github.io/xbl-analysis/#timeline" class="">267 more bindings left</a>, compared to 289 from the last update and 300 from the start of the project.</p>

<ul class="">
  <li class="">Mossop <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1414406" class="">removed the inline options feature</a> that was only used by legacy add-ons, and as a result the mobile/ directory is <a href="https://bgrins.github.io/xbl-analysis/graph/#directory-bindings" class="">the first top level directory to go down to zero bindings</a>! Here’s the list of bindings removed by this change: <small class=""><code class="highlighter-rouge">setting-base</code>, <code class="highlighter-rouge">setting-bool</code>, <code class="highlighter-rouge">setting-boolint</code>, <code class="highlighter-rouge">setting-localized-bool</code>, <code class="highlighter-rouge">setting-integer</code>, <code class="highlighter-rouge">setting-control</code>, <code class="highlighter-rouge">setting-string</code>, <code class="highlighter-rouge">setting-color</code>, <code class="highlighter-rouge">setting-path</code>, <code class="highlighter-rouge">setting-multi</code>, <code class="highlighter-rouge">setting-fulltoggle-bool</code>, <code class="highlighter-rouge">setting-fulltoggle-boolint</code>, <code class="highlighter-rouge">setting-fulltoggle-localized-bool</code>, <code class="highlighter-rouge">android-checkbox-with-spacing</code></small>.</li>
  <li class="">New contributor 86ecce74 removed the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1414020" class="">searchbar-treebody</a> binding by migrating the behavior into an attribute on the <code class="highlighter-rouge">autocomplete-treebody</code> binding.</li>
  <li class="">86ecce74 also <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1416483" class="">removed the control-item</a> binding by moving the one property it defined onto its three child bindings.</li>
  <li class="">Paolo has merged together the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1414244" class="">panelmultiview and photonpanelmultiview bindings</a>. This required doing some post-photon cleanup first, like updating the site identity panel to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1409301" class="">use the new photon style</a>.</li>
  <li class="">Paolo also removed the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1419005" class="">download-toolbarbutton</a> binding by allowing child content inside the toolbarbutton-badged binding that it was extending.</li>
  <li class="">I removed the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1418494" class="">menucaption-inmenulist</a> binding by moving its implementation into the <code class="highlighter-rouge">menucaption</code> binding. It turns out that the only place we use menucaptions are for <code class="highlighter-rouge"><optgroup></code>s, and they always were being bound to the inmenulist variation of the binding.</li>
  <li class="">I also removed <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1416368" class="">three unused statusbarpanel related bindings</a>. Some followup work to that is going to be removing the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1416372" class="">statusbar and statusbarpanel bindings</a>.</li>
  <li class="">I also removed the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1416493" class="">menuseparator</a> binding by moving the accessibility role detection into C++ and loading the CSS via global.css instead of through <code class="highlighter-rouge"><resources></code>. This <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1420229" class="">surfaced an issue</a>
 in which we are relying on what appears to be non-standard behavior of stylesheets loaded 
by XBL, in which the application order of selectors is different. 
There’s still some discussion to be had about how to handle this 
situation, but moving to the standard behavior and improving tooling to 
detect potential issues before landing seems pretty reasonable.</li></ul><div class=""><b class="">Improved Tooling</b></div><p class="">Here are some noteworthy improvements to the tools and website since the last update:</p>

<ul class="">
  <li class="">The bug number and the “type” of each removal get printed on the <a href="https://bgrins.github.io/xbl-analysis/#timeline" class="">timeline</a>. To make that easier, I’ve started a <a href="https://docs.google.com/spreadsheets/d/1XZGCKYjcBw5D_v71ydNIrSKkC48mAqpwcKeZK9ahUkk/edit#gid=0" class="">spreadsheet</a> to track which bindings are being removed in which bugs, and which type of removal they are.</li>
  <li class="">There are new graphs looking at the <a href="https://bgrins.github.io/xbl-analysis/graph/#directory-bindings" class=""># of bindings per directory</a> and <a href="https://bgrins.github.io/xbl-analysis/graph/#directory-loc" class="">LOC per directory</a></li>
  <li class="">The <a href="https://bgrins.github.io/xbl-analysis/tree/" class="">tree</a> includes links to search m-c for each binding which makes it easier to find out where a binding is used</li>
  <li class="">Binding usage data is now <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1376546" class="">being gathered</a>
 in Nightly builds in taskcluster as the “browser-instrumentation” job. 
Thanks to Joel Maher and his team for making it easy to gather this data
 with activedata and taskcluster artifacts.</li>
</ul></div></body></html>