Firefox/Meeting/11-Feb-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 Browser Architecture
- 3.8 Developer Tools
- 3.9 Fission
- 3.10 Lint
- 3.11 New Tab Page
- 3.12 NodeJS
- 3.13 Password Manager
- 3.14 Performance
- 3.15 Performance Tools
- 3.16 Picture-in-Picture
- 3.17 Privacy/Security
- 3.18 Remote Debugging (Chromium Protocol) (read-only)
- 3.19 Search and Navigation
- 3.20 User Journey
- 4 This week I learned
General Topics / Roundtable
- [mconley] I need help putting together the Headlines! Once this meeting completes, stick around if you’d like to help.
- [jaws] Firefox::General and Toolkit::General triage
Friends of the Firefox team
Introductions/Shout-Outs
- [bwinton] Introducing Bernard Igiri!
Resolved bugs (excluding employees)
Fixed more than one bug
- Alex Henrie
- Andrew Swan [:aswan]
- Andy Bruère [:abruere]
- Florens Verschelde :fvsch
- Itiel
- Logan Smyth [:loganfsmyth]
- Magnus Melin [:mkmelin]
- Pranav pandey
New contributors (🌟 = first patch)
- (Will be filled out after the meeting)
Project Updates
Accessibility
Add-ons / Web Extensions
Addon Manager & about:addons
- Shane landed the changes to the extension sideloading that we announced some times ago (Bug 1603227, Bug 1602840)
- Mark removed some old workarounds from about:addons (Bug 1610622, Bug 1565235) and fixed some issue related to the options page (Bug 1610227) and about:addons “categories sidebar” (Bug 1609069)
- Extensions keyboard shortcuts can now be removed from the about:addons “manage shortcuts” view (Bug 1520119, and Bug 1475043 to allow the extensions themselves to unset a shortcut using browser.commands.update(...))
WebExtensions Framework
- As part of the changes needed to fully adapt the WebExtensions internals to Fission, Tomislav ported the nativeApp messaging internals from MessageManager to the JSWindowActor based messaging (Bug 1602639)
- Shane made sure that the manifest property content_security.isolated_world is aliased to content_security.content_scripts to improve Chrome compatibility of the changes to the extensions CSP (Bug 1594232)
- Starting from Firefox 74 (Bug 1502525), the preference “extensions.webextensions.remote” (which makes the extension pages to run in a separate process when set to true) is now only being read once (which is useful to prevent unexpected behaviors when the preference is flipped at runtime)
- In Firefox 74, the pref to allow to run extensions with embedded experimental APIs has been renamed from “extensions.legacy.enabled” to the more explicit “extensions.experiments.enabled” (and removed the old parts that used to be shared with the deprecated legacy extensions), Bug 1524327
- The urlClassification property included in webRequest and proxy events details is now part of the public API available to all the extensions (Bug 1589494)
Fixed regressions
- In Bug 1608373 Andrea fixed a “browser.proxy.settings.get/set” regression that was affecting non-privileged extensions that use the proxy.settings API (regression originally introduced in Bug 1593651)
- The changes introduced by Bug 1405971 - Webextension UUID leak via Fetch requests have been backed out to fix some regressions due to setting the Origin header to null on the HTTP requests originated by an extension page (some regressions related to this issue are tracked by: Bug 1607154 and mozilla/fxa#3857)
Other bugs fixed thanks to our contributors
- atiqueahmedziad fixed the userScripts API schema (Bug 1605403)
- myeongjun.ko fixed a bug in the storage.sync API (Bug 1561584)
- aji.yash13 fixed a theme API bug (Bug 1592831)
Applications
Firefox Accounts
Sync and Storage
Push
Browser Architecture
Developer Tools
- Eager evaluation (aka Instant Evaluation) is now available on Nightly! Check out the Console panel.
There is also an option that can be used to control the feature.
Instant evaluation is showing the result (preview) of the current expression yet before it’s evaluated (i.e. the Enter key pressed). Selection changes in the autocomplete popup count too.
- Autoclose brackets - The Console panel input now respects the Autoclose brackets option. Console automatically inserts the corresponding closing element for quotes & brackets (bug)
- A new InactiveCSS warning landed. This one will let you know when one of the top, right, bottom, left and z-index properties are being used on a non-positioned element (bug)
Check out the Rules side panel in the Inspector panel
- The New Application panel is now[1]enabled by default(in Nightly (only). Feel free to play with it if you have manifests and service works in your apps and report any issues you find[2]here.
Next steps include doing a UI review of this new panel and[3]showing all workers for registrations.
- WebSocket Inspector supports WAMP protocol, including JSON, MsgPack and CBOR (bug)
Available in the Network panel
Fission
- mconley made the PopupBlocker Fission-compatible
- bigiri has an in-progress patch posted that migrates UnselectedTabHover to JSWindowActors
- Neil finished view source
Lint
- No updates this week
New Tab Page
- Discovery Stream enabled for the rest of the world in 73.
- New stories recommendation updates available but preffed off in 74, going to run experiments with it.
- Working on content collections for newtab stories experiment in newtab for 75. It’s a way to group similar stories based on a certain topic for a set amount of time, examples, if we wanted stories related to privacy, or entertainment, we could group them, or if we wanted to respond to something time based.
- In 75 adding some prefs to enable stories in new locales, so we can run experiments on this before going live, initially this is going to be for the UK. Right now US, CA and DE see stories.
NodeJS
We are changing the minimum required version of NodeJS for Firefox builds from 8 to 10
Node 10 is the oldest Long Term Support version of Node that is still live. It was chosen (rather than Node 12) because we want to cause minimum disruption for older distributions still building modern versions of Firefox.
- After this happens (I’ll post in the usual places), folks will need to execute `mach bootstrap` in order to get the updated NodeJS bits installed into ~/.mozbuild
- Probably shouldn’t cause any problems, but if anything acts weird, feel free to contact dmosedale@mozilla.com or ask in #NodeJS on Slack
Password Manager
Fixed
Autocomplete/Autofill
- Move suggest secure password option to the top of the context menu
- Move Fill password to the top of the context menu
- Autocomplete dropdown is not toggled for some sites with multiple saved logins (on page load when the field is auto-focused)
about:logins
General
- Toolkit's password prompts should have product name in the window title
- Having a Master Password makes Firefox password manager (both Lockwise and legacy) slow to load (10s for 300 passwords on an i7), using 100% CPU and causing laptop fans to spin up
- When importing saved Chrome passwords on mac, don't cause a keychain prompt if there are no rows to import
Performance
dthayer
wrote an IOInterposeObserver to help us ensure that certain threads don’t write to disk on shutdown (meaning they can probably just exit immediately at quit)
landed a patch to add a new pref to let us dogfood fast shutdown
- Intending to enable the pref at its least aggressive setting shortly
- After this, we will extend our late write checking into earlier phases of shutdown
Have a patch up to avoid blocking the shutdown path to write the StartupCache file.
- Gijs has autolanded a patch which lets us avoid more main-thread IO
mconley
completed the about:home startup performance audit, and has filed a metabug to carry out recommendations
found and posted a patch for a correctness issue with the about_home_topsites_first_paint probe
consulted on a few Talos regressions, and helped figure out resolutions for both
Performance Tools
Recent profiler talks/workshops:
Beginner workshop (Berlin all hands)
Advanced workshop (Berlin all hands)
FOSDEM talk (video is linked from this page)
Berlin Lightning talks - skip to chapter 9 for ‘new features of the profiler’ and chapter 10 for an introduction to ‘memory tooling’.
Picture-in-Picture
- We published a blog post about Picture-in-Picture that talks about our design and compares our implementation with other browsers.
gl added the following keyboard shortcuts to the player window:
Left-Arrow / Right-Arrow: seek back / forward
Up-Arrow / Down-Arrow: volume up / volume down
This is currently held to Nightly, since seeking breaks Netflix.
- mstriemer made it so that using the “X” button to close the Picture-in-Picture player window pauses the video
- mconley adjusted the toggle so that it’s repositioned on Udemy, Instagram and Twitch.
- Gijs fixed a case that caused errors to be logged to the console
Privacy/Security
- .
Remote Debugging (Chromium Protocol) (read-only)
Search:
Search configuration modernization
Hoping to turn it on soon, currently looking at performance figures.
Address Bar:
Notable changes:
Fixed a regression in urlbar autofill when browser.urlbar.suggest.history = false - Bug 1602728
Search strings now ignore diacritics (controllable by places.search.matchDiacritics pref) - Bug 1606731
-
Improved accessibility - Bug 161360, bug 1608766
The redesign, Urlbar Top Sites, Search Tips and Interventions features are enabled in early beta or earlier
Search Tips are not shown if “Recommend features as you browse” pref is unchecked - Bug 1613048
Top sites are not shown if the corresponding feature is disabled on the New Tab Page - Bug 1608359
Increased usability of the urlbar in small windows - Bug 1610497, Bug 1612317, Bug 1401835,
Improved contrast with the dark theme - Bug 1593886
User Journey
- Tracked down snippets broken in nightly by content sanitization fortunately caught before release with enabling release snippets in nightly now switching to dedicated nightly snippets
- Completed end-to-end testing for user agent attribution in with help from bedrock attributing all downloads via stubattribution service into Firefox 73 installer to eventually processing telemetry data according to pipeline-schemas
- Updated baseline about:welcome experience based on 7 variant results to run additional followup experiments
- Starting to look into improving profile migration experience focusing on Windows Chrome users to potentially “pre-import” top sites before a full import and “pre-import” list of domains with passwords to suggest from Lockwise autocomplete
This week I learned
I think this might warrant a wider-audience announcement later, but this is a GDocs code highlighter with various themes to choose from: https://github.com/mikedeboer/gdocs-scripts/tree/master/documents What you need to do is:
open your doc, go to Tools > Script Editor
create a new script for each .gs script you see in the repo folder
copy, paste & save the raw contents of each file in their respective counterpart in the script editor.
switch back to your doc, and you should see a ‘Code formatter’ menu appear. If not, it will after a reload.