files/en-us/mozilla/firefox/releases/135/index.md
This article provides information about the changes in Firefox 135 that affect developers. Firefox 135 was released on February 4, 2025.
No notable changes
-moz-user-input CSS property allowed you to disable input fields. The property is now deprecated and has been removed (Firefox bug 1935198).JSON.parse() reviver parameter context argument: Provides access to the original JSON source text that was parsed.JSON.isRawJSON(): Tests whether a value is an object returned by JSON.rawJSON().JSON.rawJSON(): Creates a "raw JSON" object containing a piece of JSON text, which can then be included in an object to preserve the specified value when that object is stringified.To make user events more realistic and better simulate real user interactions in the browser, we have moved the action sequence processing of the Perform Actions commands in both Marionette and WebDriver BiDi from the content process to the parent process. While events are still sent synchronously from the content process, they are now triggered asynchronously via IPC calls originating from the parent process (Firefox bug 1922077).
Due to this significant change, some regressions may still exist. If you encounter any issues, please file a bug for the Remote Agent. If the regressions block test execution, you can temporarily revert to the previous behavior by setting the Firefox preference remote.events.async.enabled to false.
With the processing of actions now handled in the parent process the following issues were fixed as well:
We now support proper queuing of action sequences without race conditions. This is particularly important for WebDriver BiDi's input.performActions command, which can be called multiple times in parallel and must execute the enqueued actions sequentially (Firefox bug 1915798).
When dispatching actions, the input cancel list is now correctly updated only after the action has been successfully dispatched. Previously, if an action failed to execute, a reverse action could be left in place, leading to unexpected side effects when resetting the state of the input source (Firefox bug 1930845).
When performing actions, individual actions are now retried during dispatch, particularly in situations where a single action triggers a navigation that replaces the current browsing context (Firefox bug 1930530, Firefox bug 1930090).
When performing actions, a TypeError: can't access property "getActor", browsingContext.currentWindowGlobal is null error occurred if an action (not the last one) in the action chain closed the window, and the remaining actions were still being dispatched (Firefox bug 1932916).
Some Marionette and WebDriver BiDi commands that rely internally on a requestAnimationFrame being emitted before returning would hang if the current browsing context was navigated during their execution (Firefox bug 1937118).
format field in the browsingContext.captureScreenshot command, allowing clients to specify different file formats (image/png and image/jpeg are currently supported) and define the compression quality for screenshots (Firefox bug 1861737).F13 to F19 keys. However, extensions can't assign these keys from the commands manifest.json key. Users can also assign features to these keys using Manage Extension Shortcuts (Firefox bug 1924542)These features are newly shipped in Firefox 135 but are disabled by default. To experiment with them, search for the appropriate preference on the about:config page and set it to true. You can find more such features on the Experimental features page.