Firefox/Meeting/10-Mar-2020
Today’s meeting leader is: lina
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 Console
- 3.9 Inspector
- 3.10 Network Monitor
- 3.11 Measuring Tool
- 3.12 Fission
- 3.13 Installer
- 3.14 Lint
- 3.15 New Tab Page
- 3.16 NodeJS
- 3.17 Password Manager
- 3.18 Performance
- 3.19 Performance Tools
- 3.20 Picture-in-Picture
- 3.21 Privacy/Security [read only]
- 3.22 Remote Debugging (Chromium Protocol)
- 3.23 Search and Navigation
- 3.24
- 3.25 Updater
- 3.26 User Journey
- 4 This week I learned
General Topics / Roundtable
- None
Friends of the Firefox team
Introductions/Shout-Outs
Resolved bugs (excluding employees)
Fixed more than one bug
- aarushivij
- dw-dev
- Florens Verschelde :fvsch
- Itiel
- KC
- Kriti Singh
- Outvi V
- Sebastian Zartner [:sebo]
- Thal Marcelin
- Tim Nguyen :ntim
- Uday Mewada
New contributors (🌟 = first patch)
- Aggelos Gamvrinos [:agam] simplified some of our DevTools web console tests by adding a common helper function
🌟 jcadler
Got rid of an obsolete function on the richlistbox custom element
Converted about:about from an XHTML page to an HTML page
- 🌟 jacquelinechan2 converted about:privatebrowsing from an XHTML page to an HTML page
- 🌟 Jonathan Michalon fixed a bug where we weren’t properly showing focus rings for some of our tree UI
🌟 KC
Fixed a glitch where the icon in the selected tab of the DevTools debugger would not switch to the active colour
Cleaned up some old debugger code that we don’t need anymore
- manas cleaned up one of our DevTools Console test helpers
- 🌟 Manish Sahani cleaned up some code that was causing a React warning in the about:debugging code
- 🌟 Sergio Schvezov improved Firefox’s integration with the SNAP package management system
- 🌟 Simon Van Accoleyen deCOMtaminated some accesses to the FocusManager!
- 🌟 Sourab replaced a usage of BrowserTestUtils.waitForCondition with TestUtils.waitForCondition
- Stepan Stava [:stepan] made it more obvious that you can jump to lines in the DevTools Debugger from function references in tooltips
- 🌟 Lupita Arroyo replaced a usage of BrowserTestUtils.waitForCondition with TestUtils.waitForCondition
- 🌟 Tanmaya [:Tanny_m] made some of our DevTools Inspector code more consistent with pre-existing DOM APIs
- 🌟 Theo Ottah increased the size of the tooltip’d region for the Site Protection icon
- Thal Marcelin made it clearer that the “Why?” region in the Site Protections panel is not a link
- 🌟 Thal Marcelin replaced a usage of BrowserTestUtils.waitForCondition with TestUtils.waitForCondition
- 🌟 tusharxdev renamed one of the DevTools React components to make its responsibilities clearer
- 🌟 :ingrid replaced a usage of BrowserTestUtils.waitForCondition with TestUtils.waitForCondition
🌟 Uday Mewada
- 🌟 Vuong Hoang enabled “long mode” JSON preview in the DevTools Network Monitor by default
Project Updates
Accessibility
Add-ons / Web Extensions
WebExtensions Framework
- Fixes related to geolocation and browserSettings optional permissions (Bug 1618398, Bug 1618500).
- privacy is now supported as an optional permission (Bug 1618399).
- Starting from Firefox 74, the dns permission doesn’t trigger a permission prompt anymore (Bug 1617861). uBlock has recently started to use this API to block trackers that disguise themselves as first party, unfortunately the wording for the dns permission as shown in the permissions prompt was leading to confusion for the user (e.g. See Bug 1617873).
WebExtension APIs
- Starting from Firefox 75, tabs.saveAsPDF supports two new optional properties: fileName and pageSettings (Bug 1483590 ) and browserSettings API now supports the new zoomSiteSpecific and zoomFullPage settings (Bug 1286953). Thanks to dw-dev for contributing these enhancements.
- Tom Schuster fixed an issue triggered by calling browser.find.highlightResults with result objects that are missing the option rangeIndex parameter (Bug 1615761).
Addon Manager & about:addons
- about:addons page options menu got a small fix to make sure that the isn’t reopening when the user clicks on it again while already opened (Bug 1603352)
Applications
Firefox Accounts
Sync and Storage
- Durable Sync (port of Sync storage backend to Rust) rollout is underway. We’re going from 50% of new Sync users to 75% on March 11th.
Push
Developer Tools
Console
- In the Browser Toolbox, you can now select the context in which you want to evaluate a given expression (Bug 1605329) (link to image)602x266px
Inspector
Network Monitor
- The Network monitor is showing a link to the place where the request was initiated. Clicking on the links navigates the user to the Stack Trace side panel with the entire stack trace (bug).
- It’s possible to use wildcards to block requests. See async-*.js example of the following screenshot.
- It’s possible to filter WebSockets messages with regular expressions (bug)
Measuring Tool
- The measured area can be resized after creating it (Bug 1152321).
Fission
- Bernard finished his first fix, to get the unselected tab hover ported to fission. This allows video decoding to start when hovering over a tab one might switch to.
- Front end actors/components are now ⅔ complete.
Installer
- Started work to move the installer UI out of NSIS and into a web based framework so that developers can make UI changes using plain ol HTML/CSS.
Lint
- Running ./mach eslint (or ./mach lint -l eslint) will now run multiple processes by default (depending on cores), speeding up the normal run time.
- We now lint .eslintrc.js files
Prettier has been upgraded to 1.18.2, along with some of our other plugins.
Main difference is in a slightly different treatment of template strings (which now don't get broken across multiple lines).
Adding ESLint support for recent javascript additions (globalThis, nullish coalesce operator and conditional chaining operator) is being discussed.
Meta bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1595810
Prettier will need an update to 1.19.x to support
Still waiting for ESLint to pick up support - likely to be in 7.x, but we might swap to the Babel parser in the meantime.
New Tab Page
- Both Pocket Collections and Pocket stories in en-GB are in beta, and moving along to release now. We have a smoke test experiment going out in beta.
- Starting to work on moving v2 recommendation code into a web worker.
We’ll also be exploring some new newtab layouts designed for higher engagement, and exploring story density configuration.
Story density configuration gives the user back the ability to configure how much Pocket they see and other ideas like that.
Both these ideas are in early design and likely see dev work in 77.
- All development is now happening in mozilla-central (GitHub repo is frozen), and docs are updated: https://mail.mozilla.org/pipermail/firefox-dev/2020-March/007379.html
NodeJS
`mach vendor node` and other automation work is being scoped out
Anyone potentially interested in helping out with implementation is highly encouraged to ask @dmosedale in chat, or #nodejs in Slack
Password Manager
- The password doorhanger icon now appears (by default) as soon as a password field is edited on a webpage. This allows the password to be saved to Firefox ontphab any site where the user hasn’t chosen to never save! Please file bugs on this new feature.
- Login import from Chrome/Edge 80+ on Windows was implemented by Mardak!
- Added a new watershed for Firefox 72.0.2 to avoid password data loss when updating to 73+ from really old versions
about:logins
Performance
- mconley has (re-)enabled the privileged about content process in Nightly, and has a WIP patch up that lets that process access a cached document from the HTTP cache on startup. The eventual goal is to cache about:home periodically.
Gijs created builds with an artificially inflated libxul so that we could test how much libxul size impacts startup. An extra 100MB of libxul binary size slows down startup by about 3s on the 2018 reference laptop!
[dmose] What is the current non-artificially-inflated Windows libxul size?
- 102 MB on 64-bit Windows (76.0a1 (2020-03-09) (64-bit)).
Can we load it in chunks?
- [mconley] Potentially! This is what we’re looking at in this bug. :D
- Gijs is working on removing the old XML blocklist implementation.
- emalysz fixed an issue with how we gather OS information off of the main thread
- mconley landed patches to gather Telemetry on whether or not Superfetch / Prefetch are enabled, and how often users see the slow startup notification bar
- mconley landed a patch to avoid some main-thread IO during start-up by deferring permission expiry to idle-daily, off-main-thread
- dthayer will be bumping the toolkit.shutdown.fastShutdownStage preference to stage 2 on Nightly soon, which tests a faster shutdown path.
[zbraniecki] Fluent is switching from JSM to Rust.
🦀🦀🙌🙌
Performance Tools
- The brand new capturing workflow has landed and you can use it on Firefox Nightly! You can enable it on profiler.firefox.com if you haven't already.
- There is a context menu for the timeline markers now.
You can right click to any markers in the timeline to open a context menu
- Now you can drag and drop the profiles into profiler.firefox.com even though there is an opened profile already.
Picture-in-Picture
- Today’s Firefox 74 release includes toggle adjustments for Instagram, Udemy and Twitch
- A patch to make it possible to fullscreen the player window by double-clicking it is up for review
- Team is working with UX to figure out how we can have users express a preference for the default toggle position in about:preferences
- Toggle now appears on YouTube videos at 144p resolution
- Pleasantly surprised to hear that screenreader users find the Picture-in-Picture feature useful as well, to more easily control videos on sites that aren’t as keyboard accessible as they should be
Privacy/Security [read only]
Remote Debugging (Chromium Protocol)
Search:
The new search configuration format has now been turned on for nightly builds.
If you're seeing anything unexpected with your default/Firefox provided search engines, please let us know by filing a bug in Firefox / Search.
- Dale has fixed an issue with right-clicking and selecting search when using DuckDuckGo Lite.
- Mark fixed an issue where shutting down in the middle of search engine startup could write an incomplete cache.
Address Bar:
Notable changes:
Unified address bar and search bar clickSelectsAll behavior across all the platforms (prefs have been removed) - Bug 333714
Visual redesign (update 1)
Release scheduled for Firefox 75
Will run a pref-flip study in 74
Various minor fixes around design polish, telemetry and code cleanups
When Top Sites are disabled in the new tab page, the address bar fallbacks to the old list - Bug 1617345
Top sites are shown when the address bar input is cleared - Bug 1617408
Make Address Bar modules more easily reusable by other projects
Making the code more self-contained and less depending on the browser code layout
Address Bar results composition improvements
Aimed at improving results composition by fixing papercuts and improving frecency
Don’t suggest switching to the current tab - Bug 555694
Updater
- Beginning stages of a background update agent (for Windows 10 to start), starting with a scheduled task that calls a binary, and then moving onto incorporating Rust based logic to check for updates. Mhowell leading the efforts here.
User Journey
New simplified about:welcome landed behind a pref (browser.aboutwelcome.enabled) implemented using JSWindowActors and decoupled from about:newtab/DiscoveryStream
Working on integrating normandy/remote experimentation in 76
- Working on experiment to use CFR UI for heartbeat surveys to inform future work
- Slightly delayed import password CFR experiment now targeting 74 which includes the fix for password migration from Windows Chrome
- Ran into unexpectedly low enrollments for experiments targeting Chrome Attribution, debugging / investigating why this is the case
- All development is now happening in mozilla-central (GitHub repo is frozen), and docs are updated: https://mail.mozilla.org/pipermail/firefox-dev/2020-March/007379.html
This week I learned
[standard8] You can set up moz_phab to automatically submit with blocking reviewers all the time.
Set submit.always_blocking to true in ~/.moz-phab-config
You can override it by providing reviewers on the command line.
[mconley] Did you want a profile for a try push and didn’t get symbols?
Make sure you run the symbol upload job for the platform and build type you’re targeting. That’ll make it so that profiler.firefox.com can get them.
In the console when viewing the unsymbolicated profile, type profile.meta.symbolicated = false, then click “Publish” and re-download the profile, and then re-upload it to trigger symbolication.
- We are adding UI to do this easily in https://github.com/firefox-devtools/profiler/pull/2448