Highlights
- Screenshots is getting an overhaul for Nightly! Check it out by flipping the `screenshots.browser.component.enabled`
- We’re starting to assemble and line up ideas for next steps for Screenshots. If you are a heavy screenshots-taker – or think you would be if only Screenshots did x – please tell us about x. We’re in #fx-screenshots in matrix, or you can post to connect.mozilla.org or file a bug in bugzilla.
- Thanks to Nolan Ishii from CalState LA for adding new migrators for Opera and for Vivaldi!
- You can test these by setting `browser.migrate.opera.enabled` and `browser.migrate.vivaldi.enabled` to true, and then opening the importer dialog from (Alt-f > Import from another browser on Windows, File > Import from another browser on macOS and Linux)
- Note that you’ll need Opera or Vivaldi installed in order for them to appear in the migrator dialog.
- Notice any bugs? You can file them here.
- HBO Max and TubiTV captions support have been fixed for Picture-in-Picture. Thanks to Niklas (1,2) and kpatenio (1) for their patches.
- The Performance Tools team put together a great blog post summarising their progress in Q3
- A huge thank you to Francis (:mckenfra) who landed a patch that speeds up deleting from history by 7,000% in some cases!
- On Francis’ machine, deleting 2000 entries went from taking about 73 seconds down to roughly 1 second! Wow!
Friends of the Firefox team
Resolved bugs (excluding employees)
Script to find new contributors from bug list
Volunteers that fixed more than one bug
- Thanks Johannes Bechberger for your continued work on the Firefox Profiler.
- ben.freist
- Itiel
- Nolan Ishii
- Rob Lemley [:rjl]
- Zach Harris
New contributors (🌟 = first patch)
- Thanks Kitsu and Simmo Saan for your first patches in the Firefox Profiler.
- Angel Villalobos made it so that Chrome bookmarks import now imports the contents of the other bookmarks folder and puts them in the Other Bookmarks folder in Firefox
- ben.freist removed unused nsStyleBreaks defines and removed unused nsStylePage and nsStyleText defines
- Nolan Ishii made it possible import data from Opera and made it possible to import from Vivaldi
- Zach Harris made it possible to import favicons from Internet Explorer and converted AboutPocket* from JSM to ESM
Project Updates
Add-ons / Web Extensions
WebExtensions Framework
- As part of the work related to “Origin Controls “ and “Unified Extensions UI”:
- browserAction widgets have been integrated into the “Unified Extensions” panel (and browserAction widgets pinned on the toolbar to be auto-overflowed into the “Unified Extensions” panel): Bug 1784947, Bug 1797155, Bug 1798324, Bug 1797548, Bug 1799842
- Added origin controls attention indicator to the “Unified Extensions” button: Bug 1793629
- Others related follow-ups: Bug 1799203, Bug 1799143, Bug 1798968, Bug 1796559, Bug 1799497, Bug 1798777, Bug 1796987, Bug 1794427
- Thanks a lot to mconley, dao and Itiel for their help on the work needed on the Firefox Desktop frontend side of this project
- “applications” manifest key is fully deprecated (and not supported anymore) in Manifest Version 3 extensions, superseded by the existing “browser_specific_settings” manifest.json property – Bug 1797050
- Please do not use the “applications” key in manifest.json files anymore
- Bug 1797777 – Tracking meta for updating all non-test extensions in tree to use “browser_specific_settings” in their manifest
- In Firefox >= 108, a simplified extension version string format is now recommended (warnings only but AMO/addons-linter will enforce this new format for Manifest Version 3 extensions) – Bug 1793925
- Updated manifest.json version format documentation: https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/version#version_format
- Fixed a regression on calling “confirm” from extension action popups (regression originally introduced in Firefox 107 from Bug 1791972, fix landed Firefox 108 and uplifted to 107) – Bug 1796972
- Investigated and identified underlying issues of the regression reported on LastPass in Firefox Nightly 108 Bug 1791415 – LastPass extension not working
- Turned out that the regression was triggered by the addition of the implementation for the JS Array grouping proposal (Bug 1739648)
- Regression currently fixed by disabling the Array grouping proposal by default in Nightly (Bug 1799619)
WebExtension APIs
- Lifting user activation requirement on the action.openPopup API method (to align it with Chromium and Safari per agreement between browser vendors part of the W3C WebExtensions Community Group) – Bug 1755763
- Currently limited on Nightly builds (locked behind the “extensions.openPopupWithoutUserGesture.enabled” about:config pref)
- Bug 1799344 is tracking removing the pref and enabling the new behavior on all channels.
- Fixed an issue with browser.runtime.onStartup not being fired on event pages after the event page got suspended once – Bug 1796586
- As part of the ongoing work on the declarativeNetRequest API, Bug 1745758 has introduced an initial version of the declarativeNetRequest rule evaluation logic (Bug 1745761 is tracking hooking up the rule evaluation logic to the network)
Developer Tools
DevTools
- Big thanks go out to:
- :luke.swiderski, DOM mutation breakpoints are correctly synchronised between Inspector and Debugger panels (bug).
- :zacnomore who fixed a JSON Viewer bug, which now correctly checks key modifiers before handling a keyboard shortcut (bug).
- :zacnomore updated the toolbar height of the JSON Viewer to be consistent with the rest of our Toolbox UI (bug).
- Emilio, who fixed several UI issues around flexbox in DevTools as soon as they were reported (bug 1, bug 2, bug 3)
- Container queries
- Nicolas (:nchevobbe) improved Container Queries support in the Inspector’s Rule View:
- Hover on the container’s information to get more details in a tooltip (bug).
https://snipboard.io/2WDfTB.jpg - Click on the icon next to the name to select it in the inspector (bug).
- Hover on the container’s information to get more details in a tooltip (bug).
- Nicolas also updated the Style Editor’s “Media Queries” sidebar to show all “At-rules”: @container, @media and @support (bug).
https://snipboard.io/xSo2IN.jpg
- Nicolas (:nchevobbe) improved Container Queries support in the Inspector’s Rule View:
- Improvements
- Hubert (:bomsy) improved the Debugger’s Pretty Print availability. The feature should now be more consistently available, and in the few cases where it really can’t be provided, the icon is still visible but disabled with an explanatory tooltip (bug).
https://snipboard.io/0FQnwv.jpg - In the Network Monitor, Hubert added a feature to copy requests in a new format: “Copy as PowerShell” (bug)
https://snipboard.io/kRM8Na.jpg
- Hubert (:bomsy) improved the Debugger’s Pretty Print availability. The feature should now be more consistently available, and in the few cases where it really can’t be provided, the icon is still visible but disabled with an explanatory tooltip (bug).
- Maintenance
- Alex (:ochameau) removed the devtools-source-map bundle (bug, bug), which was manually built and checked-in by our team, and used the occasion to add performance tests for our sourcemap usage (bug, bug)
- Hubert also fixed a memory leak in our sourcemap implementation (bug).
- Alex fixed a regression where DevTools would no longer close when Firefox was closed (bug).
- Julian (:jdescottes) fixed a bug where the Inspector’s RuleView was blank when trying to render very long base64 URLs (bug).
- Julian fixed the Add New Rule feature of the Inspector, which no longer worked on websites with CSPs (bug).
WebDriver BiDi
- Sasha (:sasha) implemented a new event browsingContext.domContentLoaded, which is emitted when the document becomes interactive (bug).
- Henrik (:whimboo) changed WebDriver BiDi to write the connection information to a JSON file called “WebDriverBiDiServer.json”, which provides more details than the previous “WebDriverBiDiActivePort” (bug).
- Henrik contributed many new web platform tests for “no such element” errors (bug)
- Henrik fixed WebDriver:NewWindow to open new tabs on about:blank instead of about:newtab (bug)
- Henrik updated the serialisation of Document objects to follow the current WebDriver Classic specification and stop serialising them as WebElements (bug).
ESMification status
- ESMified status:
- browser: 39.1%
- toolkit: 29.1%
- Total: 38.4% (up from 31.1%)
- #esmification on Matrix
- Migration Document (with a walkthrough!)
Lint, Docs and Workflow
- storybook and devtools now use mjs file extensions for module files
- Simpler for ESLint and allows to enable more rules
- Fixed an issue when having storybook’s node_modules installed, ./mach eslint would run forever.
- Running the eslint-plugin-mozilla tests now gives better output for failures.
- Python imports are now required to be sorted.
Migration Improvements (CalState LA Project)
- Zach Harris made it so that when we import bookmarks from Internet Explorer, we import the favicons as well!
- Angel Villalobos made it so that “Other Bookmarks” imported from Chrome go into the “Other Bookmarks” folder in Firefox, rather than the “Bookmarks Menu” folder
- Brian Pham cleaned up an old pref for a rollout that we did years ago
- Work underway:
Picture-in-Picture
- Florian fixed an issue where the PiP window wasn’t set to inactive
- Emilio resolved an issue where scrollbars appeared on the PiP window
Performance
- Florian made it so that the GPU process is always at the same priority level as the parent process on Windows
- Florian also made it so that background tab processes get put into Efficiency Mode on Windows
Performance Tools (aka Firefox Profiler)
- added 2 new transforms: collapse indirect recursion, and focus category
- Reminder: transforms are available from the right-click menu in the call tree, flame graph or stack chart. They transform the call tree to make it simpler to read.
- (#4232) Collapse indirect recursion: this removes the nodes if they end up calling the same function. For example: From A -> B -> C -> A -> D, this keeps only A -> D. Thanks Simmo Saan!
- (#4212) Focus category: this will keep only the nodes that belong to the same category as the currently right clicked node. Thanks Johannes Bechberger!
- (#4286) add an item to show all local tracks for a process, and make that double clicking on the global track in the menu also shows all its local tracks.
- (#4292) show the CPU model in the profile info panel
- (#4295) sort the extensions list in the profile info panel
- (#4296) fix a bug in the linux perf converter where single-letter executables wouldn’t be parsed. From our contributor Kitsu.
- (#4305) display a blue border for selected tracks
- (#4193) display categories in the flame graph’s tooltip — only available for converters, not available for gecko profiles yet. The style for the graphs in the tooltip changed for everybody though. From our contributor Johannes Bechberger.
- (#4261) The sourceview is now focusable, which makes it possible to copy paste text out of it.
- (#4199) When moving between panels, the sidebar categories stays open (previously the state was forgotten). Thanks Johannes Bechberger!
- (Bug 1788647) When we profile browsertime runs in our CI, the names in the generated zip were previously pretty bad. Now they should be much clearer.
- Then your usual crash fixes and dependency updates, and some other minor or invisible changes.
Search and Navigation
- Volunteer mkohler removed specific keyed scalars and standard8 removed telemetry recorded in SEARCH_COUNTS since both were covered by newer keyed scalars.
- mcheang finished a substantial rework on how search engines are references in SearchService whereby they are now referenced by a unique id rather than by name.
- Moving forward when trying to get an engine outside SearchService prefer getEngineById(engineId) over getEngineByName(engineName).
- jteow added a handful of patches related to an experiment to persist the search term in the urlbar while viewing a default search engine results page.
- dharvey added the ability for Quick Suggest to handle whether or not a suggestion from Merino is a top pick.
- adw did refactors in Quick Suggest in preparation for upcoming future work:
- Moved unrelated/loosely related code from UrlbarProviderQuickSuggest and UrlbarQuickSuggest into QuickSuggest (The core quick suggest module that is the external initialization point), QuickSuggestRemoteSettingsClient (manages Quick Suggest remote settings data such as configuration and suggestions), and UrlbarProviderQuickSuggest (a urlbar provider which records related engagement telemetry when a result is picked).
- Create a new BaseFeature class to make it easier to toggle various Quick Suggest features on/off depending on Nimbus variables and preferences.
- mak moved some of the tracked details in SearchSuggestionController into a single context object that tracks each query and functions use that object to minimize the chance of a race condition.
- dao improved UrlbarView, including converting the methods to use actual private properties and methods and making removeStaleRowsTimeout a static property
Screenshots
- We’re starting to identify and burn down the list of blocking issues to ship the new component implementation and replace the extension implementation
No comments yet
Post a comment