The DevTools team has improved Pretty Printing performance in the Debugger by ~30%! This improvement is available in Beta and currently slated to go out in Firefox 111.
Mak has changed the frecency (the URL bar ranking algorithm) recalculation to happen on idle, rather than immediately when bookmarks are added/removed, or when visits are removed. This allows for more performant recalculation during large operations!
Daisuke has completed the conversion of bookmarks from the old Places notifications to new ones, and has finally removed the nsINavBookmarksObserver interface. The new notifications, originally designed with the help of Doug Thayer from the Perf Team, are much more performant and detailed, and will improve the performance of history and bookmarks consumers.
Our WebExtensions team has made it easier for extension authors to migrate from Manifest V2 to Manifest V3:
Bug 1811443 (landed in Firefox 111) introduced an optional “background.type” manifest property that can be set to either “classic” or “module”. When set to “module”, all the background scripts are loaded as ES Modules in the auto-generated background and event pages
All of the Colorways are now available as themes at addons.mozilla.org. If there was one you never got to try, now’s your chance!
fanie renamed ExperimentManager's getAllActive and getAllRollouts functions
Malte Jürgens now takes `extensions.getAddons.showPane` into consideration when clicking on empty unified extensions button
Nolan Ishii added 'variant 2' version of the main selector page for the migration wizard
🌟 portiawuu converted AboutPrivateBrowsing* and browser/components/attribution JSM modules to ESMs and added branding assets for each browser that can be imported from
steven w removed cookies migration (except for FirefoxProfileMigrator) and added a Cancel and Done button to the bottom of the progress page of the migration wizard
Colorway built-in themes migration:
A brief mention about the Colorway themes migrating to AMO is in the Firefox 110 release notes
Colorway closet section in about:addons themes list view has been disabled along with the last active colorways collection reaching its expire date - Bug 1801044
Enabling Colorway built-in themes to be migrated to themes hosted on addons.mozilla.org (gated by an about:config pref, disabled by default) - Bug 1806701, Bug 1810231
QA verifications on the Colorway migration has been completed and is is now enabled by default and riding the Firefox 111 release train (Bug 1808589)
As part of fixing a regression (originally introduced in Firefox 96 by Bug 1675456) in Bug 1792559, we landed an initial (partial) fix for the issue with extension exceptions raised from a WebExtensions API event listener being missing from the add-on debugging toolbox (which technically is logged in the Browser Console when the multiprocess mode is enabled, but logged without the expected source url and line number from the extension code raising the exception in the error stack trace)
Bug 1792559 is a partial fix because, without further changes, we can’t include the full error stack from the original exception (in particular when the extension code is throwing “undefined” or an object that is not an instance of “Error”). Bug 1810582 is tracking further follow-ups to achieve a more comprehensive fix.
Bug 1808459 made sure that if the “extensions.getAddons.showPane” pref is set to “false” then clicking the extensions button when there is no extension installed is going to open the about:addons “extensions list” view instead of opening the about:addons “recommendation” view (which is disabled by the pref).
Thanks to Malte Jürgens for contributing the fix!
Bug 1795213 fixed a Fluent error logged when the add-on install popup was being disabled (as a side note: besides the fluent error being logged, there wasn’t any issue from a user perspective)
As part of the ongoing work on the declarativeNetRequest API:
Bug 1811947 introduced a permission warning for the “declarativeNetRequestFeedback” permission
Bug 1816319 exposed the API namespace properties for the DYNAMIC_RULESET_ID and SESSION_RULESET_ID constants
Christian Sonne landed a patch to display subgrid in the auto-complete suggestions for grid-template-* and grid properties in the Rules view (bug)
Caption: The CSS rule pane from the Inspector DevTool is shown, with a "grid-template" rule selected. "subgrid" is shown as an item in an autocomplete panel.
Emilio fixed an issue that would leave the page in a weird state when closing Responsive Design Mode (bug)
Arai fixed eager evaluation so it does not assume getters are effect-free anymore (bug)
Nicolas added support for “Change array by copy” methods in eager evaluation (bug)
Alex made it possible (again) to select or click html response in the Network panel (bug)
Hubert is working on the Debugger “Search in all files” feature:
We now show results from minified and pretty-printed tabs (bug), as well as matches from node_modules folder (bug)
We don’t search within files that are blackboxed anymore (bug)
Caption: A side-by-side comparison of the DevTools Debugger search result pane for Firefox 110 and 111. In the former, a search query is showing no results. In the latter, several results are appearing because they match strings contained within the source files.
Sasha added support for two new commands script.addPreloadScript (bug) and script.removePreloadScript (bug) to schedule scripts guaranteed to run before any other content script (used by test frameworks to preload helpers for instance).
Sasha fixed a bug which prevented us from using preload scripts and events simultaneously (bug)
Henrik released a new version of geckodriver v0.32.2 which fixes a semver issue introduced with the previous version (bug).
We’ve crossed the half-way mark! Over 50% of the tree converted to ESMs, over 50% of browser/ as well
Total: 53.5% (up from 47.1%)
#esmification on Matrix
Migration Document (with a walkthrough!)
Steven got rid of cookie migration for most of our migrators. This resource migration type was always a bit finicky, and ran the risk of importing tracking cookies, or cookies that still wouldn’t allow the user to maintain their existing sessions because of the User Agent change. Migrating cookies during a Firefox Reset still works.
Steven also added “Cancel” and “Done” buttons for the “progress” page of the new migration wizard.
Nolan implemented the second variant for the new migration dialog, which makes it easier and simpler for users to select to migrate all resource types by default (while still allowing them to disable individual ones). We will be experimenting with this variant along with the default variant once this ships by default.
Portia added branding assets for each browser that we migrate from. This will be used to show icons for those browsers in the new migration wizard.
More exciting upcoming things:
Bryan and Alvin are getting quite close with favicon import for Safari and Chrome-based browsers. The students are in the midst of writing automated tests.
Ani has a working solution for importing from Chromium on Ubuntu when Chromium is installed as a Snap package (and when Firefox is not installed as a Snap package). This patch is currently going through review cycles.
We believe we have a solution for importing when Firefox is installed as a Snap package, and will begin on that next.
Brian is working on showing an error message when no other browser/profile pairs can be found to import from.
Portia is adding the new rich browser/profile selection dropdown to the new MigrationWizard, powered by the <panel-list> reusable component.
Zach is still working on getting credit cards stored in Chrome imported into Firefox’s credit card database (presuming the user has authorized Firefox to do so)
Janvi updated our AirMozilla wrapper so that the play/pause and mute buttons sync up
Niklas fixed an issue where PiP controls don’t hide after adjusting PiP font settings
Niklas landed a patch that ensures that PiP dimensions and position are saved after closing full screen mode when video src changes
kpatenio made the PiP window easier to move if the PiP window is of a smaller dimension
Improved timer markers make it easier to see what timers are running when and at which frequency. Add the Timer thread to the thread filter to see them. Example profile
Caption: The marker chart from the Firefox Profiler UI is shown, with a large series of timers being displayed in the char. The markers show the timer duration as text on top of the marker.
has added a new Learn More option to the result menu of history results in the URL bar
has fixed a bug with the menu not disappearing
has also improved high contrast mode. The feature has been enabled in early beta for testing purposes.
Standard8 has cleaned up some search service code: Bug 1800892, Bug 1815842, Bug 1815911
Standard8 has solved a problem with the list of search engines in Preferences having duplicate entries after a Restore Defaults
James has resolved a bug where permission prompts would not properly anchor to the URL bar when the persisted search terms feature is enabled
James has resolved a visual problem with the Got It button in urlbar tips looking focused even if it was not
Daisuke has added telemetry to understand how often users dismiss autofill text in the urlbar input field. This will allow us to experiment with new URL bar autofill features.
Stephanie improved search telemetry.
Ryan Johnson has corrected a few articles on SUMO that were returning a Not Found error when reached from urlbar tips.
Gregory Pappas has removed results limit for omnibox WebExtension providers, to align the behaviour with other browsers
Storybook instance where you can see the pseudo locales in action
Caption: An animated GIF showing the Storybook tool with the new Migration Wizard component selected. The animation shows a mouse cursor selecting various Fluent pseudolocales to simulate long strings as well as RTL languages.
tgiles is working on adding our existing Storybook documentation to Firefox Source Docs
mconley, Neil, jteow and fchasen are this month’s Firefox / Toolkit :: General triagers!
[gijs] Last week I changed the APIs used to load URLs into browsers! I posted an overview to fx-dev. TL;DR: loadURI takes a URI now (not a string). Prefer passing URIs over passing strings. Use BrowserTestUtils for tests (which still takes strings for ~everything).
For performance reasons, we’ll be transitioning various callsites to use URIs, to reduce the frequency with which we convert from strings to URIs and then throw the URI away and do the same thing again, and again.
[gijs] Yesterday, I landed a patch that adds 2 desktop-frontend-focused try presets. You can now use one of these commands to run frontend-focused tests only. The first only runs mochitest-browser-chrome, the second also runs xpcshell and a few other tests, on desktop only:
./mach try --preset mochitest-bc --artifact
./mach try --preset desktop-frontend --artifact
You can also filter this further, e.g. if you know your patch only touches Windows, with something like:
./mach try --preset desktop-frontend --artifact -xq "windows"
[mconley] I added a rule to make it so that mochitest manifests should always be in alphabetical order. That sounds like a pedantic thing, but it’s really so that the manifest listing matches the execution order so that it’s easier to use --start-at and --end-at . Rule violations are currently a warning, but I’d like to transition all existing manifests to alphabetical, and then switch it to an Error. Let me know if you want to help out! Tracking meta bug. Special thanks to kcochrane for the first alphabetical-izing review.
[mconley] Google Docs seems to pay attention to single-backticks for code snippets, and triple-backticks for code snippets. On a new line, use triple-backticks and press enter. (You must enable this by going to Tools > Preferences and checking “Automatically detect Markdown”).
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,