Firefox 60 release notes for developers
This article provides information about the changes in Firefox 60 that will affect developers. Firefox 60 was released on May 9, 2018.
Stylo comes to Firefox for Android in 60
Firefox's new parallel CSS engine — also known as Quantum CSS or Stylo — which was first enabled by default in Firefox 57 for desktop, has now been enabled in Firefox for Android.
Changes for web developers
>Developer tools
- In the CSS Pane rules view (see Examine and edit CSS), the keyboard shortcuts for precise value increments (increase/decrease by 0.1) have changed from
Alt+Up/DowntoCtrl+Up/Downon Linux and Windows, to avoid clashes with default OS-level shortcuts (see Firefox bug 1413314). - Also in the CSS Pane rules view, CSS variable names will now auto-complete (Firefox bug 1422635). If you enter
var(into a property value and then type a dash (-), any variables you have declared in your CSS will then appear in an autocomplete list. - In Responsive Design Mode, a Reload when… dropdown has been added to allow users to enable/disable automatic page reloads when touch simulation is toggled, or simulated user agent is changed. See Controlling page reload behavior for more details (Firefox bug 1428816).
- The
view_source.tabpreference has been removed so you can no longer toggle View Source mode between appearing in a new tab or new window. Page sources will always appear in new tabs from now on (Firefox bug 1418403).
HTML
Pressing the Enter key in designMode and contenteditable now inserts <div> elements when the caret is in an inline element or text node which is a child of a block level editing host — instead of inserting <br> elements like it used to. If you want to use the old behavior on your app, you can do it with document.execCommand() (Firefox bug 1430551).
CSS
- The
align-content,align-items,align-self,justify-content, andplace-contentproperty values have been updated as per the latest CSS Box Alignment Module Level 3 spec (Firefox bug 1430817). - The
paint-orderproperty has been implemented (Firefox bug 1426146).
SVG
No changes.
JavaScript
-
ECMAScript 2015 modules have been enabled by default in (Firefox bug 1438139). See ES6 In Depth: Modules and ES modules: A cartoon deep dive for more information, or consult MDN reference docs:
<script src="main.js" type="module">and<script nomodule src="fallback.js">importandexportstatements.
-
The
Array.prototype.values()method has been added again (Firefox bug 1420101). Make sure your code doesn't have any custom implementation of this method.
APIs
New APIs
- The Web Authentication API has been enabled in (Firefox bug 1432542).
DOM
- In the Web Authentication API, the
MakePublicKeyCredentialOptionsdictionary object has been renamedPublicKeyCredentialCreationOptions; this change has been made in Firefox (Firefox bug 1436473). - The
dom.workers.enabledpref has been removed, meaning workers can no longer be disabled since (Firefox bug 1434934). - The
bodyproperty is now implemented on theDocumentinterface, rather than theHTMLDocumentinterface (Firefox bug 1276438). PerformanceResourceTimingis now available in workers (Firefox bug 1425458).- The
PerformanceObserver.takeRecords()method has been implemented (Firefox bug 1436692). - The
KeyboardEvent.keyCodeattribute of punctuation key becomes non-zero even if the active keyboard layout doesn't produce ASCII characters. See these notes for more detail. Please do not useKeyboardEvent.keyCodein new applications — useKeyboardEvent.keyorKeyboardEvent.codeinstead. - The
Animation.updatePlaybackRate()method has been implemented (Firefox bug 1436659). - New rules have been included for determining keyCode values of punctuation keys (Firefox bug 1036008).
- The Gecko-only options object
storageoption of theIDBFactory.open()method has been deprecated (Firefox bug 1442560). - Promises can now be used within IndexedDB code (Firefox bug 1193394).
DOM events
No changes.
Service workers
No changes.
Media and WebRTC
- When recording or sharing media obtained using
getUserMedia(), muting the camera by setting the corresponding track'sMediaStreamTrack.enabledproperty tofalsenow turns off the camera's "in use" indicator light, to help the user more easily see that the camera is not in use (Firefox bug 1299515). See User privacy for more details. See also this blog post. - Removing a track from an
RTCPeerConnectionusingremoveTrack()no longer removes the track'sRTCRtpSenderfrom the peer connection's list of senders as reported bygetSenders()(Firefox bug 1290949). - The
RTCRtpContributingSourceandRTCRtpSynchronizationSourceobjects' timestamps were previously being reported based on values returned byDate.getTime(). In Firefox 60, these have been fixed to correctly use the Performance Timing API instead (Firefox bug 1433576). - As per spec, the
ConvolverNode()constructor now throws aNotSupportedErrorDOMExceptionif the referencedAudioBufferdoes not have 1, 2, or 4 channels (Firefox bug 1443228). - The obsolete
RTCPeerConnectionevent handlerRTCPeerConnection.onremovestreamhas been removed; by now you should be usingremovetrackevents instead (Firefox bug 1442385). - The primary name for
RTCDataChannelis now in factRTCDataChannel, instead of being an alias forDataChannel. The nameDataChannelis no longer supported (Firefox bug 1173851).
Canvas and WebGL
- If the
privacy.resistFingerprintingpreference is set totrue, theWEBGL_debug_renderer_infoWebGL extension will be disabled from now on (Firefox bug 1337157).
CSSOM
No changes.
HTTP
SameSitecookies are now supported (Firefox bug 795346). SeeSet-Cookiefor more information.
Security
The X-Content-Type-Options header, when set to no-sniff, now follows the specification for JavaScript MIME types. In particular, text/json and application/json are no longer valid values (Firefox bug 1431095).
Plugins
No changes.
Other
Fetches that include credentials can now share connections with fetches that don't include credentials. For example, if the same origin requests some web fonts as well as some credentialed user data from the same CDN, both could share a connection, potentially leading to a quicker turnaround (Firefox bug 1363284).
Removals from the web platform
>HTML
No changes.
CSS
- The proprietary
-moz-user-inputproperty'senabledanddisabledvalues are no longer available (Firefox bug 1405087). - The proprietary
-moz-border-top-colors,-moz-border-right-colors,-moz-border-bottom-colors, and-moz-border-left-colorsproperties have been removed from the platform completely (Firefox bug 1429723).
JavaScript
The non-standard expression closure syntax has been removed (Firefox bug 1426519).
APIs
No changes.
SVG
No changes.
Other
No changes.
Changes for add-on and Mozilla developers
>WebExtensions
Theme API:
- headerURL is now optional
- When creating a browser theme, any
text-shadowapplied to the header text is removed if noheaderURLis specified (see Firefox bug 1404688). - New properties are supported:
- tab_line
- tab_selected
- popup
- popup_border
- popup_text
- tab_loading
- icons
- icons_attention
- frame_inactive
- button_background_active
- button_background_hover