A Variety of Improvements At January’s End - These Weeks in Firefox: Issue 131

11 views
Skip to first unread message

Katherine Patenio

unread,
Jan 30, 2023, 11:00:10 AM1/30/23
to firef...@mozilla.org
Greetings firefox-dev,

We're back with more Firefox updates! The engineering team assembled last week to share what's new. Please see below for all the latest highlights.

Thanks to mconley, niklas and jepstein for helping put together these notes.

--

A Variety of Improvements At January’s End - These Weeks in Firefox: Issue 131

Highlights

  • Picture-in-Picture updates:

    • kpatenio updated the Dailymotion wrapper, so captions should appear again on the PiP window

    • kpatenio resolved issues where PiP touch events changed playback while toggling PiP

    • Niklas fixed the Netflix wrapper when seeking forward or backward and scrubbing

    • Niklas increased the seek bar slider clickable area, making it easier to select the scrubber with the mouse

  • The DevTools team have updated our main highlighters to use less aggressive styling when prefers-reduced-motion is enabled (bug)

Friends of the Firefox team

Introductions/Shout-Outs

  • [mconley] Introducing Jonathan Epstein (jepstein) who is coming to us from the Rally team as a new Engineering Manager! Welcome!

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)

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

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)


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)

  • 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

  • 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

Below the fold

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

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


--

This information, including all of the previous updates, are fully available in this doc: https://docs.google.com/a/mozilla.com/document/d/1u9YH3ULNRYg6G-fN-Udkvfkcvg0alJfzi_zIAfFNkL8/edit?usp=sharing.

Also note that I'm really just synthesizing and humanizing the stuff that's on the Wiki, which is freely available from here: https://wiki.mozilla.org/Firefox/Meeting, so check that out if you want the source material. It'll also be posted (minus the Below the Fold stuff) to the Nightly blog.

Finally, if there's a Firefox-ish team that you feel isn't being represented here, please let them know about the above meeting so we can get their updates.

Keep on rockin' the free web,

kpatenio
Reply all
Reply to author
Forward
0 new messages