<div dir="ltr"><div>(via <a href="https://dolske.wordpress.com/2017/05/23/photon-engineering-newsletter-2/">https://dolske.wordpress.com/2017/05/23/photon-engineering-newsletter-2/</a>)</div><p>That’s right! Time for another Photon Engineering Newsletter! (As I 
gradually catch up with real-time, this update covers through about May 
16th).</p>
<p>May got off to a busy start for the Photon team. As I mentioned in 
last week’s update, the team has largely shifted from the planning to 
implementation, so visible changes are starting to come quickly.</p>
<h2>Work Week</h2>
<p>A particularly big event was the Photon team gathering in Mozilla’s 
Toronto office for a work week. About 50 people from Engineering, UX, 
User Research, and Program Management gathered, from all over the world,
 with a focus on building Photon. Mozilla operates really well with 
distributed/remote teams, but periodically getting together to do things
 face-to-face is super useful to work through issues more quickly.</p>
<p><img class="gmail-alignnone gmail-wp-image-1529" src="https://dolske.files.wordpress.com/2017/05/photonww_shorlander_small.jpg?w=640&h=400" alt="photonww_shorlander_small" width="640" height="400"></p>
<p>It was really terrific to see so many people coming together to hack 
on Photon. We got a lot done (more on that below), saw some great demos,
 and the energy was high. And of course, no workweek is <a href="https://twitter.com/dolske/status/861592373150830592">complete</a> without UX creating some fun posters:</p>
<p><img class="gmail-alignnone gmail-wp-image-1506" src="https://dolske.files.wordpress.com/2017/05/57small.jpg?w=300&h=375" alt="57small" width="300" height="375"></p>
<p>One important milestone reached during the week was setting the 
initial scope for what’s going to be included in Photon (or, more 
bluntly, what’s NOT going to be part of Photon when it ships in Firefox 
57). We’re still refining estimates, but it looks like all the major 
worked planned for Photon can be accomplished. Most things placed in the
 “reserve backlog” (meaning we’ll do it if there’s extra time left, but 
we’re not committing to do them) are minor or nice-to-have things.</p>
<p>This is probably a good spot to talk a little more about <a href="https://wiki.mozilla.org/RapidRelease/Calendar">our schedule</a>.
 Firefox 57 is the release that Quantum and Photon are targeting. It’s 
scheduled to ship on November 14th, but there are important milestones 
before then… September 22nd is when 57 enters Beta, after that point 
it’s increasingly hard to make changes (because we don’t want to 
destabilize Firefox right before it ships). August 7th is when Nightly 
becomes version 57. This is also our target date to be complete with 
“major work” for Photon. This might seem a little surprising, but it’s 
due to the <a href="https://hacks.mozilla.org/2017/04/simplifying-firefox-release-channels/">recent process change</a>
 that removed Aurora. Under the old release schedule, August 7th is when
 Nightly-57 uplifted to Aurora (beginning ~12 weeks of stabilization 
before release). We want to keep the same amount of stabilization time 
(for a project as big as Photon there is _always_ fallout and followup 
work), so we kept the same calendar date for Photon’s target. This 
doesn’t mean we’ll be “done” on August 7th, just that the focus will be 
shifting from implementing features to fixing bugs, improving quality, 
and final polish.</p>
<p>And now for the part you’ve all been waiting for, the recent changes!</p>
<h2>Recent Changes</h2>
<p>Menus/structure:</p>
<ul><li>The page action menu (aka the “…” button at the end of the URL bar) got the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1355323">first menu items added to it</a>, Copy URL and Email Link. More coming, as this becomes the standard place for “actions you can perform with this page” items.<br>
<img class="gmail-alignnone gmail-size-full gmail-wp-image-1561" src="https://dolske.files.wordpress.com/2017/05/actionmenu_first.png?w=474" alt="actionmenu_first"></li><li>The new hamburger menu is coming along, although still disabled by 
default (via the browser.photon.structure.enabled pref). Items for 
character encoding, work offline, and the devtools submenu have been 
added to it.</li><li>The new overflow menu (also disabled by default, same pref) is 
nearing completion with 2/3 of the bugs fixed. This menu is now shown in
 customize mode (instead of the old hamburger menu); so instead of only 
showing icons that couldn’t fit in the navbar (e.g. because you made 
your window too narrow), it’s the new place you can customize with 
buttons you want to be easily accessible without always taking up navbar
 space.</li></ul>
<p>Animation:</p>
<ul><li>When rearranging tabs in the tabstrip, a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1355507">snappier animation rate</a> is now used.</li><li>Work continues on animations for downloads toolbar button, 
stop/reload button, and page loading indicator – but these haven’t 
landed yet.</li></ul>
<p>Preferences:</p>
<ul><li>The “Updates” section of preferences <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1356507">now shows</a> the current Firefox version.</li><li>Good progress at the workweek on fixing the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1357285">first set of bugs</a> needed to enable searching within preferences.</li><li>UX is working on some further changes to the reorganization that we believe will improve it.</li></ul>
<p>Visual redesign:</p>
<ul><li>The new styling for the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1352366">location and search bars</a> landed.</li><li>The <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1364090">stop/reload button</a> has been removed from the end (inside) of the location bar, and is now a normal toolbar button to the left of the location bar.</li><li>The <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1363840">back/forward buttons</a> have been detached from the location bar.</li><li>URL that are longer than the location box can display <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=653670">now fade out</a> at the end.</li><li>Minor <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1361986">update</a> to the about:privatebrowsing page (shown when opening a new private window).</li><li>Upcoming work on compact/touch modes for the toolbar and more toolbar button style changes.</li></ul>
<p>Onboarding:</p>
<ul><li>Running Funnelcake tests for the new tour notification.</li><li>Built a prototype of the new tab page tour overlay at the workweek.</li><li>Will be adding new automigration UI to the Activity Stream new tab 
page. Users trying Firefox for the first time will no longer immediately
 see the old data migration wizard (which makes for a pretty poor first 
impression). Instead, Firefox will automatically import from your 
previous browser, so you launch straight into Firefox and can see your 
data. There’s also a clear message indicating what happened, and giving 
you the choice to keep (or not) the data, or try importing from a 
different browser. This screencast shows the general flow:<br>
<img class="gmail-alignnone gmail-wp-image-1617" src="https://dolske.files.wordpress.com/2017/05/automig.gif?w=908&h=506" alt="automig" width="641" height="357"></li></ul>
<p>Performance:</p>
<ul><li>Florian landed <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1353542">a massive series of patches</a>
 (assisted by an automated code-rewriting tool) that switches use of 
Task.jsm/yield to ES7 async/await. The native ES7 code is more 
efficient, and we’ve often seen the older Task.jsm usage show in the 
profiler. This also helps with modernizing Firefox’s front end, which 
extensively uses JavaScript.</li><li>The animation shown when opening a window is now <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1362103">suppressed</a> for the first window to be opened.</li><li>Tab <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1359352">navigation</a> and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1364127">restoring</a> now cause less visual noise in the tab title, by skipping the display of unnecessary text (e.g. “Loading” and “New Tab”).</li><li>A <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1356826">few</a> <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1364571">things</a> <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1361900">have</a> been moved off the startup path, so that Firefox launches faster.</li><li>Removed some synchronous reflows when <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1364661">adding and removing tabs</a> and when <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1356763">interacting with the AwesomeBar</a>.</li><li>Working on adding tests to detect synchronous reflows, so that we can ensure they don’t sneak back in after we remove them.</li></ul>
<p> </p>
<p>This concludes update #2.</p></div>