Highlights
- Lots of great Firefox DevTools updates!
- Alex tweaked our server to client communication which should bring significant performance improvement across the whole toolbox
- Nicolas improved performance of the Inspector Rules view by 50% when displaying deeply nested rules
- Nicolas fixed a 10 year old bug by displaying the CSS Specificity of selectors when hovering them in the Rules view
- Bomsy made great progress on migrating the Debugger to CodeMirror 6 (#1878647, #1884651,#1886419, #1889281, #1889284, #1890269, #1891336, #1894725, #1897922)
- we should be at parity with the previous version, so if you could enable devtools.debugger.features.codemirror-next and report any issue you see, that would be great!
- By the way, we want to enable devtools.debugger.features.windowless-service-workers by default, so you can debug Service Workers directly in the debugger (without going to about:debugging). We’re still looking for feedback, so if you’re working with Service Workers, please foxfood this pref and report any issue you encountered 🙂
- Henrik published a blog post about the upcoming CDP (Chrome DevTools Protocol) deprecation in Firefox, which you can read here. The plan is to start disabling CDP by default in Firefox 129 and fully remove CDP support by the end of the year
- Dale landed a patch to enable Google trending suggestions and recent searches on the release channel for Firefox 128!
Friends of the Firefox team
Resolved bugs (excluding employees)
Volunteers that fixed more than one bug
- Pier Angelo Vendrame
- Sebastian Zartner [:sebo]
- Sukhmeet[:sukh]
New contributors (🌟 = first patch)
- Sukhmeet[:sukh] removed browser.firefox-view.search.enabled preference and removed unused code snippets in FormAutoFill
Project Updates
Add-ons / Web Extensions
WebExtension APIs
- As part of the cross-browser compatibility improvements for Manifest Version 3 extensions landed in Firefox 128:
- Content scripts can now be executed in the webpage global using the execution world MAIN (which is now supported by the scripting API and content scripts declared in the manifest.json file) and not be blocked by a strict webpage CSP (Bug 1736575)
- NOTE: content scripts executed in the MAIN world do not have access to any WebExtensions API.
- Added support for domainType (“firstParty”, “thirdParty”) DNR rule conditions (Bug 1797408)
- Performance related improvement on evaluating DNR rules using requestDomains and initiatorDomains conditions (Bug 1853569)
- Event pages will not be suspended if API calls that require user actions (e.g. permissions.request API calls) are still pending (Bug 1844044 / Bug 1874406)
- Event pages persisted listeners removed through the removeListener method will stay persisted and can respawn the event page after it has been suspended (Bug 1869125)
- NOTE: API events persisted listeners will instead be completely removed (not persisted anymore and not respawning the event page anymore) if the extension event page scripts do not add the listeners again (by not calling addListener) when the event page is started again.
- Content scripts can now be executed in the webpage global using the execution world MAIN (which is now supported by the scripting API and content scripts declared in the manifest.json file) and not be blocked by a strict webpage CSP (Bug 1736575)
Developer Tools
DevTools
- Sebastian Zartner [:sebo] added warning when properties only applying to replaced elements are used on non-replaced elements (#1583903), and when column-span is used on elements outside of multi-column containers (#1848705)
- Thanks to Valentin Gosu [:valentin] for fixing an issue that failing service worker requests when Responsive Design Mode was enabled (#1885308)
- Thanks James Teh [:Jamie] for fixing an accessibility issue in the DevTools accessibility tree (#1898661)
- Alex fixed an issue that could prevent DevTools to open (#1898490)
- Julian fixed an issue that was preventing DevTools to consume sourcemaps files when they required credentials (#1899389)
- Nicolas tweaked the filters button colors in Console and Netmonitor so their states should be more explicit (#1590432)
- Nicolas added @property rules (MDN) information in the var() tooltip (#1899489)
- And we now indicate when custom property declaration are invalid when their value does not match registered custom property definition (#1866712)
- Nicolas added support for @starting-style rules (MDN) in the Rules view (#1892192)
- Thanks a lot to Boris Chiou [:boris] for working on the platform patch that made this possible (#1893409)
- Nicolas added support for @scope rules (MDN) in the Rules view (#1893593)
WebDriver BiDi
- External:
- Thanks to James Hendry who removed the deprecated desiredCapabilities and requiredCapabilities from geckodriver (#1823907)
- Related to that, Henrik updated the default value of the remote.active-protocols preference to “1”, which means that CDP is now disabled by default (#1882089)
- Henrik implemented support for the http and bidi flags on the WebDriver Session, which allows to know if a specific session is using classic, bidi or both. (#1884090 and #1898719)
- Julian added support for several arguments of the network.continueRequest command. Clients can now update headers, cookies, method and post body of an intercepted request. This also fixes a bug where intercepted requests in the beforeRequestSent phase could still be sent to the server (#1850680)
- Sasha fixed the order in which we emit network events in case of redirects. Our behavior now correctly matches the specifications (#1879580)
- Sasha implemented the userContext argument for the permissions.setPermission command which allows to update a permission only for a specific user context (#1894217)
- Henrik improved the way we handle error pages in the navigation helpers used by WebDriver BiDi (#1878690)
- Sasha updated the exception thrown when the input.setFiles command is used with a file which doesn’t exist. (#1887644)
- Sasha updated our vendored version of puppeteer to v22.9.0. As usual we try to keep up to date with Puppeteer releases to benefit from their latest test changes and improvements in BiDi support. (#1897183)
Lint, Docs and Workflow
- Some more files (in toolkit/) have been transitioned to use the .worker.(m)js file name system to automatically pick up the worker environment for ESLint.
- Nick fixed an issue where mach lint might not run lints on Windows due to case differences in the drive name.
Migration Improvements
- There are patches up for review that allow for exporting backups to a single-file archive, add the mechanism for encrypting backups and adds support for recovering from a single-file archive
- fchasen has a patch up for review for the dialog for restoring from a backup
- kpatenio has patches up for the dialog for disabling backups and for disabling backup encryption
- You can follow along with the root metabug here
- We’re almost at the point where we have end-to-end backup and recovery in a testable spot! As a reminder, this is not yet production ready, and might change dramatically before it’s ready to be used.
Performance
- mconley has patches up to make the Windows Jump List do off-main-thread favicon caching, and to remove the legacy main-thread backend altogether.
Profile Management
- Initial work on the toolkit profile service and profile database is in review. Engineering work is pausing for two weeks to free up engineers for some Review Checker work.
Search and Navigation
- HTTPS trimming in the address bar
- Marco fixed a bug related to displaying the scheme for RTL (right-to-left) domains (1862404)
- Google account signed-in status
- Search Config v2
- Bug fixes, clean up and intermittents
- We completed a significant number of one-off bug fixes, intermittent test failure fixes and code clean up. Special shout out to patches from Yazan, our team’s new co-op student and to Moritz, our team’s new student worker.
- 1610530,1626741, 1841769, 1860753, 1890761, 1893228, 1894910, 1898437, 1898711, 1900321, 1900575, 1900601,1901069
Storybook/Reusable Components
- Thanks to pierov for fixing an issue where placeholders on the datetime widget ignore spoof English
- Thanks to Irene Ni for cleaning up some CSS tokens in moz-card
- We have two new components in development: moz-radio/moz-radio-group and moz-checkbox.
- We now only do synchronous imports after the DOMContentLoaded event in order to fix a regression in about:preferences (Bug 1896837)
- Planning on fixing an issue in MozLitElement where Fluent wasn’t getting the data-l10n-attrs set quickly enough. See the following for more details: Bug 1901336 – Support setting fluent attrs in MozLitElement property definitions
No comments yet
Post a comment