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
- JavaScript getters can now be executed from the auto-completion popup in the Web Console (Firefox bug 1499289).
- The Window methods
alert()
,prompt()
, andconfirm()
now work again in Responsive Design Mode, after a period of being broken (Firefox bug 1273997). - You can copy the output of the console to the clipboard by right-clicking and selecting "Export visible messages to clipboard" from the context menu.
HTML
- 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 sendscharset=utf-8
in theContent-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).
Removals
- The
x-moz-errormessage
attribute has been removed from the<input>
element (Firefox bug 1513890). You should use the constraint validation API to implement custom validation messages instead.
CSS
-
Scroll anchoring has been implemented in Firefox Desktop (but not mobile yet), which includes the
overflow-anchor
property (Firefox bug 1305957). -
We've implemented the case-sensitive attribute selector modifier,
s
(Firefox bug 1512386). -
Several logical property shorthands have landed, along with the flow-relative border radius properties:
padding-block
andpadding-inline
(Firefox bug 1519847).margin-block
andmargin-inline
(Firefox bug 1519944).inset
,inset-block
, andinset-inline
(Firefox bug 1520229).border-block-color
,border-block-style
,border-block-width
,border-inline-color
,border-inline-style
, andborder-inline-width
(Firefox bug 1520236).border-block
andborder-inline
(Firefox bug 1520396).border-start-start-radius
,border-start-end-radius
,border-end-start-radius
, andborder-end-end-radius
(Firefox bug 1520684).
-
We implemented the
overflow-inline
andoverflow-block
media queries (Firefox bug 1422235). -
grid-template-columns
andgrid-template-rows
are now animatable, as per the rules set out in their specs (Firefox bug 1348519). -
We now support
calc()
with percentages for table cells and column widths (Firefox bug 957915). -
The
min-content
andmax-content
keywords are now available unprefixed (Firefox bug 1322780). These can be set on:
SVG
JavaScript
No changes.
APIs
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
- The
HTMLSlotElement.assignedElements()
method has been implemented (Firefox bug 1425685). - The
TextEncoder.encodeInto()
method has been implemented (Firefox bug 1514664).
DOM events
- The
InputEvent.inputType
property has been implemented (Firefox bug 1447239). - The
Window.event
andEvent.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 thekeypress
event object is 0, the value will be the same asKeyboardEvent.charCode
. Conversely, whencharCode
is 0, it will be the same askeyCode
. 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
methodgetDisplayMedia()
, available asnavigator.mediaDevices.getDisplayMedia()
, has been added and synchronized with the specification. This method lets you capture a screen or part of a screen as aMediaStream
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-standardmediaSource
constraint now treats the valuesscreen
andwindow
identically. Both now present a list of both screens and windows for the user to choose from (Firefox bug 1474376). RTCOutboundRtpStreamStats.qpSum
has been added. 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 adata
URL entered into the address bar by the user. For more details, see the Security section on the MediaDevices.getUserMedia() page (Firefox bug 1371741).
Removals
- The legacy WebRTC
PeerConnection.getStats()
method has been removed, along with associated types (Firefox bug 1328194).
Networking
- The default value of the
Accept
header has been changed to*/*
(Firefox bug 1417463).
Security
No changes.
Plugins
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 ano such element
error if the specified element isn't part of the current browsing context (Firefox bug 1517196). -
WebDriver:ExecuteScript
andWebDriver:ExecuteAsyncScript
no longer support the non-spec compliantscriptTimeout
parameter. Instead, useWebDriver:SetTimeout
or thetimeouts
capability to define this value (Firefox bug 1510929).- In addition, indefinite script timeouts are now supported (Firefox bug 1128997).
-
WebDriver:SetWindowRect
no longer returns the window state in its response (Firefox bug 1517587).
Bug fixes
WebDriver:TakeScreenshot
now uses theElement.clientWidth
andElement.clientHeight
properties of theDocument.documentElement
instead of the viewport dimensions (Firefox bug 1385706).- Various fixes have been applied to make window manipulation commands more reliable across platforms (Firefox bug 1522408, Firefox bug 1478358, Firefox bug 1489955).
Changes for add-on developers
API changes
Menus
- 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
- Hacks release post: Firefox 66: The Sound of Silence
Older versions
- Firefox 65 for developers
- Firefox 64 for developers
- Firefox 63 for developers
- Firefox 62 for developers
- Firefox 61 for developers
- Firefox 60 for developers
- Firefox 59 for developers
- Firefox 58 for developers
- Firefox 57 for developers
- Firefox 56 for developers
- Firefox 55 for developers
- Firefox 54 for developers
- Firefox 53 for developers
- Firefox 52 for developers
- Firefox 51 for developers
- Firefox 50 for developers
- Firefox 49 for developers
- Firefox 48 for developers
- Firefox 47 for developers
- Firefox 46 for developers
- Firefox 45 for developers
- Firefox 44 for developers
- Firefox 43 for developers
- Firefox 42 for developers
- Firefox 41 for developers
- Firefox 40 for developers
- Firefox 39 for developers
- Firefox 38 for developers
- Firefox 37 for developers
- Firefox 36 for developers
- Firefox 35 for developers