Screenshots is getting an overhaul for Nightly! Check it out by flipping the `screenshots.browser.component.enabled` pref.
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!
Script to find new contributors from bug list
Thanks Johannes Bechberger for your continued work on the Firefox Profiler.
ben.freist
Itiel
Nolan Ishii
Rob Lemley [:rjl]
Zach Harris
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
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)
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)
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).
[Screenshot]
https://snipboard.io/2WDfTB.jpg
Click on the icon next to the name to select it in the inspector (bug).
Nicolas also updated the Style Editor's "Media Queries" sidebar to show all "At-rules": @container, @media and @support (bug).
[Screenshot]
https://snipboard.io/xSo2IN.jpg
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).
[Screenshot]
https://snipboard.io/0FQnwv.jpg
In the Network Monitor, Hubert added a feature to copy requests in a new format: "Copy as PowerShell" (bug)
[Screenshot]
https://snipboard.io/kRM8Na.jpg
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).
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).
browser: 39.1%
toolkit: 29.1%
Total: 38.4% (up from 31.1%)
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.
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:
Florian fixed an issue where the PiP window wasn't set to inactive
Emilio resolved an issue where scrollbars appeared on the PiP window
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
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.
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
We’re starting to identify and burn down the list of blocking issues to ship the new component implementation and replace the extension implementation
General triage: Drew, Molly, Sam and DJ are this month’s triagers!
[mconley] Tips for growing new reviewers!
Step 1: Find someone you’d like to grow into a reviewer and let them know your intent
Step 2: For something you’ve been assigned a review for, mark the person from Step 1 as a blocking reviewer along with yourself
Step 3: Do an initial review of the patch(es) and note down in a review what you think the person from Step 1 should look at / watch out for
Step 4: Person from Step 1 does a review
Step 5: Then you do a full review of the patch(es). Bonus points if you set up a meeting and review the patch(es) in a Zoom meeting live in front of the person from Step 1 so that they can see what you’re doing.
[standard8] Cu.reportError does not support multiple arguments like console.error does. The second argument to Cu.reportError is for a stack.
Generally prefer console.error unless you know you have a specific case for reportError (if so, please let Standard8 know).
reportError doesn't report stdout unlike console.error (if devtools.console.stdout.* preference is set)
There is a bug about replacing Cu.reportError with console.error, that Standard8 is likely to get progressed via ESLint roll-out.
[mconley] moz-phab submit -m “Applying fixes”
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,
Niklas