Firefox/Meeting/2-Jun-2020
Today’s meeting leader is: jaws
Contents
- 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
Introductions/Shout-Outs
Resolved bugs (excluding employees)
Fixed more than one bug
- Itiel
- Kriyszig
- Martin Stránský [:stransky]
- Andrei Petcu
New contributors (🌟 = first patch)
- <Will be filled in after the meeting>
Project Updates
Accessibility
Add-ons / Web Extensions
(Luca: I may not be able to join today, but I still prepared the following content for the agenda document)
WebExtension APIs
- 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).
Applications
Firefox Accounts
Sync and Storage
Push
Developer Tools
- 📯 For Fission Dogfooders: Please also enable `devtools.contenttoolbox.fission` to dogfood DevTools in Fission mode.
Debugger
Prevent pausing in minified bundles when original files are available, making pausing and stepping in source-mapped projects more predictable (bug 1641731)
Network
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)
602x374px
https://i.imgur.com/fMDiswu.gifv
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)
Demo of touch simulation gesture for scrolling a page in RDM
Fission
- 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
Lint
- 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:
NodeJS
Password Manager
- 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
272x255px
“Export Logins…” option in the about:logins menuThis 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
Completed:
In progress:
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.
Performance
- 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
Performance Tools
- You can now capture the off-main thread I/Os when you check the feature in the profiler settings. Example profile
374x194px
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.
Picture-in-Picture
- No updates this week.
Privacy/Security
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.
Search
- 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
- 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.
Address Bar
- 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.
User Journey
- 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.