Firefox/Meeting/9-July-2024
Friends of the Firefox team
Resolved bugs (excluding employees)
Script to find new contributors from bug list
Volunteers that fixed more than one bug
- Sebastian Zartner [:sebo]
New contributors (đ = first patch)
- Will be filled in after the meeting
General triage
Project Updates
Add-ons / Web Extensions
WebExtensions Framework
As part of follow ups to the Manifest V3 improvements:
Investigated and fixed issues related to the event page lifetime and event page ability to be respawned by persisted event listeners, and improve Manifest V3 background script reliability (Bug 1905505, Bug 1905153, Bug 1830144)
Fixed a bug related to the extension buttonâs âattention dotâ, which was making it always shown for Manifest V3 extensions with an activeTab permission (Bug 1851083
- Fixed theme API internal issue that could make the add-on database to grow unnecessarily (Bug 1830136)
Fixed zooming on the extension devtools panels (Bug 1583716)
Thanks to Gregory Pappas for contributing this fix!
- Fixed extension sidebar bug leading extension sidebar to always be open automatically on add-on updates and reloads (Bug 1892667)
WebExtension APIs
- Fixed a downloads API regression that was preventing files containing % character from being saved successfully (Bug 1898498)
- From Firefox 129, declarativeNetRequest API rules will be able to intercept and modify web requests originate from web pages loaded from a file: URI (Bug 1887869)
Addon Manager & about:addons
- Checkbox that allows users to grant access to private browsing windows as part of the install flow has been moved to the first install dialog in Firefox 129 (Bug 1842832).
DevTools
DevTools Toolbox
- Sebastian Zartner added warning for inactive CSS for resize (#1551579), box-sizing (#1583894), float-related (#1551580) and table-related (#1868788) properties in the Rules view
- Valentin Gosu fixed a NetworkError that could happen for fetch calls when Responsive Design Mode was enabled (#1885308)
- Brad Werth fixed a Browser crash that was occurring when displaying the highlighter for flexbox items (#1901233)
- Arai fixed Debugger pretty-printing when there was escape sequence inside template literals (#1905653)
- Alexandre massively improved performance through the whole toolbox (-50% on Webconsole reload, -20% on heavy console logging, -15% on Debugger step-in) by throttling some events (#1824726)
- Alexandre is still working on improving the JS tracer. The max depth can now be set through a pref (#1903791), and when recording to the profiler, the stack chart panel is selected instead of the call tree (#1903792)
- Julian made network blocking from DevTools actually block the request, not only the response (#1756770)
- Nicolas fixed an issue in the Rules view that could break the style of the page when writing property values with quotes (#1904752)
- Alexandre fixed a nasty bug that could prevent DevTools to open (#1903980)
Nicolas made some interactive elements in the Inspector keyboard focusable:
- Nicolas Watch expression input is missing focus indicator (#1904339)
- Nicolas landed a few patches to start supporting high Contrast Mode in DevTools (#1904764, #1904765, #1904839)
Nicolas Indicate @starting-style CSS custom properties value in var() tooltip (#1897931)
- Nicolas Don't retrieve @starting-style rules in the Rules view until Bug 1905035 is fixed (#1906228)
Nicolas added information for registered properties (aka @property) in the Computed panel:
- Hubert is almost done migrating the Debugger to CodeMirror 6. All major features are now supported and we're only looking at smaller bugs and test failures before enabling it on Nightly (#1904488)
WebDriver BiDi
External:
Thanks to James Hendry for removing the deprecated "desiredCapabilities" and "requiredCapabilities" from geckodriver (#1823907)
- Thanks to :haik and to everyone involved on Bug 1893921 for solving a sandboxing issue with the latest macos arm workers provided for Github actions. This was preventing several projects using Github actions to run their CI on Firefox.
- Before diving into updates, a quick reminder that the team just completed Milestone 11. In this milestone we implemented all the remaining commands, arguments and events required to support Puppeteer, and we are happy to announce that we reached 100% of tests passing on https://puppeteer.github.io/ispuppeteerwebdriverbidiready/. This is the result of a long effort and collaboration with our peers from the Puppeteer team, and thanks to this we hope to see more Puppeteer users running tests in Firefox.
Updates:
Sasha and Henrik implemented the network.setCacheBehavior command, which allows to disable the network cache either globally or for a set of top-level browsing contexts. This is particularly useful to ensure consistent network behavior during repeated tests (#1901032 and #1906100)
Sasha added support for the "originalOpener" field in BrowsingContextInfo, which allows clients to find the opener of a given browsing context, even if it was opened using "rel=noopener". (#1898004)
Julian added support for all arguments to the "network.provideResponse" command, for requests blocked in the "beforeRequestSent" phase. Clients can now build a custom response to any request by providing its body, headers, cookies, status code and status phrase. This way users can easily mock backend responses without having to change their server. (#1853882)
Sasha added support for network events using data URLs. At the moment we only emit events for data URLs requests used to load a document, but we will follow up to add support for all requests to data URLs. (#1805176)
Henrik implemented the handler field of the browsingContext.userPromptOpened event which will indicate the configured prompt handler for the opened prompt (eg "accept", "dismiss" etcâŠ). (#1904822)
Henrik added support for "beforeunload" prompts, which can now be handled as any other prompt in WebDriver BiDi sessions (they are still automatically dismissed in WebDriver classic sessions). (#1824220)
Henrik added support for the "promptUnload" argument to the browsingContext.close command, which allows to skip beforeunload prompts. (#1862380)
Henrik updated the default value of the "remote.active-protocols" preference to "1", which means that from now on, CDP (Chrome DevTools Protocol) is no longer enabled by default. If clients still want to enable it, they can either set this preference to "2" (CDP only) or "3" (WebDriver BiDi + CDP). This is a temporary step before CDP is fully disabled and removed from Firefox around the end of the year. (#1882089)
Bug fixes (read-only):
Julian fixed a bug with network.continueRequest where you could not provide multiple values for a single header name (#1904379)
Julian fixed an issue with authentication flows where we would emit too many network.responseCompleted events. This is still being discussed on the spec side and might change in the future, but for now having a single event to mark the end of the authentication is easier to handle for WebDriver BiDi clients. (#1906106)
Henrik fixed a bug in browsingContext.navigate where the command would resolve too early if a script was performing a history navigation via a "beforeunload" event listener. (#1879163)
Sasha updated browsingContext.userPromptOpened to always contain the "defaultValue" for prompts of type "prompt". (#1859814)
Henrik updated the browser.close command to silently discard all beforeunload prompts when closing the browser. (#1873196)
Lint, Docs and Workflow
- Fixed an issue when using the git hooks, the l10n linter set-up wouldn't complete.
Flat Config - Preparations to switch to the new flat configuration in ESLint.
Moved rule definitions for JSMs out of eslint-plugin-mozilla to the top-level .eslintrc.js.
- These are now only required for a few test files until we remove JSM support, so we don't need them in e-p-m.
Moved some more files under test/ directories which also enabled centralising more rules in the general-test configuration.
Migration Improvements
We just closed the metabug for creating the single-file archive! This is because we now:
Create a single-file archive (optionally encrypted)
The single-file archive is a specially prepared HTML page that provides instructions on how to recover from it when viewed in Firefox, and download links for Firefox when viewed in other browsers.
Moves the single-file archive into a user-configured directory
Generates the backup in the background, relatively quickly. Right now, itâs created maximum once an hour when thereâs at least 5 minutes of user idle time.
- The team is focusing on getting the UI for managing and configuring backups completed, as well as doing cleanup, measurement and maintenance bugs
Picture-in-Picture
- Thanks to Joseph Liang, we now have a policy in place to reposition the Picture-in-Picture toggle on Hulu to move it out of the way of the Hulu controls container
Search
- Mortiz fixed a bug to not allow for empty search using search bar one-off buttons. Bug 1904014,
- Mortiz is helping with post search-config-v2 clean up and removed icons from extensions thatâs no longer used, and removed SearchEngine.searchForm Bug 1895873, Bug 1903247
Scotch Bonnet / Address Bar Refresh initiative
Daleâs working on a dedicated search button. Itâs in Nightly. Bug 1903146, Bug 1903145
PREF for dedicated search button browser.urlbar.scotchBonnet.enableOverride
- Dale added localized string for âShow Trendingâ suggestion preference. Bug 1906103
- James and Karandeep have been making schema updates on persist search terms. Bug 1901518, Bug 1901519, Bug 1904911
Address bar
- Yazan fixed accessibility issue where urlbar-zoom-button announcement did not indicate the zoom can be reset to 100% Bug 1882564
- Daisuke fixed the search mode chiclet close button so itâs visible in dark mode. Bug 1905572
Suggest
- Drew enabled Yelp suggestions by default in 129 for users enrolled in Suggest Bug 906185
Storybook/Reusable Components
Thanks to the following contributors:
timw for fixing Bug 1904108 - Add space tokens to moz-toggle.css
Louismascari for fixing Bug 1904110 - Add space tokens to moz-page-nav-button.css
Lee.isaacy for fixing Bug 1904113 - Add space tokens to moz-message-bar.css
This week I learned
[Nicolas] DevTools-theme-aware styled console messages
https://developer.mozilla.org/en-US/docs/Web/API/console#styling_console_output
console.log("%cHello", "color: #222;")
issue if DevTools is in dark mode, the text isn't visible
light-dark to the rescue:
console.log("%cHello", "color: light-dark(#222, #ccc);")