Firefox/Meeting/06-Sept-2022

From MozillaWiki
Jump to: navigation, search

General Topics / Roundtable

  • [mconley] 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.

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)

General triage

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:

    • DeclarativeNetRequest: Added initial support for the subset of the API used to manage the session rules - Bug 1745762

    • Event Pages:

      • Support for Event Pages (background pages with the persistent flag set to false) in manifest_version 2 on all channels - Bug 1788108
      • 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)

  • Alex added the “reload” button to WebExtension toolboxes (bug)

  • 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

  • We made opening the debugger ~6 to 9% faster (perfherder), changing how we’re handling syntax highlighting (bug)
  • And much more impressive, 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

  • 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)

  • 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)

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

  • 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

Picture-in-Picture

Performance Tools (aka Firefox Profiler)

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

X button will be shown when 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)

There is now 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)

“Energy used in the current selection” shows the power usage of that range only

  • 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.

Storybook / Reusable components

  • [mconley] mstriemer has a patch up to add storybook command helpers to mach

    • Examples:

      ./mach storybook --install
      ./mach storybook

This week I learned

  • [mcheang] Last week [hjones] and I both ran into the same bug! Running `./mach run` will break in this scenario – If you’re a macOS user and you’ve upgraded your homebrew by running `brew upgrade` then it will update your Python behind the scenes and break `./mach run`. What you’ll need to do is use a python version manager such as `pyenv` to switch to Python3.10.5. There’s a bug filed for this and steps for a workaround here: https://bugzilla.mozilla.org/show_bug.cgi?id=1784861
  • https://bugzilla.mozilla.org/show_bug.cgi?id=1766497

    • [pbz] I used `brew unlink python`, which allowed me to fallback to the system Python, which got things working again.

  • [mcheang] You might also need to add a few lines in your .zshrc or .bashrc file (see bug for more details).
  • [nchevobbe] ChromeUtils.dateNow() (ChromeUtils.cpp#1724) gives you a fractional timestamp, in milliseconds but with microsecond precision, which is compatible with Date constructor

Headlines link