Firefox 66 for developers

This article provides information about the changes in Firefox 66 that will affect developers. Firefox 66 was released on March 19, 2019.

Changes for web developers

Developer tools


  • UTF-8-encoded HTML (and plain text) files loaded from file: URLs are now supported without <meta charset="utf-8"> or the UTF-8 BOM, making it easier to work on such files locally before uploading them to a server. You still need to make sure that the server sends charset=utf-8 in the Content-Type HTTP header for such files, otherwise the detection mechanism used for local files would break incremental loading in the network case (Firefox bug 1071816).




No additions.



No changes.


New APIs/changes

  • Autoplaying audio will be blocked by default soon after 66 becomes the release version of Firefox (Firefox bug 1487844, see Firefox bug 1535667 for rollout details). The feature will be rolled out gradually to users until everyone has it.


DOM events

  • The InputEvent.inputType property has been implemented (Firefox bug 1447239).
  • The Window.event and Event.returnValue properties — originally proprietary IE features, then also supported across other browsers for compatibility purposes — have been re-introduced in Firefox 66, after first being added in versions 63 and 64 respectively but then removed again due to compatibility issues.
  • From 66 onwards, when the KeyboardEvent.keyCode property of the keypress event object is 0, the value will be the same as KeyboardEvent.charCode. Conversely, when charCode is 0, it will be the same as keyCode. This mirroring behavior matches other browsers and is expected to solve most associated compatibility issues, however user agent sniffing might cause further issues in some JavaScript libraries. Note that in spec terms, we've switched from the split model to the conflated model (see How to determine keyCode for keypress events in the UI Event spec).

Media, Web Audio, and WebRTC

  • The new AV1 video codec is now enabled by default on both macOS and Windows (for Intel processors). Linux support will come in Firefox 67 (Firefox bug 1521181, Firefox bug 1452146, and Firefox bug 1534814).
  • The MediaDevices method getDisplayMedia(), available as navigator.mediaDevices.getDisplayMedia(), has been added and synchronized with the specification. This method lets you capture a screen or part of a screen as a MediaStream for manipulation or sharing (Firefox bug 1321221).
  • As a step toward eventually deprecating the Firefox-specific getUserMedia()-based method for capturing screen and window contents, the non-standard mediaSource constraint now treats the values screen and window identically. Both now present a list of both screens and windows for the user to choose from (Firefox bug 1474376).
  • qpSum has been added to local outbound RTCRTPStreamStats objects. This measures the total of the Quantization Parameter values for every frame sent or received on the video track. The higher this number, the more compressed the stream probably is (Firefox bug 1347070).
  • In a step along the road toward implementing support for Feature Policy in a future Firefox update, getUserMedia() can no longer be used in situations in which there is no proper origin for the content, such as when called from a sandboxed <iframe> or from a data URL entered into the address bar by the user. For more details, see the Security section on the MediaDevices.getUserMedia() page (Firefox bug 1371741).


  • The legacy WebRTC PeerConnection.getStats() method has been removed, along with associated types (Firefox bug 1328194).



No changes.


No changes.

WebDriver conformance (Marionette)

API changes

  • WebDriver:NewWindow has been added to support opening of a new browsing context, which can be one of either window or tab (Firefox bug 1504756).
  • WebDriver:SwitchToFrame now raises a no such element error if the specified element isn't part of the current browsing context (Firefox bug 1517196).
  • WebDriver:ExecuteScript and WebDriver:ExecuteAsyncScript no longer support the non-spec compliant scriptTimeout parameter. Instead, use WebDriver:SetTimeout or the timeouts capability to define this value (Firefox bug 1510929).
  • WebDriver:SetWindowRect no longer returns the window state in its response (Firefox bug 1517587).

Bug fixes

Changes for add-on developers

API changes

  • Extension menu items of the "bookmark" type will also appear in the Bookmarks sidebar (Ctrl + B) and Library window (Ctrl + Shift + B) (Firefox bug 1419195).

Manifest changes

No changes.

See also

Older versions