Firefox/Meeting/07-Mar-2023
Today’s meeting leader is: kpatenio
Today’s meeting leader is: kpatenio
Contents
- 1 Friends of the Firefox team
- 2 Project Updates
- 3 Project Updates
- 3.1 Add-ons / Web Extensions
- 3.2 Developer Tools
- 3.3 DevTools
- 3.4 WebDriver BiDi
- 3.5 ESMification status
- 3.6 Migration Improvements (CalState LA Project)
- 3.7 Performance
- 3.8 Performance Tools (aka Firefox Profiler)
- 3.9 Privacy/Security
- 3.10 Search and Navigation
- 3.11 Storybook / Reusable components
- 3.12 Community
Friends of the Firefox team
Resolved bugs (excluding employees)
Script to find new contributors from bug list
Volunteers that fixed more than one bug
- CanadaHonk [:canadahonk]
- Itiel
- Mathew Hodson
- steven w
New contributors (🌟 = first patch)
- axtinemvsn fixed importing from Chromium Snap Profile
- Brian Pham implemented the page that appears if no other browsers to import cannot be found
- Ho Cheung removed unused isWinVistaOrHigher from DownloadsCommon
- G Jeevika removed code as needed in Bookmarks.sys.mjs and PlacesDBUtils.sys.mjs
- 🌟 Khadija Kamran applied same styling to Block and Resend buttons in Network Monitor
- 🌟 mgomes replaced wrapClass by wrap in addLineClass/removeLineClass
- 🌟 ofrazy updated xpcshell tests to use add_task() instead of add_test()
- Pat McGhen added margin-inline-start to sectionFilters
- steven w updated MigrationWizard's progress page success-text to be slightly smaller and use the secondary text colour and defaulted all visible resource checkboxes to checked (and invisible ones to unchecked) when selecting a browser/profile pair
- 🌟 Theo Buehler fixed memory leak in g_app_info_launch_default_for_uri_openbsd()
General triage
sfoster, amychurchwell, mhowell, kpatenio are this month’s Firefox / Toolkit :: General triagers!
We need people to sign-up for this - slot your name in!
Project Updates
Add-ons / Web Extensions
Addon Manager & about:addons
- Starting from Firefox 112, users can now search for text inside the about:addons page (through the usual associated keyboard shortcuts, e.g. Ctrl-F and ‘/’) - Bug 1499500
WebExtensions Framework
- Thanks to Itiel, the default extension icons in the extensions button panel are now filled with the current theme color - Bug 1817865
In Nightly 112 we migrated the kvstore path used by ExtensionPermissions, to be sure that the kvstore path isn’t shared with the one used internally by ExtensionScriptingStore - Bug 1807010
NOTE: the underlying race issue was investigated and confirmed as part of Bug 1805427, and so be aware that despites the inline comment associated to nsIKeyValueService.getOrCreate in nsIKeyValue.idl states that it can be used for multiple database names stored in the same kvstore path, that isn’t thread safe with the SafeMode (and old LMDB mode is deprecated).
WebExtension APIs
- Starting from Firefox 112, downloads.removeFile API calls that fail will be logging more detailed info about the actual underlying issue in the browser console - Bug 1807815
Developer Tools
DevTools
External contributors:
Contributions from other teams:
Hubert added search modifier in project search in the debugger (bug)
- Hubert also fixed an issue with Navigator.sendBeacon requests that were shown as Blocked in the Netmonitor even if they went through (bug)
- Julian recovered a regression that broke network throttling in Netmonitor (bug)
- Nicolas removed duplicated ChromeWorker messages in Browser Console (bug)
- Nicolas improved performance of pretty printing in debugger (bug, bug)
- Alex made it possible to copy text from Netmonitor HTML preview again (bug)
- Alex landed a patch that does some groundwork (bug) for a new feature in the debugger that will let the user override HTTP responses with a local file (bug), which is in progress.
WebDriver BiDi
- Sasha added the browsingContext.print command, which produces a base64-encoded PDF representation of the document (bug)
- Henrik fixed an issue where TabSession.executeInChild would hang the message manager (bug)
- Henrik vendored the latest version of puppeteer (19.7.2) which allows to run more tests in CI and have a better coverage of CDP (bug)
- Henrik also fixed an issue where httpd.js listener wouldn't stop, which could lead to unexpected side effects (bug)
- Julian created a shared module to generate HAR files from WebDriver BiDi network events, which could be useful for libraries that are using BiDi like Browsertime and Selenium (bug)
ESMification status
- Support for ES modules in workers has landed on nightly, but not yet been enabled for non-nightly.
ESMified status:
browser: 52.4%
toolkit: 39.2%
Total: 55.1%
- #esmification on Matrix
- Migration Document (with a walkthrough!)
Migration Improvements (CalState LA Project)
- Ani made it possible to import from Chromium on Ubuntu when Chromium is installed as a Snap!
- Steven made it so that the resource type checkboxes default to checked, and fixed some styling issues in the new Migration Wizard
- Brian added a page to the new Migration Wizard that shows an error message if no valid browser / profile pairs can be found to import from.
Some changes that are landing after the soft-freeze lifts:
Alvin updated the mechanism for getting permission to import from Safari to read from the entire Safari directory, rather than just the .plist files.
Alvin finished the Safari bookmark favicon import mechanism
Bryan finished the Chrome (and Chrome-based browser) bookmark favicon import mechanism
- The new Migration Wizard is somewhat functional but still very much a work-in-progress. It can be enabled by setting browser.migrate.content-modal.enabled to true. Documentation can be found here.
Performance
Some recent wins on the Speedometer performance benchmark on Windows:
- Congratulations to Glenn Watson (:gw) for a nice performance improvement to WebRender’s picture caching mechanism!
Privacy/Security
- Cookie Banner Handling can now be enabled in Nightly via about:preferences#privacy. This will enable the feature for both normal and private browsing.
For more granular control you can use the cookiebanners.service.mode and cookiebanners.service.mode.privateBrowsing prefs. Supported modes are:
- 0: Disabled
- 1: Reject all (this is what the checkbox in the preferences enables)
- 2. Reject all or fall back to accept all
In addition to our initial list of site-specific cookie banner handling rules we are working on global rules that can handle a list of cookie banner libraries / providers on any site.
You can already test this in Nightly by enabling the pref cookiebanners.service.enableGlobalRules (beware of potential bugs and performance issues)
- :daleharvey Added support for seeing Google trending suggestions in the address bar.
- :jteow Added an engagement event telemetry on SERP's, as an ongoing effort to experiment with adding Glean to Search telemetry.
- :dao continued work on the Awesomebar results menu, whereby he fixed an issue where the urlbar results menu button would continue appear despite using one of the options (e.g. Learn More). Additionally disabling browser.urlbar.resultMenu.keyboardAccessible to prevent the results menu from being selectable using Tab should now work with a mouse.
- :standard8 fixed an issue where the list of search engines in the preferences panel could be doubled.
- :adw worked on a patch to store the weather suggestions keywords in data provided to Nimbus rather than using quick suggestion config in remote settings.
:daisuke worked on a handful of patches to improve recording user engagement telemetry in the Urlbar.
Bug 1817155, Bug 1817200, Bug 1817156: Various bugs pertaining to the situation where a user uses paste and go or drop and go feature in the urlbar
Bug 1817202: Introduce site_specific_contextual_search as a possible result type. This is for contextual search (browser.urlbar.contextualSearch.enabled = true)
Bug 1817203: Pressing the Go button.
- Related to urlbar engagement, telemetry wasn't registered properly for weather suggestions, :mcheang and :daisuke worked on patches to address it: Bug 1815699 and Bug 1817899
- :mak fixed an issue where the bookmarks could be out of order for those with a disabled history, due to unvisited bookmarks all receiving the same ranking, whereas now they should be bucketed by bookmark creation date, resulting in older bookmarks getting a lower ranking. He also worked on updating the documentation on Frecency which can be viewed here.
Storybook / Reusable components
- Thanks to :scoville for cleaning up some unused code in the moz-support-link component
- Thanks to :mconley for enabling the use of brand.ftl Fluent strings in our Storybook
- :tgiles fixed an issue where we could use moz-support-link in about:plugins and a contrast issue in about:plugins
Community
We have gotten slots for 2 interns through the Outreachy program! Now is a good time to groom your good-first-bugs, as candidates are going to be looking to close out some starter bugs as part of their application process.
[standard8] Help would be appreciated in the #introductions and #outreachy Matrix channels!
Project Updates
Add-ons / Web Extensions
Addon Manager & about:addons
- Starting from Firefox 112, users can now search for text inside the about:addons page (through the usual associated keyboard shortcuts, e.g. Ctrl-F and ‘/’) - Bug 1499500
WebExtensions Framework
- Thanks to Itiel, the default extension icons in the extensions button panel are now filled with the current theme color - Bug 1817865
In Nightly 112 we migrated the kvstore path used by ExtensionPermissions, to be sure that the kvstore path isn’t shared with the one used internally by ExtensionScriptingStore - Bug 1807010
NOTE: the underlying race issue was investigated and confirmed as part of Bug 1805427, and so be aware that despites the inline comment associated to nsIKeyValueService.getOrCreate in nsIKeyValue.idl states that it can be used for multiple database names stored in the same kvstore path, that isn’t thread safe with the SafeMode (and old LMDB mode is deprecated).
WebExtension APIs
- Starting from Firefox 112, downloads.removeFile API calls that fail will be logging more detailed info about the actual underlying issue in the browser console - Bug 1807815
Developer Tools
DevTools
External contributors:
Contributions from other teams:
Hubert added search modifier in project search in the debugger (bug)
- Hubert also fixed an issue with Navigator.sendBeacon requests that were shown as Blocked in the Netmonitor even if they went through (bug)
- Julian recovered a regression that broke network throttling in Netmonitor (bug)
- Nicolas removed duplicated ChromeWorker messages in Browser Console (bug)
- Nicolas improved performance of pretty printing in debugger (bug, bug)
- Alex made it possible to copy text from Netmonitor HTML preview again (bug)
- Alex landed a patch that does some groundwork (bug) for a new feature in the debugger that will let the user override HTTP responses with a local file (bug), which is in progress.
WebDriver BiDi
- Sasha added the browsingContext.print command, which produces a base64-encoded PDF representation of the document (bug)
- Henrik fixed an issue where TabSession.executeInChild would hang the message manager (bug)
- Henrik vendored the latest version of puppeteer (19.7.2) which allows to run more tests in CI and have a better coverage of CDP (bug)
- Henrik also fixed an issue where httpd.js listener wouldn't stop, which could lead to unexpected side effects (bug)
- Julian created a shared module to generate HAR files from WebDriver BiDi network events, which could be useful for libraries that are using BiDi like Browsertime and Selenium (bug)
ESMification status
- Support for ES modules in workers has landed on nightly, but not yet been enabled for non-nightly.
ESMified status:
browser: 52.4%
toolkit: 39.2%
Total: 55.1%
- #esmification on Matrix
- Migration Document (with a walkthrough!)
Migration Improvements (CalState LA Project)
- Ani made it possible to import from Chromium on Ubuntu when Chromium is installed as a Snap!
- Steven made it so that the resource type checkboxes default to checked, and fixed some styling issues in the new Migration Wizard
- Brian added a page to the new Migration Wizard that shows an error message if no valid browser / profile pairs can be found to import from.
Some changes that are landing after the soft-freeze lifts:
Alvin updated the mechanism for getting permission to import from Safari to read from the entire Safari directory, rather than just the .plist files.
Alvin finished the Safari bookmark favicon import mechanism
Bryan finished the Chrome (and Chrome-based browser) bookmark favicon import mechanism
- The new Migration Wizard is somewhat functional but still very much a work-in-progress. It can be enabled by setting browser.migrate.content-modal.enabled to true. Documentation can be found here.
Performance
Some recent wins on the Speedometer performance benchmark on Windows:
- Congratulations to Glenn Watson (:gw) for a nice performance improvement to WebRender’s picture caching mechanism!
Performance Tools (aka Firefox Profiler)
Privacy/Security
- Cookie Banner Handling can now be enabled in Nightly via about:preferences#privacy. This will enable the feature for both normal and private browsing.
For more granular control you can use the cookiebanners.service.mode and cookiebanners.service.mode.privateBrowsing prefs. Supported modes are:
- 0: Disabled
- 1: Reject all (this is what the checkbox in the preferences enables)
- 2. Reject all or fall back to accept all
In addition to our initial list of site-specific cookie banner handling rules we are working on global rules that can handle a list of cookie banner libraries / providers on any site.
You can already test this in Nightly by enabling the pref cookiebanners.service.enableGlobalRules (beware of potential bugs and performance issues)
- :daleharvey Added support for seeing Google trending suggestions in the address bar.
- :jteow Added an engagement event telemetry on SERP's, as an ongoing effort to experiment with adding Glean to Search telemetry.
- :dao continued work on the Awesomebar results menu, whereby he fixed an issue where the urlbar results menu button would continue appear despite using one of the options (e.g. Learn More). Additionally disabling browser.urlbar.resultMenu.keyboardAccessible to prevent the results menu from being selectable using Tab should now work with a mouse.
- :standard8 fixed an issue where the list of search engines in the preferences panel could be doubled.
- :adw worked on a patch to store the weather suggestions keywords in data provided to Nimbus rather than using quick suggestion config in remote settings.
:daisuke worked on a handful of patches to improve recording user engagement telemetry in the Urlbar.
Bug 1817155, Bug 1817200, Bug 1817156: Various bugs pertaining to the situation where a user uses paste and go or drop and go feature in the urlbar
Bug 1817202: Introduce site_specific_contextual_search as a possible result type. This is for contextual search (browser.urlbar.contextualSearch.enabled = true)
Bug 1817203: Pressing the Go button.
- Related to urlbar engagement, telemetry wasn't registered properly for weather suggestions, :mcheang and :daisuke worked on patches to address it: Bug 1815699 and Bug 1817899
- :mak fixed an issue where the bookmarks could be out of order for those with a disabled history, due to unvisited bookmarks all receiving the same ranking, whereas now they should be bucketed by bookmark creation date, resulting in older bookmarks getting a lower ranking. He also worked on updating the documentation on Frecency which can be viewed here.
Storybook / Reusable components
- Thanks to :scoville for cleaning up some unused code in the moz-support-link component
- Thanks to :mconley for enabling the use of brand.ftl Fluent strings in our Storybook
- :tgiles fixed an issue where we could use moz-support-link in about:plugins and a contrast issue in about:plugins
Community
We have gotten slots for 2 interns through the Outreachy program! Now is a good time to groom your good-first-bugs, as candidates are going to be looking to close out some starter bugs as part of their application process.
[standard8] Help would be appreciated in the #introductions and #outreachy Matrix channels!