Today’s meeting leader is: jaws
- 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 Fx77 release day!
Friends of the Firefox team
Resolved bugs (excluding employees)
Fixed more than one bug
- Martin Stránský [:stransky]
- Andrei Petcu
New contributors (🌟 = first patch)
- <Will be filled in after the meeting>
Add-ons / Web Extensions
(Luca: I may not be able to join today, but I still prepared the following content for the agenda document)
- Thanks to Tom Schuster contribution, the browsingData WebExtensions API can now clear cache and plugin data by hostname (Bug 1636784)
- Performance-related improvement on the webRequest API to reduce the impact of performance when some installed extensions register many per-tab webRequest listeners (Bug 1638007)
- proxy.onRequest API event is now properly handling tabId and windowId filters (Bug 1641269)
- Fixed contextMenus.onClicked API event when used on tabs listed in the tab manager menu (Bug 1633968)
- Thanks to :markh and :lina work on the new rust-based storage.sync implementation: storage.sync.getBytesInUse can now be used by the extensions to get the amount of data stored in the storage.sync area, and the new rust-based implementation is now able to migrate the storage.sync data stored locally (e.g. Bug 1637166, Bug 1639449, Bug 1635348, Bug 1641005).
Sync and Storage
- 📯 For Fission Dogfooders: Please also enable `devtools.contenttoolbox.fission` to dogfood DevTools in Fission mode.
Prevent pausing in minified bundles when original files are available, making pausing and stepping in source-mapped projects more predictable (bug 1641731)
New Headers section with cleaned up design and reorganizes information with URL breakdown with parsed parameters (folding in the Params panel)https://imgur.com/a/DkYcUD7
Responsive Design Mode
Improved pointer event simulation for touch-enabled devices in RDM. Specifically, pointer events from a mouse are ignored when touch simulation is enabled. (Bug 1516805)
Demo website by Patrick Lauke: https://patrickhlauke.github.io/touch/tracker/multi-touch-tracker-pointer-hud.html
Support for mobile swipe/drag gestures now in Firefox Nightly 79. (Bug 1621781)
- Fission newsletter #6 has been sent out
- M5 is done! Please try out a fission enabled browser. An invitation with instructions will be sent out soon.
- JSProcessActors have been added. These are actors that are per-process, rather than one per page.
Installer & Updater
- No updates this week.
New Tab Page
- New newtab topics treatment for an experiment coming soon, landed in nightly (going into beta very soon)
- New pocket stories card video treatment for articles that have videos, in nightly going into beta very soon, also an experiment:
- The proportion of users with saved logins and the proportion of users with the password manager enabled both continue to increase month-over-month.
A much requested feature was implemented by contributor Andrei Petcu: Ability to export/backup saved passwords
“Export Logins…” option in the about:logins menu
This is still hidden in the latest Nightly but that should change in the next few days with the last remaining follow-up. This should ship in Firefox 79.
Andrei is already working on importing from the CSV files too.
Restrict about:logins OS-reauthentication feature to Nightly until we have a release plan
- PasswordManager:findLogins/:autoCompleteLogins actor topics allow querying for any origin's login Severin implemented some additional defense-in-depth for some actor messages, moving origin checks to the parent process.
Implement the GeckoView Autocomplete API for login autocomplete
Selection of multiple saved logins for a site is coming soon to Fenix
PDFs & Printing
Context menu items are being added in the Downloads Panel for PDF files to "Open in system viewer" and "Always open in system viewer"
When Edge is set as the default PDF viewer we will open Edge in application mode
Delay showing the “Open with external viewer” notification bar in pdf.js until a user tries to interact with a form
Next steps for the project:
After these in-progress bugs are completed we will start transitioning to working on a new Print Preview UI for Firefox.
- bigiri is working on using JSWindowActors to eliminate the ASRouterFeed
- mconley has been working on about:home startup cache tests
- dthayer has a few patches to expand the startup cache and eliminate omnijar reads which shows a 6-12% improvement in startup times on Windows reference hardware
- emalysz is working on a patch to defer tasks until after startup has settled
- dthayer landed work that flushes writes to XULStore to advance the fast shutdown stage
- gijs and emalysz have landed a few patches to lazily load panels and popups
- gijs has improved toolbarbuttons, which will help reduce DOM size and consumer complexity
- You can now capture the off-main thread I/Os when you check the feature in the profiler settings. Example profile
IO features that you can enable in the about:profiling page
- You can use the `mach mochitest --profiler` or `mach mochitest --profiler-save-only` to capture the profile of a mochitest now. The profile will be symbolicated, and will open in your default browser.
- Migrated to share.firefox.dev domain from perfht.ml for the permalinks. perfht.ml links will still work.
- No updates this week.
Remote Protocol (Chrome DevTools Protocol subset)
🎉 We completed the Beta MVP milestone on May 20th. That included a lot of major CDP end-points and events needed to use Puppeteer for automation. With that milestone achieved Firefox now passes
- Our work will continue on another milestone after some outreach and the prioritization of the remaining highly requested CDP end-points and events. In the meantime we will focus on Fission compatibility.
- Etienne provided another patch that implements Network.getAllCookies.
- Partial support for iframes has been added, and as such the Page.frameAttached and Page.frameDetached events are emitted now. It also means that the frameId property of the Network.requestWillBeSent and Network.responseReceived events can correctly reference the related frame. Right now this feature is pref’ed off behind the remote.frames.enabled preference, but we hope to enable it by default relatively soon.
- Modern search configuration is enabled in 78 beta, should go through to release if no significant issues are found.
- AddSearchProvider is disabled in 78, as per the intent to unship, code to be removed soon.
- We're now starting work on post-modernisation cleanup - removing some of the old code that is no longer needed, and cleaning up our initialisation and cache handling functionality.
- Region preference handling has been moved out of the search service into the new Region.jsm
- We're now working on updating more users of the pref to use Region.jsm instead.
- Bug 1627858 - Added a toggle in about:preferences to disable Top Sites in the address bar.
- Began decoupling Top Sites from about:home so they can be viewed and edited from both the New Tab Page and the address bar
- Bug 1398416 - We now show historical search suggestions in the address bar, behind the pref `browser.urlbar.maxHistoricalSearchSuggestions`.
- More work on papercuts, tail search suggestions and extension-provided results.
- Preparing initial multi-stage about:welcome experiment in 78 with 2 screens:260x176px261x174px
- Making sure first run experiments are rock-solid
- Added reach telemetry for CFR to measure potential audience sizes for better experiment analysis
- Exposed messaging system telemetry for analysis with Amplitude
This week I learned
[MattN] [Event] telemetry from outside the parent process only gets flushed to the parent process on a 2s interval and Services.telemetry.clearEvents() won’t clear this buffer or prevent those buffered values from being added to the ping data. This can cause confusing failures in tests.
A pref was added to workaround this but it still seems like a footgun for events to arrive after clearEvents which were recorded before.
[Standard8] console.createInstance is the new hotness for console logging functions
Should replace Console.jsm usage (same functionality)
Better replacement for Log.jsm which doesn't have as good functionality.
- Log.jsm misses giving direct line number links in the browser console.
- Log.jsm misses having log level integration with the browser console.
- Log.jsm logs everything as strings so doesn’t get colour-coding in the browser console.
We've just switched the search service to use it.