Highlights
- Outreachy internships and GSoC projects have been announced!
- An Intent to Ship for tab warming on Windows and Linux for Firefox 61 should be going out today
- Holding warming on Nightly for macOS until this bug is sorted.
- Our implementation of Same Site Cookies landed and was uplifted to Firefox 60.
- Our MSU students are wrapping up their semester working on the Dark Theme Darkening.
- Firefox for Fire TV will soon release v2.1, with polish, bug fixes, and better crash reporting.
- Firefox for iOS 11.1 will ship this week, with bug fixes for telemetry and properly handling opening new windows from scripts.
- Activity Stream now displays your most recent downloads in Highlights!

Friends of the Firefox team
- Resolved bugs (excluding employees):
- More than one bug fixed: https://mzl.la/2qVHpbY
- :prathiksha
- Manish Kumar [:manishkk]
- Michael Kohler [:mkohler]
- Tim Nguyen :ntim
- Vivek
- New contributors (🌟 = First Patch!)
- 🌟 Abdoulaye O. LY made it so that keyboard shortcut hints in the AppMenu are easier to see with the Dark Theme enabled
- Amy fixed some inconsistencies in the Synced Tabs icons between the sidebar and the Page Action menu
- 🌟 gilad.bau swapped all usage of
BrowserUtils.makeURItoServices.io.newURIinFeeds.jsm - Issei Horie added a note to
browser/app/permissionsto make it clearer to our Data Stewardship when Data Collection Review is needed - 🌟 Jordan Hu added a test for Telemetry Histogram whitelists
- 🌟 jason made it so that the
MEMORY_DISTRIBUTION_AMONG_CONTENTprobe is only collected in the parent process - 🌟 Maxim Kupfer made it so that the “Delete” key works again when deleting entries from the Saved Addresses list in
about:preferences - 🌟 Michael Calabrese rewrote part of the
TelemetryScalarsbackend to usensPrintfCStringto avoid some awkward string construction - 🌟 Jens Hausdorf made sure that the “What’s New” links from
about:preferencesopens in a new tab - 🌟 Sean Reeise updated a bunch of our Places tests to use some new async functions
- 🌟 Sören Hentzschel made it so WebExtensions can access
browser.display.use_document_fonts
- More than one bug fixed: https://mzl.la/2qVHpbY
Project Updates
Add-ons / Web Extensions
- Andrew updated the docs, most importantly adding details on WebExtension experiments.
- Rob Wu (Rob), Luca, and Kris fixed some tests.
- (Quantum Lights was un-briefly-broken via backout on Mac.)
- jkt fixed
contextualIdentities.update()so it now validates likecreatedoes. - OOP WebExtension background scripts is on by default for Mac (thank you, Kris Maglione!)
- Kris continued to remove old legacy stuff (old API experiment support)
- Kris also fixed permissions in
about:addonsoptions browsers - Markus Stange fixed initial size setting on some remote web extension panels on macOS
- Rob corrected Port.onDisconnect being fired with
tabs.onAttachedevent - Luca fixed tab crash and “
chrome win is null“ onchrome.windows.create - Shane created a
browserSettingsAPI to open awesomebar results in a new tab - Shane also fixed an issue with an erroneous OAuth redirect determination in
identity.launchWebAuthFlow - Zombie (Tomislav) allowed Performance Timing to access cross-origin resources when the caller is a web extension that has permission
- Mark made it so that as of 61, users are notified when an extension changes their home page. This will probably need a tweak for distributions, like New Tab.
- Theming API changes:
- WebExtension arrow panel border line (jaws)
- Fixed a
tab_selectedbug whenheaderURLis not set (uplifted to 60) (ntim) - Removed sanitation of fully transparent values (also ntim)
- Apply toolbar properties to findbar as well (bogdan)
- The march to removing support for bootstrapped extensions, aimed for 64, continues…
Activity Stream
- In Preferences > Home you can now choose which sources should display Highlights cards.

- The New Tab page now shows search engine icons (for defaults) in the search box.

Browser Architecture
- Tracking work to allow top-level HTML windows.
- Filed a spec bug for slight divergences in custom elements implementations.
- RKV proceeds with XULStore as a first testcase.
- Mentat now has an SDK for Android as well as iOS.
Lint
- Be aware: Intent to require Node 8.9.1 / npm 5.5.1 to run ESLint
Mobile
- Work for Firefox for iOS 12.0 is steadily moving forward, making progress on unifying our share extensions, and exposing Sync more prominently in the Application menu.
Fluent
- Migrated all Preferences DTD strings to Fluent
- Next: Continue with the long tail of
.propertiesandimported-dtd - Next (62):
- Next (63): Live language installation and switching
Performance
- Content Process Optimizations
- felipe has begun researching ways we can optimize content process start-up, and reduce the amount of script that needs to run
- Blocklist work
- Gijs has made it so that we load the blocklist asynchronously in the vast majority of cases. Telemetry reports that > 99% of the blocklist loads reported are occurring asynchronously!
- This is great for start-up, and responsiveness in general.
- There’s a few bits of work to make blocklist fully asynchronous. One just landed on autoland. \o/
- One tiny bit left after that (but Gijs hopes to have a patch for that today). Once that’s done, we aim to switch to using IndexedDB rather than loading the entire 150k XML file, which, even asynchronously, isn’t great for perf. Async-ification has to come first because IndexedDB fetch operations are always async.
- Gijs has made it so that we load the blocklist asynchronously in the vast majority of cases. Telemetry reports that > 99% of the blocklist loads reported are occurring asynchronously!
- Blank first paint
- florian fixed a black flash that occurred for some users when showing the blank first paint window
- florian also fixed an issue where the blank window was actually slowing down start-up on Windows
ContentPrefServiceoff main thread- dthayer figured out the shutdown leak that was preventing the
ContentPrefServicetoSqlite.jsmpatch from landing! ASpellChecker(of all things) patch is now awaiting review so that this whole thing can land. - Moving to
Sqlite.jsmmeans thatContentPrefServiceinitialization comes off of the main thread.
- dthayer figured out the shutdown leak that was preventing the
- LRU cache for tab layers
- dthayer is now investigating an LRU cache to make most tab switches (not just warmed tabs) feel instantaneous.
- Lower-FPS throbber experiment
- mconley is preparing a study to test the effects of lowered framerates for tab throbbers on page load time.
- Ilana Segall is helping with definition and analysis, and waiting on a pre-requisite patch from hiro to land in central and get some testing.
- A layout flush from
MousePosTrackerthat occurred most times the StatusPanel appeared (!) has been removed.- Fun times – this opened a tp5 responsiveness regression that is currently being investigated
Policy Engine
- Starting to evaluate new policies for next release
- Starting to see Enterprise-folks poking at the engine and testing it out
Privacy/Security
- We pref-ed off the
storageoption forindexedDB.openfor web content. It continues to work for WebExtensions for now, but we’re planning to get rid of that in 62 as well. - Baku & Johann finished up a big patch that fixes the way we’re clearing ServiceWorkers when users delete their history or site data.
- We removed all usage of
unsafeSetInnerHTML, the only remaining user is the (to be removed) GCLI. - Firefox Beta (and Edge and Chrome) had an on-stage demo of Web Authentication last Friday at RSA 2018. (WebAuthn ships in 60)
- TLS 1.3 updated to Draft 28 in Firefox 61.
- Also, TLS 1.3 is being rolled out gradually to all Firefox Release users (Bug 1442042).
Search and Navigation
Address Bar & Search
- The placeholder in the address bar now will display the search engine name.
about:newtabwill now display the icon of the engine you’re searching with.
Places
- Landed some changes to fix up broken built-in root folders (missing roots, bad parents)
- Improved performance of download transitions query by not refreshing it for every update of history.
- Removed the
nsINavBookmarks::GetDescendantFoldersAPI - Sean helped us rewrite some tests to use a better test-only API for adding history visits.
Sync / Firefox Accounts
- Dave Hunt is working on adding TPS to Mach and TaskCluster, with the goal of running Sync integration tests as Tier-2 on infra. 📝
Test Pilot
- Lots of focus on mobile in this quarter: Notes app is pre alpha, working with relman on a release pipeline
- New experiment launch dates are June 1 for Color and Side View
Web Payments
- The team has completed 58% of the Milestones 1 – 3 Backlog.
- The majority of the Payment Request code now uses ES modules!
- Marcos attended W3C Web Payments meetings last week
This week I learned
Below the fold
- [mconley] Did you know that we have test coverage data for mozilla-central? Here, for example.
- /
browseris at 69.30% /toolkitis at 68.51%
- /
- [mossop] JS implemented WebIDL is being deprecated
Wellington Torrejais da Silva
wrote on