<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 thirteenth edition of the XUL/XBL Replacement 
Newsletter. Since the last edition, we’ve gotten close to shipping the 
main browser window as an HTML document, made some platform improvements
 related to ongoing frontend work, and continued to remove XBL bindings.</p>

<h2 id="progress-towards-browserxhtml" class=""><span style="font-size: 12px;" class="">Progress towards browser.xhtml</span></h2><p class="">We’ve gotten close to shipping the main browser window as XHTML instead of XUL. In addition to the broader <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1453783" class="">top-level HTML</a> support which is now complete, we filed a new <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1533881" class="">metabug specifically for shipping browser.xhtml</a>.</p><p class="">The biggest piece of work here was Brendan Dahl <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1527977" class="">adding prototype cache support to XHTML documents</a>. With this change we are seeing equivalent performance between browser.xul and browser.xhtml.</p><p class="">As part of that project, he also <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1080029" class="">added <code class="highlighter-rouge"><span class="nt"><html:template></span></code> support</a>
 to documents loaded with the prototype cache. This is a nice change to 
bring our chrome UI more in line with the Web platform and gives us a 
more standard way to lazify DOM creation (there’s a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1544027" class="">metabug</a> to do so).</p><p class="">The final steps before enabling browser.xhtml are fixing some assertions (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1542461" class="">1</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1543537" class="">2</a>) that surfaced due to nsHTMLDocument being a DOM proxy and XULDocument not being a proxy. Once those are resolved we plan to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1534407" class="">flip the switch</a> to enable browser.xhtml by default.</p>

<h2 id="platform-improvements" class=""><span style="font-size: 12px;" class="">Platform improvements</span></h2><p class="">I wanted to mention some platform improvements and code removal 
related to these projects, and acknowledge the people who’ve worked on 
them. These are mostly changes that were unblocked by removing 
in-content XBL and XBL stylesheets, and fixes for bugs we’ve discovered 
from dogfooding Web Components in the browser chrome.</p>

<ul class="">
  <li class="">Boris Zbarsky removed <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1515582" class="">the content XBL scope in XPCWrappedNativeScope</a> and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1527116" class="">nsXBLBinding::mUsingContentXBLScope</a>. There’s more related work to do filed in the “Blocks” field on <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1443836" class="">XBL in-content metabug</a>.</li>
  <li class="">Emilio Cobos Álvarez removed <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1470880" class="">style support for XBL <code class="highlighter-rouge"><resources></code></a> after <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1470880#c5" class="">debugging the last piece of UI that relied on some quirky XBL-specific style behavior</a>.</li>
  <li class="">In the process of working on the <code class="highlighter-rouge"><menuitem></code> Custom Element conversion, we discovered a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1500626#c30" class="">bug where Custom Elements wouldn’t get attached</a>, and Emilio landed a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1546467" class="">fix for it</a>.</li>
  <li class="">In the process of working on the <code class="highlighter-rouge"><wizard></code> Custom Element conversion, we discovered a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1495621#c32" class="">bug where focus navigation was broken in Shadow DOM</a>, and Emilio landed a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1544826" class="">fix for it</a>.</li>
  <li class="">Emilio <a href="https://groups.google.com/d/msg/mozilla.dev.platform/TR1_24OldK8/FQ3X3zPXFwAJ" class="">unshipped the <code class="highlighter-rouge">-moz-binding</code> CSS property</a> from content.</li>
  <li class="">Mats Palmgren <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1540560" class="">removed an unnecessary <code class="highlighter-rouge">print</code> CSS rule in the HTML UA sheet</a> that was related to the old XBL <code class="highlighter-rouge"><marquee></code>.</li>
  <li class="">I landed a change to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1523997" class="">stop getting the computed style in <code class="highlighter-rouge">Element::WrapObject</code></a> in the content process, since it was only needed to check if a XBL binding had to be atttached.</li>
</ul>

<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="">44 bindings left</a>, compared to 55 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=1495357" class="">converted the <code class="highlighter-rouge">wizard-buttons</code> binding to a Custom Element</a>.</li>
  <li class="">Alex <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1494846" class="">removed the <code class="highlighter-rouge">wizard-header</code> binding</a> by creating the relevant DOM directly within <code class="highlighter-rouge"><wizard></code>.</li>
  <li class="">Andrew Swan <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1546541" class="">removed <code class="highlighter-rouge">toolbarbutton-badged-menu</code> and <code class="highlighter-rouge">toolbarbutton-badged-menu</code></a>, which were unnecessary ever since <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1512993" class=""><code class="highlighter-rouge">[display="xul:menu"]</code> was removed</a>.</li>
  <li class="">I <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1519502" class="">converted the <code class="highlighter-rouge"><menu></code> element to a Custom Element</a>, which removed the <code class="highlighter-rouge">menu-base</code>, <code class="highlighter-rouge">menu</code>, <code class="highlighter-rouge">menu-menubar</code>, <code class="highlighter-rouge">menu-menubar-iconic</code>, and <code class="highlighter-rouge">menu-iconic</code> bindings.</li>
  <li class="">I <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1495861" class="">converted the <code class="highlighter-rouge">radio</code> binding to a Custom Element</a>.</li>
  <li class="">I <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1539665" class="">removed the <code class="highlighter-rouge">tabbrowser-arrowscrollbox</code> binding</a> by attaching the relevant events inside of the parent <code class="highlighter-rouge">tabbrowser-tabs</code> element. This change also allowed us to stop loading the tab-overflow-indicator.png image at startup.</li>
</ul></div></body></html>