Firefox/Meeting/30-Nov-2021
From MozillaWiki
Contents
- 1 Friends of the Firefox team
- 2 Project Updates
- 2.1 Add-ons / Web Extensions
- 2.2 Downloads Panel
- 2.3 Fission
- 2.4 Form Autofill
- 2.5 High-Contrast Mode (MSU Capstone project)
- 2.6 Desktop Integrations (Installer & Updater)
- 2.7 Lint, Docs and Workflow
- 2.8 macOS Spotlight
- 2.9 PDFs & Printing
- 2.10 Picture-in-Picture
- 2.11 Performance
- 2.12 Performance Tools
- 2.13 Search and Navigation
- 3 This week I learned
Friends of the Firefox team
Introductions/Shout-Outs
- [jaws] 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)
- đ Kian updated nsBrowserGlue.js to use weak references when adding observers
- đ RaphaĂ«l Ferrand applied new classnames as you type in the .cls section of the rule-view
- đ Jake Gealer added migration from Brave
- Danielle Lamoureux removed remaining (non-negated) -moz-proton media queries
- Shaoting Huang updated certificate error page action buttons to match Figma spec in high contrast mode
- Tawah Peggy removed lodash union usage
- Clinton removed lodash uniq usage
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
- 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
- This is also the first enhancement to the WebExtensions APIs coming directly from the W3C Community Group! (https://github.com/w3c/webextensions/issues/12)
- As part of the ongoing ManifestVersion 3 work, Will 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
- mtigley made it a little easier to follow the download autolaunch code by renaming `LaunchWithApplication` to `SetDownloadToLaunch`.
- mtigley fixed a Nightly (improvements-pref specific) issue where files were created twice when selecting a save destination using the file picker
- Ava landed the first UI piece for showing blocked downloads in the panel. This feature is still very much WIP, so test at your own risk:.
- Behind browser.download.enable_spam_prevention preference
- Currently working on saving whether or not user will allow blocking downloads per site
- kpatenio is working on fixing the âAlways Open Similar Filesâ context menu item showing intermittently
- Neil and Sam have improved the flow around PDFs being downloaded/opened.
- Content-Disposition: attachment pdfs will now open in PDF.js if available.
- Clicking the save/download button on Nightly now prompts for a location instead of opening another tab with PDF.js
Fission
- Rollout to 100% on release is almost done!
Form Autofill
- :dimi resolved a performance issue in our autofill heuristics that was causing noticeable jank when focusing fields in certain situations
- :dimi closed out an intermittent where there was an internal state desync between form autofill and the login manager
- :tgiles fixed an issue where form autofill was not recognizing the card holder name on Amazon.de
- :tgiles fixed an issue where the credit card name heuristic was not generic enough for Amazonâs other localized sites
- :tgiles fixed an issue where the expiry date on ebay.de was not autofilled correctly
High-Contrast Mode (MSU Capstone project)
- Noah fixed a UI glitch for the PiP toggle button
- Danielle removed remaining usages of `-moz-proton-` media queries from our codebase! đđđ
Desktop Integrations (Installer & Updater)
- MSIX developer improvements:
- `./mach repackage msix --sign` will produce a usable MSIX package in most cases
- Some documentation updates, including debugging information.
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.
PDFs & Printing
- Bug 1740630 - Printing selection from parent process browsers is broken and disabled
- Bug 1661663 - Popular sites prevent the print preview Margins menu from working (users need a way to override @page margins)
Picture-in-Picture
- Weâll be kicking off an Outreachy project next week! Molly, Katherine, and Micah will be mentoring the project. See metabug for this project to follow along.
- kpatenio is working on making it possible for PiP to handle transition between âautoplayâ videos
Performance
- Shout-out to mtigley who figured out a ~19% tp5 responsiveness issue caused by an earlier Downloads Panel bug
Performance Tools
- 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.
- 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.
This week I learned
- [harry] ./mach watch + Quick restart
- ./mach watch watches the filesystem for changes and builds incrementally every time you save a file. If youâre working in-content, just reload the page in your local build to see your changes. If youâre working in chrome, Quick restart (Ctrl+Alt+R/Cmd+Opt+R) to see your changes.
- [mconley] Quick restart keyboard shortcuts are preferred over Ctrl-C (since that immediately kills the process and can cause you to lose session data)
- ./mach watch watches the filesystem for changes and builds incrementally every time you save a file. If youâre working in-content, just reload the page in your local build to see your changes. If youâre working in chrome, Quick restart (Ctrl+Alt+R/Cmd+Opt+R) to see your changes.
- [gijs] Windows mozilla-build feedback wanted!
- Mandy Cheang [mcheang]
- Within a browser.ini file, what do the variables support-files, skip-if, run-if and etc. represent? Is there documentation for these variables and the values I can assign to them?
- [mak] Thereâs some documentation here https://firefox-source-docs.mozilla.org/mozbase/manifestparser.html and https://firefox-source-docs.mozilla.org/build/buildsystem/test_manifests.html
- [bhearsum] Variables available to things like skip-if and run-if are dumped in logs, underneath âThese variables are available in the mozinfo environment and can be used to skip tests conditionallyâ
- Example file: https://searchfox.org/mozilla-central/source/browser/components/urlbar/tests/browser/browser.ini
- [mconley] Basically a Mozilla-made-up set of directives on when to run tests, when not to, what support files to include in the test directory, what preferences to flip, etc.
- Within a browser.ini file, what do the variables support-files, skip-if, run-if and etc. represent? Is there documentation for these variables and the values I can assign to them?
- [mconley]
- We just got some new Set-math capabilities landed in tree: union, intersection, difference, and more!
- Since these are really fresh, we should probably wait a cycle or two before we start considering using them in our own production code. When in doubt, ask the JS team.
- [mconley] The `./mach create-mach-environment` bug is fixed in latest mozilla-central, if you pull.
- Thank you!
- [mak] Windows Terminal is nice and works well with mozilla-build, it has tabs, some better coloring support and opacity and better link support and so on⊠It is open source! Can install from Microsoft Store.
- [mconley] Can this be used as a full replacement for the MinGW shell?
- [jaws] Yes
- Tears of joy
- [gijs] 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)
- [cbellini] Add Nerd Fonts and Terminal Icons for even more Windows Terminal awesomeness (source)
- [jaws] Yes
- [mconley] Can this be used as a full replacement for the MinGW shell?