Firefox/Meeting/14-Jul-2020
From MozillaWiki
Today’s meeting leader is: emalysz
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 Developer Tools
- 3.5 Fission
- 3.6 Form Autofill
- 3.7 Installer & Updater
- 3.8 Lint
- 3.9 New Tab Page
- 3.10 NodeJS
- 3.11 Password Manager
- 3.12 PDFs & Printing
- 3.13 Performance
- 3.14 Performance Tools
- 3.15 Picture-in-Picture
- 3.16 Privacy/Security
- 3.17 Remote Protocol (Chrome DevTools Protocol subset)
- 3.18 Search and Navigation
- 3.19 User Journey
- 3.20 WebRTC UI
- 3.21 This week I learned
General Topics / Roundtable
- [mconley] Using nsIDocShellTreeItem methods / properties is no longer desirable. These things will soon be gone. Please use BrowsingContext equivalents instead. Ask in Matrix:#fission if you need help.
Friends of the Firefox team
Introductions/Shout-Outs
Resolved bugs (excluding employees)
Fixed more than one bug
- Andrew Park
- Itiel
- kenrick95
- Sonia
New contributors (🌟 = first patch)
- Andrew Park made sure we don’t report NaN for an add-on download speed.
- Andrew Park also fixed malformed URLs in the bookmarks folder.
- Harsh improved our error logging in the internal Download API.
- 🌟DH Kim made the style of the disabled-paused button clearer
- 🌟Kanishk removed test cases from SearchService.idl
- Kyle Knaggs ensured the context menu items in the Editor copy the expected text to the clipboard
- Stanislav Goncharov made sure the autocomplete list events are not propogated to filter input
- 🌟Anwesha made nodeFront calls smarter
Project Updates
Accessibility
Add-ons / Web Extensions
Addon Manager & about:addons
- Share fixed a couple of issues that were preventing addons from being installed or updated when the builtin cert was not being used (which is the case for some organizations that use their own certificates, or because of some antivirus that install its own certificate to inspect HTTPS connections) - Bug 1647360 and Bug 1648815
- Will Durand made sure that the sourceURL in the addon abuse reports submitted by users will be set to the expected source url even when the website did change it using the history API - Bug 1648036
- Andrew Park contributed a fix that prevents the addon download doorhanger to show “NaN bytes/sec” when the download starts - Bug 1544570
WebExtensions Framework
- Agi fixed a perf issue related to main thread I/O on startup when the rkv-based ExtensionPermissions backend is in use (only Nightly at the moment) - Bug 1651628 (main thread I/O originally introduced in Bug 1637680)
- Landed an initial part of the changes needed to support Extension’s service workers and the manifest v3 background service workers (locked behind prefs “extensions.backgroundServiceWorker.enabled” and “extensions.service_worker_register.allowed”, currently both false by default on all channels) - Bug 1609920 (as a side note: even when enabled using the supported prefs no WebExtensions API are yet available in the Extension’s service workers)
WebExtension APIs
- Rob fixed the validation of the chrome_settings_override’s search_url/suggest_url/search_form, which was allowing more than just localhost urls in those manifest properties - Bug 1651665 (landed in 80 and pending an uplift request to 79, where the originally regression landed, Bug 1612013)
- Harsh Arora contributed a small fix to ensure that the downloads.download API is going to log in the BrowserConsole unexpected errors raised internally when a download fails - Bug 1645337 (originally regressed by Bug 1576333)
Applications
Firefox Accounts
- The team is ramping up on Firefox Account Ecosystem Telemetry, a project to understand user behavior across all our products in a privacy-preserving way. This work spans Desktop, services, and the telemetry pipeline. Watch this space!
Sync and Storage
- [read-only] Paused on migration users (we’re at 58% of total sync traffic now) until we resolve a Spanner hotspotting issue. Reviewing proposed mitigation with Google now and will proceed with internal QA after that.
Push
- [read-only] Possible fix for unreliable Send Tab on iOS issue found; in review now and will be deployed (likely) with the 7/28 release.
Developer Tools
- Layout & Mobile Tools - Better support for XPath search. More expressions can be used - previously only expressions starting with a "/" were recognized.
Check this bug for more details (thanks to Sebo!)
- Console - new :block command for blocking requests available in the Console panel (bug, thanks to thelehhman) Screenshot online
- Infrastructure improvements
- Fission - Making progress with a unified Resource layer. Good progress on DevTools client side and starting also with the backend (server side).
- Individual DevTools panels/tools “watch” for specific resource types (console message, network request, debugger source, etc.) and get them from all debugged scopes automatically (content & main processes, workers, etc.)
- Network Panel - Call for testing - support for Server Side Events (SSE) ready in 80. Visualization for text/event-stream content types (bug).
Behind a pref: devtools.netmonitor.features.sse
Use this test page #1
Use this test page #2 (with support for Mercure protocol)
Fission
- Fission newsletter 7 published
- Down to only one legacy actor left (for print preview)
- Visiting about:processes will now give information about running processes
Form Autofill
- User Research on Credit Card Autofill completed
Installer & Updater
- No updates today.
Lint
New Tab Page
- A lot of previous things we’ve been testing for a while now and I’ve probably mentioned in the past are now on release or are about to be:
- Pocket stories in newtab are now 100% on in the UK in release
- V2 personalization is now 100% on in nightly and riding the trains. (previously was nightly only)
- We’ve started to put in pocket sponsored content in Canada
- Story collections are also available to be used in production, and we’ve used it once over the last little bit for the racial justice campaign we did.
NodeJS
- `./mach node` (and `./mach npm`) now launches the node used by mach
Password Manager
- Show/adjust the dismissed login capture doorhanger in response to input events in the password & username field
- Import logins from Firefox login export CSV files
(Menu in about:logins with the “Import from a File…” option)
- Still a few follow-ups to fix to provide a summary and report.
- Doorhanger UI to show usernames from all <input>s in the doorhanger
(Login save doorhanger with a dropdown of username suggestions)
- Kenrick fixed a few about:logins issues
PDFs & Printing
Performance
- mconley blogged about the about:home startup cache
- Check out this comparison video!
- Enable it in about:preferences#experimental and please file bugs!
- Gijs built this really cool Treemap visualization to get a sense of the distribution of DOM nodes in browser.xhtml
- (Right-click zooms out)
- #mainPopupSet is pretty big! That’s why we’re boiling down the panels.
- emalysz is putting together a patch that will help us defer more work to after the initial about:home has painted
- Gijs and emalysz made more of our panels lazier to reduce the initial size of the browser.xhtml DOM
- Gijs landed a new test to measure how many DOM nodes are in the initial browser.xhtml document to help track fluctuations and prevent bloat
- This is a new kind of performance test - mozperftest.
- Gijs is chasing down a ts_paint_webext regression
- bigiri and Gijs are working on improving our slow script notification experience, starting with measurement
- dthayer advanced Nightly to Stage 3 of FastShutdown!
- dthayer made it so that we cache more things in startupcache - this should have a really nice impact on Beta and Release
- Less of an impact on Nightly because the startupcache is invalidated when the buildIDs get bumped, which is twice daily for Nightly
Performance Tools
- No updates this week.
Picture-in-Picture
- Planning has begun to do some experiments regarding improved discoverability of the Picture-in-Picture toggle
- Gijs and mconley are putting together a proposal to mentor some MSU Capstone students on some Picture-in-Picture bugs in September
Privacy/Security
Remote Protocol (Chrome DevTools Protocol subset)
Search:
- Search config modernization has been turned off in Firefox 78.0.1 due to a migration issue related to indexedDB (RemoteSettings) - Bug 1649558
- Lots of modernization follow-up work, cleaning up the search service - Bug 1637744, Bug 1637931, Bug 1649426, Bug 1650756, Bug 1647320, Bug 1647359
- The implementation of window.external.AddSearchProvider has been removed in Firefox 80, after this obsolete feature was disabled in Firefox 78 - Bug 1632448
- Consumers of browser.search.region pref are being updated to use Region.jsm - Bug 1627540, Bug 1627547
Address Bar:
- Hit a regression in Firefox 78 where profiles having a corrupt or locked places.sqlite couldn’t search or visit from the urlbar. A fallback path has been added from Firefox 78.0.2, restoring the previous behavior. We’re investigating follow-ups to help the users with those corruptions. - Bug 1649981
- Various improvements to increase modularity of the querying code: Bug 1645521, Bug 1648468, Bug 1645324, Bug 1652040, Bug 1650099
User Journey
- Launched about:welcome experiment in 78 with 2 screens (welcome and import)
- Also testing new Amplitude integration and comparing with Redash
- Adding additional experimental welcome screens for privacy and themes
- Preparing some new default 80 welcome experience based on multistage findings
- Turning on password import autocomplete suggestions by default in 80 with additional robustness over 77 experiment functionality (accessibility, localization)
WebRTC UI
- The goal is to ship the new indicator with DOM notification silencing in Firefox 80
- Fixed
- In Progress
This week I learned
- [mconley] Avoid delete-ing properties on a JS Object. According to kmag, this puts the Object into “dictionary mode”, which has slower access characteristics. Best to set the value to null instead if possible.
- For lazy getters, instead of using the “delete property, overwrite property” pattern, use something like defineLazyGetter.