Firefox/Meeting/21-Sep-2021
Today’s meeting leader is: emalysz
Contents
- 1 General Topics / Roundtable
- 2 Friends of the Firefox team
- 3 Introductions/Shout-Outs
- 4 Resolved bugs (excluding employees)
- 5 Fixed more than one bug
- 6 New contributors (🌟 = first patch)
- 7 Project Updates
- 7.1 Add-ons / Web Extensions
- 7.2 Downloads Panel
- 7.3 Fission
- 7.4 Fluent
- 7.5 Form Autofill
- 7.6 High-Contrast Mode (MSU Capstone project)
- 7.7 Lint, Docs and Workflow
- 7.8 macOS Spotlight
- 7.9 New Tab Page
- 7.10 Nimbus / Experiments
- 7.11 Password Manager
- 7.12 PDFs & Printing
- 7.13 Performance
- 7.14 Performance Tools
- 7.15 Proton
- 7.16 Search and Navigation
- 7.17 Screenshots
General Topics / Roundtable
- [standard8] Please ensure your mentored bugs are up to date, and in a clear state for being picked up by potential contributors.Please also take a look at the Firefox and Toolkit mentored bugs where the mentors have now left - are there any bugs you'd be willing to take over mentorship for, or that are just not relevant now?
Friends of the Firefox team
Introductions/Shout-Outs
- [mconley] Welcome Yasmin Shash and Hanna Jones!
- [vchin] Welcome to Amir who has started as Desktop Integrations EM!
For contributions from September 8th to September 21st 2021, inclusive.
Resolved bugs (excluding employees)
Fixed more than one bug
- Antonin Loubiere
- Itiel
New contributors (🌟 = first patch)
- 🌟 Colin Cazabet fixed a highlighting bug in devtools
- 🌟 Shaoting Huang renamed a warning icon variable
- 🌟 Noah Pesta removed default icon styles
Project Updates
Add-ons / Web Extensions
WebExtensions Framework
Starting from Firefox 94, a new “ExtensionSchemas” profile marker is collected from the calls to Schemas.load (including the url to the JSONSchema file being loaded and if it has been loaded from file or startupCache) - Bug 1728245
Example profiles from Bug 1728461 comment 21:
- Fixed multi-account-containers addon regression in Firefox 94 (related to the changes landed in 94 from Bug 1708243) - Bug 1729395
Downloads Panel
- Katherine and Molly have been fixing a bunch of tests for enabling the downloads modal removal work in Nightly (currently behind the browser.download.improvements_to_download_panel pref)
Fission
- A reminder of what Fission is
- We now have a small set of users on the release channel using Fission!
- Telemetry so far doesn’t show any problems with stability or performance. We’re keeping an eye on it.
Fluent
Milestone 1 has been completed! All DTDs have been removed from browser.xhtml!
As a bonus, this also means that all DTDs have been removed from the startup path, which was a goal for Milestone 2!
- Congratulations to Katherine and Niklas for finally getting us over this milestone!
Form Autofill
Thanks to :emilio for making form autofill use a semi-transparent background-image rather than a filter
Using filter was causing absolutely positioned elements to disappear, such as credit card logos in this case
- :tgiles fixed credit card preview and autofill not working as expected on fnac.com
High-Contrast Mode (MSU Capstone project)
- Noah [:pestanoa] is ensuring that hovering over downloads panel icons are visible when HCM is enabled
- Shao [:huangs50] is investigating that the checkbox’s focus outline in the “Edit Bookmarks” panel is visible for HCM
- Danielle [:lamoure6] is looking into fixing contrast styling for the tabs bar buttons
- Avi [:pasulaav] is looking into certificate error page buttons lacking contrast when hovered over
Lint, Docs and Workflow
- Our ESLint mozilla/use-services rule now covers defineLazyServiceGetter(s) as well as Cc[].getService().
- We've also just changed defineLazyScriptGetter, defineLazyServiceGetter and friends to allow passing of globalThis as well as this. This should allow use within es6 modules.
macOS Spotlight
- Window spotlight buttons will now be on the correct side in RTL builds: bugs 1633860 & 1419375.
Experimental improvements to video power consumption will land soon in bug 1653417.
Fullscreen Youtube video on macOS consumes only 80% of the power it otherwise would.
Pref: gfx.core-animation.specialize-video. Expect breakage! For example, controls will not yet appear in fullscreen.
- We noticed some users unfamiliar with macOS conventions were running Firefox directly from its DMG file. This can result in data loss and slow startup times, since Firefox is not fully installed. We now show a message warning the user in this scenario (bug 516362).
New Tab Page
- New tab redesign has officially graduated. Old design pref & related code removed. Bug 1710937 👏
- CSS variables simplified & cleanup. Allowing for easier theming (bug 1727319, 1726432, 1727321)
- The ntp_text theme API property was broken, and now it isn’t! Bug 1713778 - ntp_text theme property does not change the font color of the new tab page
Nimbus / Experiments
- Bug 1730924 We want to update the Ajv JSON schema validator in tree
Password Manager
PDFs & Printing
- Emily has a patch that adjusts the orientation depending on the page-size
- Hanna cleaned up the margins error message to only show two decimal places Bug 1670871
- Hanna disabled some animations that happened when prefers-reduced-motion was enabled in the print dialog Bug 1723989
Performance
- Gijs has filed some bugs to make process flipping less likely when Fission is enabled
- We’ve been seeing a slow but steady decline in the percentage of clients on Nightly seeing tab switch spinners. This might be related to Fission, WebRender, hardware churn, or might be a measurement artifact due to old builds sending telemetry. We’re not sure.
- Thanks to jstutte for landing a patch that removes some main thread IO during startup when checking if we need to be doing an LMDB migration!
Performance Tools
You can now profile a process with only a single click in the about:processes. It will automatically record the 5 seconds and open up the Firefox Profiler UI. Depending on the machines, it can fail if it times out to capture a profile for now. You can use toolkit.aboutProcesses.profileDuration pref to reduce the profiling duration to workaround this for now.
Example workflow of one-click profiling.[mconley] This is great! Good for getting profiles from users that might not want to enable the full-blown Firefox Profiler toolbar button.
- Thanks to our contributor, mhansen, Linux perf profiles now include different colors for kernel vs user stack frames.
Before and after of an example linux perf profile
Proton
Lots of cleanup work done by MSU students over the hack weekend!
Noah [:pestanoa] removed default icon styles from info-pages.css’ .title class and is also working on updating the ID of the “Browser Tools” menubar item
Shao [:huangs50] renamed the --panel-banner-item-warning-icon-bgcolor variable
Danielle [:lamoure6] is removing the remaining -moz-proton media queries and its media query implementation
Jack [:yingjunj] is removing the last fragments of code manually checking the browser.proton.enabled pref
Avi [:pasulaav] is renaming the .small class to .small-button
- Drew enabled the Firefox Suggest offline scenario for en-* users in the US region and made some tweaks to the Address Bar preferences UI
- Daisuke fixed a regression where the Address Bar was not providing switch-tab results when history results were disabled - Bug 1477895
Screenshots
- Niklas has a patch up to honor the screenshots.browser.component.enabled pref value for the screenshots shortcut
- Niklas is also working on adding a screenshot of the the current viewport to the new screenshots UI
- Jared investigated a screenshots error with raw pages
This week I learned
- [mconley] We have BrowserTestUtils.waitForMutationCondition, which is really handy for when you want to wait for the DOM to reach some state. Better than TestUtils.waitForCondition since it doesn’t depend on random polling.
[kpatenio] You can run startup profile selection menu with local build of firefox using the -P parameter, and that there’s a mozilla.org wiki
Example: `./mach run -P`
Also handy:
- `./mach run --profile /tmp/foo` (will create a new profile at that directory or reuse it)
- `./mach run --temp-profile` (get a brand new profile each time)
- `./mach run --temp-profile --setpref foo=true --setpref bar=true` (brand new profile and get it into the state for testing a feature)