Categories: News

These Weeks In Firefox: Issue 123

Highlights

  • We have a brand new batch of students from CalState LA working with us on improving the Migrator component as part of a Capstone course! They’re just getting ramped up, so stay tuned to hear more from them.
  • WebExtension Manifest v3 work is well underway
    • Added initial support for the subset of the DeclarativeNetRequest API used to manage the session rules
    • Support for Event Pages (background pages with the persistent flag set to false) has been enabled for Manifest v2 WebExtensions on all channels
      • This should make it easier to gradually migrate Manifest v2 WebExtensions to Manifest v3.
  • The DevTools team has some great updates for you:
    • They’ve made opening the debugger ~6 to 9% faster (perfherder), by changing how we’re handling syntax highlighting (bug)
    • Julian made opening the StyleEditor 90% faster (perfherder) on pages with minified stylesheets (bug)
      • This impacts websites like Gmail, but also probably opening the StyleEditor in BrowserToolbox
    • Go check out the DevTools section down below for more awesome improvements!
  • Janvi01 added new seek button controls to the Picture-in-Picture player window to move forward or backward 5 seconds
    • This must be enabled by setting `media.videocontrols.picture-in-picture.improved-video-controls.enabled` to `true` in about:config
    • This might undergo some visual redesign as we consider additional controls
Screenshot of a Picture-in-Picture window displaying video player controls, including newly added seek forward and seek backward buttons

The seek buttons allow you to move forward or backward by 5 seconds on Picture-in-Picture.

Friends of the Firefox team

Resolved bugs (excluding employees)

Script to find new contributors from bug list

Volunteers that fixed more than one bug

  • Itiel
  • Jonas Jenwald [:Snuffleupagus]

New contributors (🌟 = first patch)

Project Updates

Add-ons / Web Extensions

WebExtensions Framework
  • Fixed a regression related to the extension sidebar panel becoming blank when users changes the browser language while the sidebar panel is open – Bug 1786262 (regressed in Firefox 100 by Bug 1755181)
  • Fixed a recent browserAction popup regressions on action popups opened while the widget got automatically moved into the overflow menu – Bug 1786587 (regressed recently in the current Nightly 106 by Bug 1783972)
  • John Bieling moved LanguageDetector.jsm at toolkit level to fix i18n.detectLanguage API in non Firefox Desktop builds, included Firefox for Android (where LanguageDetector.jsm was not available) – Bug 1764698 / Bug 1712214
Addon Manager & about:addons
  • Nicolas Chevobbe migrated GMPProvider.jsm to system ESM modules – Bug 1787724
  • Itiel contributed a fix to about:addons styling to improve contrast on the “Available Updates” badge in dark mode – Bug 1787621
WebExtensions APIs
  • The action API (browserAction/pageAction) setPopup url to accept only same-extension extension urls to be set as popup urls, restriction enforced on manifest_version 3 extensions and extended to manifest_version 2 extensions on Firefox for Android (and in general GeckoView builds) – Bug 1760608
  • As part of the ongoing ManifestVersion 3 (MV3) work:
    • Event Pages:
      • Extend Event Pages lifetime if there are API listener calls still pending – Bug 1785294
    • Follow ups related to content scripts registered as persistAcrossSession using the new scripting  API
      • Clear persisted content script on addon updates Bug 1787145
      • Avoid to wait for the scripting API rkv store initialization on addon startup if the extension doesn’t have any persisted content scripts – Bug 1785898
    • Enforced a stricter append-only behavior on manifest_version 3 extensions changing the ContentSecurityPolicy headers from a WebRequest blocking listener – Bug 1785821
      • Similar restrictions are expected to be applied also to other security headers as part of a separate followup – Bug 1786919
      • These changes are introducing a stricter behavior for manifest_version 3, we expect more followup to be needed to open up again use cases that would not be allowed to extensions running under this stricter behavior.

Developer Tools

DevTools
  • After adding similar feature for Header objects, Colin Cazabet added preview for FormData instances in the console and debugger (bug)
Screenshot of a FormData instance being previewed on the Browser Toolbox console

Want to be better informed of a FormData instance? You can now view previews on the Browser Toolbox console.

  • Alex added the “reload” button to WebExtension toolboxes (bug)
Screenshot of a reload button visible on an instance of a WebExtension toolbox debugger

At the click of a button, you can now reload an extension with ease.

  • Alex also added the ability to automatically open DevTools from the webext CLI, adding a –devtools flag  (bugzilla bug , webext Github PR)
    • Unfortunately this introduced a regression which was swiftly fixed by Rob Wu (bug)
  • Finally Alex started ESMifying DevTools codebase, starting with Launcher.jsm (bug)
    • He will then proceed with the whole devtools/client folder
  • Julian also fixed sorting cookies in the Storage inspector (bug)
  • We fixed a long standing issue where errors and console.log messages would not be displayed in the right order in the console when they were emitted during the same millisecond (bug)
  • Hubert fix a debugger crash when using “Close all tabs” on a minified file displaying an Error (bug)
  • By popular demand, Hubert reintroduced the simple “Resend” context menu entry in the Netmonitor (bug)
Screenshot of a context menu option "Resend" being shown on the Devtools - in the Network monitor tab

Need to send a new request? No worries – just press “Resend” in the context menu.

  • We now show condition text for @supports rules in the Inspector (bug)…
  • …as well as for @container rules (bug) (container queries are still behind layout.css.container-queries.enabled)
Screenshot of the CSS "@supports" and "@container" rules and their condition texts in the DevTools Inspector.

More details are now displayed alongside the @supports and @container rules.

WebDriver BiDi
  • Julian worked around object references
    • He added resultOwnership support for script.evaluate and script.callFunction so you can get a reference (handle id) of a given object from the page, that you can then pass to other commands (bug, bug)
    • And he implemented the script.disown command, which let the user release the reference so the object can be GCed (bug)
      • Note that those references are also cleared on navigation
  • Henrik fixed an issue in Marionette where the client didn’t mark the session as deleted when in_app shutdown was requested (bug)

 

Fluent

ESMification status

Screenshot of a data table comparing how many ESM and JSM files remain as of September 5, 2022

We’ve migrated ~9.7% of JSM files so far! Thanks to all our contributors who are helping with this effort.

  • ESMification is underway! We have 125 .sys.mjs files and 1278 jsm files, ~9.7%
    • There are more patches in flight.
  • Don’t forget to add [esmification-timeline] to the whiteboard so it shows up on the status page.
  • When adding new system module files, please use the new system rather than old jsm files.
  • Check out this walkthrough to see how to do one of these conversions.
    • Don’t forget to do both parts – 1) changing the modules and 2) updating imports in other files.
  • There’s an #esmification Matrix room for questions and coordination
  • [mconley] A number of ESMification bugs have been filed for our CalState students to get their feet wet on. If you see an open ESMification bug blocking this meta, please don’t take it.

Lint, Docs and Workflow

PDFs and Printing

Performance Tools (aka Firefox Profiler)

  • Added an [X] button on track names in the timeline to quickly hide tracks. (PR #4170)

    Screenshot of a new X button for tracks displayed in Firefox Profiler in order to quickly hide tracks

    X button will be shown when a user hovers a track to quickly hide it.

  • Added self time category breakdown to our bottom panel sidebar. Thanks to our contributor parttimenerd for adding this feature! Example profile (PR #4195)
Screenshot of Firefox Profiler's self time category breakdown being displayed on the bottom panel sidebar

There is now a self time category breakdown below the running time category breakdown.

  • Added the sum of the power usage in power track’s tooltips while selecting a time range. Example profile (PR #4172)
Screenshot of a tooltip displaying total power usage for a power track in Firefox Profiler

Details on power usage can be viewed, especially for a specific range within a track.

  • Landed a big backend refactoring that allows us to not crash on an error during profiling/capturing like OOM. (Bug 1612799)
  • Raptor browsertime tests now should output Firefox Profiler profiles for all the treeherder runs by default. You can directly open them in the Firefox Profiler view with a single click. (Bug 1786400)

Search and Navigation

  • Daisuke made a change so that searches from the address bar now get a smaller frecency boost. This should reduce the amount of search result pages shown in address bar searches.
  • Daisuke fixed an issue where text selection in the address bar could be lost when switching tabs.
  • Stephanie improved suggestions when typing about: into the address bar.
  • QuickActions:
    • Daisuke has fixed various issues with inspector and print QuickActions showing in incorrect states, updated the “refresh”, “clear” and “update” to take the appropriate action and lots of other bug fixes and visual updates.
    • Dale has split out the “add-ons” action into separate “extensions”, “themes” etc actions and prepared QuickActions for upcoming experimentation.

No comments yet

Post a comment

Leave a Reply

Your email address will not be published. Required fields are marked *