Firefox/Meeting/01-Dec-2020
Today’s meeting leader is: mtigley
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 Mobile
- 3.8 New Tab Page
- 3.9 Nimbus
- 3.10 NodeJS
- 3.11 New Tab Page
- 3.12 Password Manager
- 3.13 PDFs & Printing
- 3.14 Performance
- 3.15 Performance Tools
- 3.16 Picture-in-Picture
- 3.17 Pocket
- 3.18 Privacy/Security
- 3.19 Push
- 3.20 Search and Navigation
- 3.21 Sync
- 3.22 User Journey
- 4 This week I learned
General Topics / Roundtable
- [jaws] Firefox engineering productivity tools/scripts lightning talks? Waiting a few weeks to see if January All Hands is on, if it is on then we will request a slot within the All Hands, otherwise we will find our own time
Friends of the Firefox team
Introductions/Shout-Outs
Resolved bugs (excluding employees)
Fixed more than one bug
- Michael Goossens
- Oriol Brufau [:Oriol]
Tim Nguyen :ntim
New contributors (🌟 = first patch)
Project Updates
Add-ons / Web Extensions
Addon Manager & about:addons
- Mark Striemer did land the remaining small changes needed to remove XUL deck usage from about:addons (Bug 1674890) and ntim did some more cleanups on the about:addons (Bug 1677582, Bug 1677571, Bug 1677526), in preparation to move the HTML views to the top level document (Bug 1525179).
WebExtensions Framework
- Starting from Firefox 85 users can manage the current homepage and newtab from about:preferences and switch between the default Firefox pages and the overridden ones provided by the installed extension without having to disable the entire extension that is currently managing the homepage and/or newtab pages (Bug 1595858). Thanks to Erica Wright for working on these changes.
Manage homepage and new tab pages on Firefox 85 (Bug 1595858) - Link to image
WebExtension APIs
- Liz Krane contributed changes to browser.tabs.remove to make sure that (after an extension did call it to remove multiple tabs at once) “Undo Close Tabs” will be able to reopen all of them at once (Bug 1650956). Thanks Liz for contributing this small enhancement!!!
- browser.browsingData.removePluginData API method is a no-op starting from Firefox 85 (Bug 1675106), part of the cleanup related to removing all flash plugin support in mozilla-central (tracked by Bug 1677160).
- Christoph Kerschbaumer added a new browser.privacy.network.httpsOnlyMode read-only privacy browser setting, which will allow an extension to be aware if the https only mode is currently enabled (Bug 1678306).
Bookmarks
- Option to hide the “Other Bookmarks” folder is available through the bookmarks toolbar context menu (bug). We have a follow-up (bug) to move remove the menu item from the main toolbar (View → Toolbars → Bookmarks Toolbar) and only show it for the bookmarks toolbar - Screenshot online
Developer Tools
- Console Panel - New pretty-print button introduced for multiline editor in the Console panel (bug) - Screenshot online
Fission
Neil is working on:
Smarter tab unloading
UI to make it easier to submit crash reports for crashed subframes
Form Autofill
Installer & Updater
Mobile
New Tab Page
Nimbus
NodeJS
New Tab Page
Password Manager
- tgiles has landed a patch that allows a user to remove all of their logins at once
PDFs & Printing
- emalysz updated the system dialog link to not need to wait for the initial preview to finish, which could take a while on large pages
- sfoster updated the Cancel button to say Close once a print starts, since clicking it won’t cancel the print
mstriemer added frontend support for pages-per-sheet (thanks dholbert for the platform support)
This is behind the print.pages_per_sheet.enabled pref while more options are added
Performance
- bigiri is working on a patch to stop loading OSFile.jsm in the SharedDataMap module
- emalysz made it possible to stash and restore the built-in theme colours in the Windows registry for the pre-XUL skeleton UI
florian has made it much easier to associate BHR hang reports on his dashboard with existing bugs
This is done by setting a whiteboard flag with [bhr:<frame name>] in the associated bug
Go check out the dashboard! Is there a hang in this list for one of your components? File a bug if there isn’t one already, and please prioritize. Reach out to the performance team if you want ideas on how to relieve the hang.
- mconley has landed multiple patches in an attempt to solve an AsyncShutdown hang caused by the about:home startup cache. The latest patch will hopefully take care of it.
- mconley is working on updating the BHR schema definition so that it can be stored in an easier-to-use format in our databases
- Reminder: emalysz is mentoring people on an effort to move us off of OSFile.jsm, and onto IOUtils. Know someone who might be interested? Here’s the metabug!
Performance Tools
- Firefox Profiler has a new and more powerful C++ marker API now! You can create your own custom marker type and specify how to display it in the front-end without touching any front-end code. Take a look at the docs to see how to use it.
Example code:
// Record a simple marker with the category of DOM.
PROFILER_MARKER_UNTYPED("Marker Name", DOM);
// Create a marker with some additional text information.
PROFILER_MARKER_TEXT("Marker Name", JS, MarkerOptions{}, "Additional text information");
// Record a custom marker of type `ExampleNumberMarker` (see definition in the documentation).
PROFILER_MARKER("Number", OTHER, MarkerOptions{}, ExampleNumberMarker, 42);
- The ChromeUtils.addProfilerMarker API has been extended. It now supports capturing a stack trace and setting the marker category.
Example:
let startTime = performance.now();
…
ChromeUtils.addProfilerMarker(“Marker Name”, {startTime, captureStack: true, category: “Test“}, “Marker text”);
Currently supported values for the category are "Idle", "Other", "Test", "Layout", "JavaScript", "GC / CC", "Network", "Graphics", "DOM", "IPC", "Media". Using an unknown category name will fallback to the “Other” category.
Picture-in-Picture
Our MSU Capstone students are going to be wrapping up in a few weeks. A big thank you to them for all of their great work this semester! They are:
Niklas Baumgardner (:baumga91)
Chris Jackson (:jack1391)
Hunter Jones (:whjones526)
Manish Rajendran (:rajendran.manish)
Reid Shinabarker (:reidshina6)
Recently fixed bugs:
Bug 1661225 - [PI-713 The “move” PiP telemetry event is registered when the PiP window is opened or closed]
Bug 1666637 - [RTL The new PIP toggle points in the wrong direction, even for RTL documents]
In progress
- Are you using multiple player windows? We’re interested in the use cases. Let us know!
Privacy/Security
Push
- Fixed a race condition leaving the address bar in Search Mode when switching tabs - Bug 1675926
- The address bar doesn’t default to search anymore for strings like www.something - Bug 1643850
- It’s now possible to hide/unhide local shortcut buttons (bookmarks, history, tabs) in the results panel, using Search Preferences - Bug 1657790 - and now they show their restriction char as keyword - Bug 1678770
- URL autofill is now properly case-insensitive - Bug 1606231
- QuickSuggest is the project name for contextual suggestions in the urlbar, things like weather, unit conversion, or shopping helpers fall into this project. The team is working on experiments that will run in the next few weeks, and various partners are involved.
- Some regressions related to Korean IME have been reported, we’re looking into them. - Bug 1673669, Bug 1679697
Sync
User Journey
This week I learned
- [mak / gijs] Repeat from last week (because it’s that confusing it’s worth bringing up twice!): 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.