Firefox/Meeting/24-Jan-2023

From MozillaWiki
Jump to: navigation, search

Friends of the Firefox team

Introductions/Shout-Outs

  • [mconley] Introducing Jonathan Epstein (jepstein)

Resolved bugs (excluding employees)

Volunteers that fixed more than one bug

  • CanadaHonk [:CanadaHonk]
  • Gregory Pappas [:gregp]
  • Jonas Jenwald [:Snuffleupagus]
  • kernp25
  • Oriol Brufau [:Oriol]

New contributors (🌟 = first patch)

General triage

  • This month’s Firefox / Toolkit :: General triagers are mstriemer, hjones, niklas and sclements
  • We’re looking for people to slot their names into the blank months - don’t wait! Jump on in! This is a great way to learn about a wide variety of components in Firefox.

Project Updates

Add-ons / Web Extensions

WebExtension APIs

  • Oriol Brufau contributed a fix to the “tabs.move” API method when used to move multiple tabs into a different browser window - Bug 1809364
  • Gregory Pappas contributed a new “matchDiacritics” option to the (Firefox-specific) find API - Bug 1680606
  • All manifest_version 3 extensions that want to use the “webRequest.filterResponseData” API method will have to request the new “webRequestFilterResponse” permission (in addition to the “webRequest” and “webRequestBlocking” permissions that were already needed to get access to this API in manifest_version 2 extensions) - Bug 1809235
  • declarativeNetRequest API:

    • Constants representing the values, used internally to enforce limits to the DNR rules that each extension is allowed to define and enable, are now exposed as declarativeNetRequest API namespace properties - Bug 1809721

    • Update JSONSchema and tests to explicitly cover the expected default value set for the DNR rule condition property “isUrlFilterCaseSensitive”, which should be false per consensus reached in the WECG (WebExtensions Community Group) - Bug 1811498

  • As part of tweaks that aim to reduce the number of changes needed to port a Chrome’s manifest_version 3 extension to Firefox, In Firefox >= 110 the optional “extension_ids” property part of the manifest_version 3 “web_accessible_resources” manifest property can be set to an empty array - Bug 1809431

WebExtensions Framework

  • Extensions button and panel:

    • Cleanups for the remaining bits of the legacy implementation (which also covered the removal of the pref) - Bug 1799009, Bug 1801540

    • Introduction of a new “Origin Controls” string to be shown to the users in the extensions panel when an extension has access to the currently active tab but limited to the current visit (which will only be valid while the tab is not navigated) - Bug 1805523

Developer Tools

DevTools

  • Thanks to Tom for grouping CSP warnings in the console (bug)

  • Thanks to rpl for fixing dynamic updates of the extension storage in the Storage panel (bug)
  • Alex fixed a recent regression for the Browser Toolbox in parent process mode, where several panels would start breaking when doing a navigation in the Browser (bug)
  • Alex also fixed several issues in the Debugger for sources created using `new Function` (eg bug)
  • Nicolas fixed several bugs for the autocomplete in the Browser Toolbox / Console, which could happen when changing context in the context selector (bug and bug)
  • We updated our main highlighters to use a less aggressive styling when prefers-reduced-motion is enabled (bug)

WebDriver BiDi

  • Thanks to :CanadaHonk for fixing bugs or adding missing features in our CDP implementation (bug, bug, bug, bug, bug)
  • Henrik updated events of the browsingContext module (eg `domContentLoaded`, `load`, …) to provide a timestamp, which can be useful to collect page performance data (bug)
  • Sasha updated our vendored Puppeteer to version 18.0.0, which now includes a shared test expectation file, which means less maintenance for us and a better test coverage for Firefox on puppeteer side (bug and bug).
  • We implemented the network.responseCompleted event (bug) and updated our example web-client for webdriver BiDi to provide a simplified version of a network monitor (https://github.com/firefox-devtools/bidi-webconsole-prototype)

Credential Management

Before:

screenshot

After:

screenshot

ESMification status

  • ESMified status:

    • browser: 46.1%

      • Dropped a little bit because we removed a large number of sys.mjs files we didn't need any more.
    • toolkit: 38.3%

      • Bilal has been working on migrating various actors.
    • Total: 46.54% (up from 46.0%)

  • #esmification on Matrix
  • Migration Document (with a walkthrough!)

Lint, Docs and Workflow

Migration Improvements (CalState LA Project)

Picture-in-Picture

Performance Tools (aka Firefox Profiler)

  • Add context menu option for opening source view. Thanks to our contributor Krishna Ravishankar!

New context menu item for showing the source code

  • Support zip files on windows. Thanks to our contributor Krishna Ravishankar!
  • Scroll item horizontally in the virtuallist, taking into account the fixed size.
  • Remove the "optimizations" field from the frame table. This should reduce our profile data size.
  • Allow pinning source code view files to specific git tags.
  • Enable screenshots on talos profiling jobs on treeherder.
  • Remove some Timestamp::Now calls when the profiler is not running.
  • Fix Firefox version inside the profile data.

Search and Navigation

Storybook / Reusable components

  • Public storybook updated as of this morning with new about:logins timeline component
  • Bug 1799699 - Storybook Docs tab now lists component attributes from JSDoc
  • Bug 1798335 - The moz-toggle is now used on about:addons

  • Bug 1809457 - Our common stylesheet no longer conflicts with Storybook styles
  • Bug 1801927 - The “Learn more” links in the about:preferences#general tab have been updated to use `moz-support-link`
  • Bug 1803155 (Heading to autoland) - ./mach storybook install is going away in favor of automatically installing dependencies when ./mach storybook is run


This week I learned

  • [gijs] OK, I’m cheating, this should probably have been in the general section but I thought of it too late - BrowserTestUtils.loadURI is being renamed to BrowserTestUtils.loadURIString. I renamed all ~1000 in-tree consumers by using jscodeshift, so you don’t need to do anything about that - but don’t add new callsites because they won’t work! (and also because openNewForegroundTab and/or withNewTab are better APIs).

    • But why!?

    • [gijs] We have a bunch of things called loadURI that take strings instead of URI object references. This means we convert between strings and URIs a lot, which has both CPU and memory costs (also because we actually try to deal with arbitrary string input, not just actual URIs!). We’re trying to fix some of that in bug 1810141. The test-only change made it easier to find all the JS callsites of “production” code that is (also) called loadURI, and is more precise.

  • [mconley] Tip: keep your mochitest / xpcshell test manifests in alphabetical order, because that’s actually the order they run in. Here’s my attempt to add a linting rule to encourage this.

    • [mstriemer] Also mach addtest is a thing and you should use it! (and then you can mostly forget about the gnarly .ini files)

Headlines link