Firefox/Meeting/17-Nov-2020
Today’s meeting leader is: emalysz
Contents
- 1 General Topics / Roundtable
- 2 Friends of the Firefox team
- 3 Project Updates
- 3.1 Add-ons / Web Extensions
- 3.2 Bookmarks
- 3.3 Developer Tools
- 3.4 Fission
- 3.5 Form Autofill
- 3.6 Installer & Updater
- 3.7 Lint
- 3.8 Mobile
- 3.9 New Tab Page
- 3.10 Nimbus
- 3.11 NodeJS
- 3.12 New Tab Page
- 3.13 Password Manager
- 3.14 PDFs & Printing
- 3.15 Performance
- 3.16 Performance Tools
- 3.17 Picture-in-Picture
- 3.18 Pocket
- 3.19 Privacy/Security
- 3.20 Push
- 3.21 Search and Navigation
- 3.22 Sync
- 3.23 User Journey
- 3.24 Web RTC UI
- 4 This week I learned
General Topics / Roundtable
[mconley] UX says we should feel empowered to make basic UX calls. They’re currently overloaded, so they’ve asked that we not block fixes on them.
[zbraniecki] Introducing Platform Internationalization Team, at your service
Join us - #i18n on Matrix
Friends of the Firefox team
Introductions/Shout-Outs
Resolved bugs (excluding employees)
Fixed more than one bug
- Andrey Bienkowski
- Ben D (:rockingskier)
- Chris Jackson
- Cody Welsh
- Fabien Casters [:vaga]
- Hunter Jones
- Itiel
- Martin Stránský [:stransky]
- Michael Goossens
- Niklas Baumgardner
- Tim Nguyen :ntim
- Tom Schuster [:evilpie]
New contributors (🌟 = first patch)
Project Updates
Add-ons / Web Extensions
Addon Manager & about:addons
- Fixed an issue with built themes disappearing for one sessions after upgrading to Firefox 82 (fixed by Bug 1672314, caught due to the recent changes to the theme resource urls introduced in Bug 1660557)
- Some minor follow ups related to the the new verified and mozilla badges in the about:addons extensions list (Bug 1666042, Bug 1666503)
- Itiel contributed an RTL-related followup fix for the optional permissions list part of the about:addons detail view (Bug 1672502, follow up for Bug 1624513)
- ntim contributed some small refactoring for about:addons (Bug 1676292, Bug 1677530), in preparation for completely removing the remaining bits of the legacy XUL-based about:addons page
WebExtensions Framework
- Landed a fix to make sure that the extension messaging Ports are garbage collected when the related extension content is destroyed (Bug 1652925)
- Brad Werth made sure that the extension popups and sidebar panels can be zoomed using the Ctrl-scroll wheel as in the browser tabs (Bug 1634556)
- Mark Banner did make sure we reset/restore the default search engine when an addon did override it and then was uninstalled at early startup (Bug 1643858)
WebExtension APIs
- Tom Schuster extended the browsingData API to support clearing the browsing data for a specific contained tab using a new optional cookieStoreId parameter (Bug 1670811, + follow up fix from Bug 1675643)
Bookmarks
“Other Bookmarks” Folder in Bookmarks Toolbar - If users have bookmarks stored in Other Bookmarks, a button for it will appear in the bookmarks toolbar (bug). An option to hide this folder from the toolbar is currently in progress (bug).
- Bookmarks are stored in the Bookmarks Toolbar by default - For new users, the default location for storing bookmarks is now in the bookmarks toolbar (bug).
“Import Bookmarks” Button - New profiles will display an “import” button on the bookmarks toolbar (bug).
Showing the Bookmarks Toolbar on the New Tab page by default and replacing the Bookmarks Toolbar hide/show toggle - New options for showing the bookmarks toolbar: “Always”, “Never”, and “Only on New Tab” (bug).
- A message describing the Bookmarks Toolbar and linking to the library is shown on the toolbar when it is blank - If there are any bookmarks in the “Bookmarks Toolbar” folder or any other widgets on the toolbar this message will not be shown (the “Other Bookmarks” symlink folder does not count)
Developer Tools
- Network Panel - Introducing top level error component responsible for catching exceptions and rendering details, stack trace + link for filing bugzilla report (bug)
- Performance panel - Building simple on-boarding UI for new performance panel (bug) The new profiler panel is based on Firefox profiler: profiler.firefox.com
- Accessibility Panel - showing tab order on the current page, done by Yura Zenevich (bug), shipped in Firefox 84
- DevTools Fission - Making DevTools Fission compatible
Fission tests are now enabled on tier 1 (bug)
Continue making DevTools Fission compatible (wiki with known issues)
The project has 6 MVP remaining to be completed at Dec 14 - Dec 20
- Marionette Fission - Making Marionette (the automation driver for Firefox) Fission compatible
The project has 13 MVP remaining to be completed at Nov 09 - Nov 22
Enabling Marionette new Fission compatible implementation (based on JSWindowActors) fixed an a memory leak and improved performance 15-20% across all platforms (bug).
Fission
- Newsletter #9
- All legacy actors have now been removed. 🎉🎉🎉🎉🎉🎉🎉🎉
Form Autofill
Installer & Updater
- bytesized is working downloading a new update while one is already staged, which should address a pain point going back more than a decade.
- mhowell is wrapping up work on the[1]semaphore, to prevent multiple instances from updating each other, and to let the user know when Firefox can't update as a result
- agashlin landed a new uninstall ping, so we should get more information about users explicitly leaving Firefox (as opposed to silently ceasing to use Firefox)
Lint
- Sonia enabled all ESLint rules for widget/tests/*.xhtml - these were files where we had postponed fixing all the eslint issues when moving from xul to xhtml.
- Kris made it so that the ESLint list of services that are accessible via Services.* is now semi-automatically generated.
Mobile
New Tab Page
Nimbus
NodeJS
New Tab Page
Password Manager
- Tgiles landed Bug 1613620 - allow to remove/delete all stored logins/passwords
PDFs & Printing
- emalysz updated the print dialog so it stays open if the user cancels choosing a filename for print-to-PDF
- emalysz updated the error handling so it allows changing the destination and cancelling the print if a setting is invalid
- emalysz updated the custom margin settings to account for the printed page orientation
- nordzilla added support for duplex printing (print on both sides)
- emilio fixed a bug where printing using the system dialog failed for about: pages
- emalysz fixed a bug where changing the paper size with custom margins set could result in an error without it being displayed to the user
Performance
- bigiri landed a major refactor of the ASRouter code! This unblocked enabling the about:home startup cache by default on Nightly.
- emalysz is mentoring bugs to help us transition off of OSFile over to IOUtils! Interested contributors are most welcome to pick a bug blocking this meta.
- mconley landed UserInteractions! These let us add BHR annotations for key user interaction flows, which will hopefully let us identify high-priority responsiveness issues from our BHR data.
dthayer and emalysz have been making the pre-XUL skeleton UI for faster startup responsiveness more comprehensive. This includes drawing the URL bar, toolbar buttons, rounded rects and correct theme colours at startup. We hope to enable this by default in Nightly sometime next week once dthayer is back from PTO.
This can be turned on by adding a browser.startup.preXulSkeletonUI pref set to true
- Gijs resolved a tabswitch regression caused by recent bookmarks toolbar work, and is investigating some other Talos regressions also caused by that work
- mconley fixed a responsiveness Talos regression for the about:newtab page caused by the about:home startup cache work
Performance Tools
- Added shortcuts for call tree transforms.
(The context menu when you right click on any frame)
- Added a keyboard shortcut panel that is revealed by the shortcut “?”.
- “Profile Info” panel now includes how many physical and logical CPU cores there are on the profiled machine.
(Platform section of the metadata panel)
Picture-in-Picture
- We’ve introduced an experimental capability for having multiple concurrent Picture-in-Picture player windows. You can enable it in about:preferences#experimental.
Lots of fixes in the past few weeks from our MSU students:
Bug 1672401 - PiP description is displayed incorrectly on whereby.com
Bug 1671588 - PiP window is not visible if enabled right after changing resolution
Bug 1589680 - Make it possible to have more than one Picture-in-Picture window
Bug 1578985 - Picture-in-Picture does not remember location and size of the popout windows
Privacy/Security
Push
- 🎊Search Mode and Tab-to-search were just released in Firefox 83! 🎉
- We’re running an holdback experiment to measure the impact of these features on Release
- We’re also working on various experiments related to vertical search in the Address Bar, both with partners, and with cool utils (weather, calculator, unit conversions)
- Tweaked the tab-to-search onboarding result to not be dismissed too easily; now it requires 3 interactions (simply selecting the result counts as one) - Bug 1675611
- Based on user-testing feedback, mostly to reduce the surprise impact, empty strings in search mode don’t show anymore the last executed searches - Bug 1675537
- Search mode colors are now inverted on the Dark theme - Bug 1671668
- Allow to complete @keywords with the Tab key - Bug 1669526
- Url canonization (CTRL+Enter) does not happen anymore if a CTRL+V just happened and CTRL was not released before pressing Enter - Bug 1661000
- Fixed an issue in both the search bar and the address bar causing the last keyup event to reach content - Bug 1641287, Bug 1673299
- Fixed a regression where single words (like “space”) in search mode could open the “Did you mean to go to space” notification bar in case of a wildcard DNS. - Bug 1672509
Sync
- The tokenserver (which runs python 2.7 and supports Firefox Sync) is being ported to Rust in Q4. You can follow along with progress here.
- A minor change to better work with Spanner was made to our batch commit limit. See the Spanner docs for more details on mutation limits.
User Journey
Started investigation into making BrowserNotification look more part of chrome to eventually use as a UI for remote messages (in addition to CFR and what’s new, etc)
- Allow setting Firefox as the default browser with a remote message action
- Fixed some tab focus related issues with what’s new panel
Web RTC UI
The new WebRTC global indicator goes out for macOS and Windows today! \o/
This means system tray indicator icons for Windows, as well as an always-on-top indicator when sharing a display.
There are also global mutes for the microphone and camera, but these are off by default.
This week I learned
- [mak] Promises created in windows may never be resolved if the window is destroyed. Or more generally Promises are not resolved/rejected if their global is destroyed. Pay particular attention when collecting promises from a window into a jsm module that has a longer life, common examples are Sqlite.jsm and AsyncShutdown.jsm. If the module awaits one of these promises, it will be stuck and eventually crash on async shutdown.
[mconley] This was probably already considered, but should the Promise reject if the global goes away?