Categories: News

These Weeks in Firefox: Issue 105


  • Starting from Firefox 96, a new “browser.runtime.getFrameId” method allows an extension content script to retrieve the frameId associated to a WindowProxy of an embedder DOM element (e.g. frame, object etc) – Bug 1733104
  • We published the Performance Tools Newsletter for Q3 2021. You can find it here if you are curious about the things we’ve worked on in Q3.
  • We have improved the flow around PDFs being downloaded/opened.
    • Content-Disposition: attachment pdfs will now open in PDF.js if it’s available.
    • Clicking the save/download button on Nightly now prompts for a location instead of opening another tab with PDF.js
  • Are you a volunteer contributor on Windows 10 or up? Good news! mozilla-build works with the latest version of the Windows Terminal, which is a much improved experience over using the old default terminal.
    • Features include:
    • You can set it up to just run the mozilla-build start-shell script inside of it.
      • New profile in settings, set command line to C:\mozilla-build\start-shell.bat (or wherever your start-shell.bat is)


Friends of the Firefox team


  • Introducing Chris Bellini, a new Engineering Manager for the Search / New Tab team!

Resolved bugs (excluding employees)

Fixed more than one bug

  • Ava Katushka
  • Evgenia Kotovich
  • Geoff Lankow (:darktrojan)
  • Mathew Hodson

New contributors (🌟 = first patch)

Project Updates

Add-ons / Web Extensions

Addon Manager & about:addons
  • As part of Fission related changes for the WebExtensions and AddonManager internals, one more of the remaining framescripts has been removed (and we got a small but still good improvement on the Base Content JS perftest \o/) – Bug 1708193
WebExtensions Framework
  • Fixed a leak due to the ExpandedPrincipal and nsCSPContext keeping a strong reference to each other – Bug 1741600
    • This leak was only happening with content scripts defined by a “manifest_version: 3” addon, and so never actually triggered in release, our tests caught it first.
WebExtension APIs
  • As part of the ongoing ManifestVersion 3 work, William Durand landed in Firefox 96 the initial bits of the new “browser.scripting” API – Bug 1740601
    • This API requires the new “scripting” permission and it is currently only allowed in “manifest_version: 3” extension manifests (and so also locked behind the about:config preference “extensions.manifestV3.enabled”)
    • The work for “scripting” API namespace is tracked by the Bug 1687764 meta

Downloads Panel


  • Rollout to 100% on release is almost done!

Form Autofill

High-Contrast Mode (MSU Capstone project)

Desktop Integrations (Installer & Updater)

Lint, Docs and Workflow

  • Standard8 enabled ESLint rules no-undef and no-unused-vars on xhtml files under dom/.
    • This also found a broken test which was largely not running due to errors which were caught and hidden due to the test’s use of promise chaining and not checking the exceptions of thrown errors.

macOS Spotlight

  • Work is underway to support Apple’s Screen Time API. This lets you define time-based and/or parental control limits for certain webpages. When you’ve reached the limit, across all your devices, an overlay will occlude the webpage. Don’t worry: this is an opt-in feature at the OS level and the overlay can be dismissed.
  • We’re working on fixing issues where the video power consumption improvements from a few weeks ago were actually regressing power consumption on older Macs. Those improvements are disabled on affected Macs while we investigate.




Search and Navigation

  • Mandy Cheang [mcheang] improved copying partial URLs from the Address Bar so that the resulting url is encoded (note: there is a browser.urlbar.decodeURLsOnCopy pref to change the Address Bar behavior) – Bug 1539511
  • Drew has landed various improvements to Firefox Suggest and enabled the Merino service (Mozilla owned server for suggestions) for users who opted-in.

No comments yet

Post a comment

Leave a Reply

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