Today’s meeting leader is: mconley
- 1 General Topics / Roundtable
- 2 Friends of the Firefox team
- 3 Project Updates
- 3.1 Accessibility
- 3.2 Add-ons / Web Extensions
- 3.3 Applications
- 3.4 Firefox Accounts
- 3.5 Sync and Storage
- 3.6 Push
- 3.7 Developer Tools
- 3.8 Fission
- 3.9 Installer & Updater
- 3.10 Lint
- 3.11 New Tab Page
- 3.12 NodeJS
- 3.13 Password Manager
- 3.14 PDFs & Printing
- 3.15 Performance
- 3.16 Performance Tools
- 3.17 Picture-in-Picture
- 3.18 Privacy/Security
- 3.19 Remote Protocol (Chrome DevTools Protocol subset)
- 3.20 Search and Navigation
- 3.21 User Journey
- 4 This week I learned
General Topics / Roundtable
Today is Firefox 76 release day! 🎉
- [rachel] Working on a way to keep Desktop ⇔ SUMO better in sync here (TL;DR - mailing list). If you have thoughts/feedback, it’s welcome there.
- [mconley] CPOW support over message managers is gone! Thanks, Gijs!
Friends of the Firefox team
Fixed more than one bug
- Andrew Swan [:aswan]
- Atique Ahmed Ziad [:atiqueahmedziad]
- Jayati Shrivastava
- Julian Shomali
- Obayagbona Uwagbae Alexander
- Oriol Brufau [:Oriol]
- Ratnabali Dutta
- Tim Nguyen :ntim
- Tom Schuster [:evilpie]
New contributors (🌟 = first patch)
- <Will be filled in after the meeting>
Add-ons / Web Extensions
Many more permission can be used as optional_permission in Firefox >= 77, in particular the “management” (Bug 1630419), “pkcs11” (Bug 1630418), “browsingData” (Bug 1630417), “sessions” (Bug 1630414), “proxy” (Bug 1548011) and “devtools” (Bug 1606862)
Starting from Firefox >= 77 “unlimitedStorage” doesn’t trigger the permission prompt anymore (Bug 1630413)
- First bits of the new rust-based browser.storage.sync backend are being landed (1629689, 1626506, 1634257), Thanks to :lina, :markh and :lougenia!
webRequest and filterResponseData:
Removed support for data:URLs in the webRequest API (Bug 1631933), this change has the side-effect of improving performance (e.g. see Bug 1630737), at the cost of removing the limited, as read-only, and not often used support for the data urls in the webRequest API
content-security-policy headers provided by multiple extensions are now merged (Bug 1462989). Thanks to tobias for contributing a fix for this long standing enhancement request
Fixed some webRequest.filterResponseData issues (e.g. when intercepting js scripts which are in the bytecode cache, Bug 1530408, on requests handled by service workers Bug 1595197, and on Fission process switch, Bug 1597159)
- browser.permissions.onAdded/onRemoved API events are supported in Firefox >= 77 (Bug 1444294)
- Thanks to Atique Firefox >= 77 supports tabs.goForward/goBack (Bug 1603796), part of new tab API methods recently introduced in Chrome 72
- Thanks to Ariasuni browser.tabs.duplicate() can now specify index and active property (Bug 1560218)
- Thanks to evilpie browsingData can now be used to clear ServiceWorkers and IndexedDB by hostname (Bug 1632990, Bug 1551301)
Addon Manager & about:addons
- Fixed permissions prompt not being shown (and new permissions silently allowed) when an update was found in the background (Bug 1544890)
- Fixed issues with Firefox starting with all themes disabled (Bug 1630694)
- Fixed an issue related to system addon updates (Bug 557710, part of Addon Manager changes needed for Normandy)
Sync and Storage
- Over 4.5 million users are now routed to the new Rust based sync backend (“Durable Sync”). We’re planning to start migrating existing user accounts over the next few months. You can follow along with updates to our migration logic here.
- Fixed an issue related to server side limits on headers that broke push notifications in Nightly 76.
Debugger & Console
The new Context Selector has now been enabled for the Browser Toolbox in Nightly and has been wired up to more interactions for automatic context switching (pausing a debugger thread, selecting DOM nodes in iframes, etc)Screenshot
Contributor :janelledement added Watchpoint support for pausing on either get or setContext menu in the scopes expanded from just get and set to “get and set” option
Stepping in the debugger now uses the selected frame as a reference point, making it easier to understand stepping while navigating in and out of execution paths.
The newly added Initiator column, which shows request stack traces, has been merged with the Cause button, thanks to contributor transfusion for all his work.Screenshot
New settings menu, similar to Debugger and Console, to reduce clutter in the toolbar and to provide more advanced optionsScreenshot and caption
Thanks to :hiro the Network panel now indicates lazy-loaded resources in the cause columnScreenshot & caption
WebSocket Inspector allows hiding control frames, thanks to contributor kishlaya.j
New Context Menu for list of blocking rules in the request blocking panel (bug).https://imgur.com/0oMiIGd
Service Workers instances are now listed in all their states, so installed and waiting workers can be inspected and controlled at the same time.
CSS Compatibility Panel
- 6 bugs left in M5. Starting to move on to M6, currently scheduled for August.
- Work on fission performance is ramping up. Charts are available!
- Remote Page Manager has been converted to use JSWindowActors. Some about pages are already using it: about:neterror, protections, privatebrowsing, plugins, and tabcrashed.
- Search field handling on about pages have also been converted to use JSWindowActors.
- Translation bar is now fission compatible.
- fission.autostart to true to try it out
Installer & Updater
- Landed a large refactor of the stub installer UI logic, getting it out of NSIS and over to pure HTML/CSS/JS. Thanks to mhowell and agashlin for a lot of work here in getting this landed.
- Made some minor installer text changes.
- Implemented support for attribution on the full installer. This follows roughly the same approach that we took for attribution on the stub installer. Next steps here are coordinating with other teams(releng, bedrock, etc) to get the other pieces in place so we can enable this.
- Ability to download and parse update XML added to the upcoming background update agent.
ESLint should now be able to detect globals in mochitest html files when referenced from the top-level directory, e.g.
Previously you'd have needed to use import-globals-from.
New Tab Page
- Pocket stories experiment in the UK is finished, final decision is being made, but we’re likely to turn this on for 100% of the UK in 77.
- Pocket collections experiment wrapping up. This is a feature where we show three similar pocket stories grouped together for a limited time.
- In 76 we’re going to run the personalization v2 in webworker experiment.
In 77 we’re going to run two new experiments.
A hero layout where the pocket story card is larger and the next four are smaller. This is a variant to an experiment we ran many releases ago. It shows promise in engagement.
We’re also experimenting with an email signup in the second row of stories. This works like sponsored content and also can be dismissed and opted out of.
- In 78 we’re going to be experimenting with pocket stories that are video content.
- In 78 we’re going to be experimenting with popular topics element positioning. Which right now is pretty low on the page.
- Check out all the great stuff that shipped in 76!
- This was a major performance improvement for password generation autocomplete rows and also helped with saved login rows.
OS re-authentication in about:logins
Proxy auto-login now works again thanks to mkaply!
Many dismissed-by-default doorhanger follow-ups
Project focused at finding and fixing the places where attempting to view PDFs pushes users out of Firefox
- Fixing the bug where setting Firefox as the default handler for PDF files opens infinite tabs
- Opening a PDF from the downloads panel will open the PDF into pdf.js
- Adding a “Open with Firefox” option for PDF files in the Unknown Content Type (Helper App) dialog
- When users choose to open a fallback PDF viewer, apply options to open the fallback PDF viewer with options applied to keep focus on just the PDF
- bigiri continues to make progress splitting out the snippets code from ASRouter
- dthayer and emalysz filed a whole slew of bugs that they found while looking at disk activity during startup
- emalysz made the nsTerminator smarter when dealing with slow shutdowns
- mconley landed the about:home startup cache reading, writing and scheduling components.
- Gijs is in the midst of converting a number of our panels to be lazier to improve startup and window opening times
- Gijs is making RemoteSettings shutdown more reliable
- Gijs fixed a RemoteSettings performance regression
- Gijs fixed a bug where the startupcache broke
- florian is looking to make our mochitest framework exit(0) as soon as test results get dumped for faster test runs
- mconley got the PerfService.jsm off of the hidden DOM window, which means we don’t need to create the hidden DOM window for Windows / Linux early during startup anymore
Better support for Chrome profile data import.
A reminder that you can import linux perf and Chrome profile formats into Firefox Profiler by just dragging and dropping the file.
Paul Adenot added a "Media" preset to the profiler capturing UI and he wrote a great blog post on how to profile media workloads in Firefox!
You can file a bug if you would like us to add another preset to the capture UI.
- Now Firefox Profiler keeps audio threads visible even if there's only a few samples.
- Page.getFrameTree now returns all the frames of the current tab target and is now also Fission compatible.
- Page.navigate now waits until the response of the initial document request has been received and is therefore able to return errorText when navigation fails.
The modern search configuration is now aiming to be shipped in 78, as we have parity with the existing ABSearch/legacy configuration.
Parts of the work to allow updating of the search engine WebExtensions have been split out to a separate bug to be shipped soon.
- The first part of centralising region code should be landing this iteration.
- Typing long math operations should now return proper results in search suggestions - Bug 1618769
The bookmarks toolbar has been adjusted, so it’s easier to use with touch screens and mouse, and it’s not covered by the address bar expansion - Bug 1628243
Also the shadow when results are closed has been reduced - Bug 1630506
It’s now possible to directly search for strings like “class.method” without having to prefix them with a question mark, and we correct the most common suffix typos, like mozilla.ogr - Bug 1080682
Use browser.fixup.domainwhitelist.YOUR_DOMAIN prefs to exclude special domains with invalid public suffixes
Use browser.fixup.dns_first_for_single_words to always go through an enterprise DNS
We are introducing a suffix whitelist in Bug 1634650
- browser.urlbar.oneOffSearches has been removed, as original intended; use the checkboxes in about:preferences#search to hide one-off buttons - Bug 1628926
- More deduping of similar results - Bug 1632804, Bug 1626946
- Pinned Top Sites show a pinned badge to better indicate their source - Bug 1631844
- Url wrapping to a second line happens sooner when shrinking the urlbar - Bug 1629928
- Various improvements to RTL and text overflow masks
- Added a forced search result when a string looking like an e-mail address is typed - Bug 1412985
- Testing X-Man with an A/A CFR experiment making sure everything is working
- Experiment: Contextually suggest importing passwords as an autocomplete entry
This week I learned
- [MattN] event.composed (boolean) if true, it bubbles past the shadow root and up to the rest of the document. Some standard events are composed, some are not. If it is composed, and you look at event.target, it’d be the host element normally. If you want to know about the inner element, it’s event.composedTarget.