Firefox 58 for developers
This article provides information about the changes in Firefox 58 that will affect developers. Firefox 58 was released on January 23, 2018.
Changes for Web developers
Developer Tools
- The Shape Path Editor has been enabled by default for shapes generated via
clip-path
(Firefox bug 1405339). - The Network Monitor now has a button to pause/play recording of network traffic (Firefox bug 1005755).
- In the Network Monitor the "Flash" filter button is no longer available, and Flash requests are included in the "Others" filter (Firefox bug 1413540).
- The code for the old Responsive Design Mode (enabled by default pre-Firefox 52) has now been removed from the DevTools (Firefox bug 1305777). See Responsive Design Mode for information on the new tools.
- The option to view MDN docs from the CSS pane of the page inspector has been removed (Firefox bug 1382171) (was disabled since 55, Firefox bug 1352801).
HTML
No changes.
CSS
- The
font-display
descriptor is now available by default on all platforms (Firefox bug 1317445).
SVG
No changes.
JavaScript
- The
Promise.prototype.finally()
method has been implemented (Firefox bug 1019116). - The
Intl.PluralRules
object has been implemented (Firefox bug 1403318). - The
Intl.NumberFormat.prototype.formatToParts()
method has been implemented (Firefox bug 1403319). - The
Intl.DateTimeFormat
object now supports thehourCycle
option and thehc
language tag (Firefox bug 1386146). - The optional catch binding proposal has been implemented (Firefox bug 1380881).
APIs
New APIs
-
The
PerformanceNavigationTiming
API has been implemented (Firefox bug 1263722).- Gecko has also been given a pref that can be used to disable the interface if required —
dom.enable_performance_navigation_timing
, defaulting totrue
(Firefox bug 1403926).
- Gecko has also been given a pref that can be used to disable the interface if required —
DOM
- Errors reported via error objects in certain APIs — for example in the
error
property ofFileReader
,IDBRequest
, andIDBTransaction
, and when requests made via certain methods ofRTCPeerConnection
are unsuccessful — are now represented byDOMException
instances.DOMError
is now deprecated, having been removed from the DOM4 spec (Firefox bug 1120178). - The
PerformanceResourceTiming.workerStart
property is now supported (Firefox bug 1191943). - Budget-based background timeout throttling has been implemented — see Policies in place to aid background page performance for more details (Firefox bug 1377766).
DOM events
No changes.
Media and WebRTC
- The prefixed version of
HTMLMediaElement.srcObject
has been removed; make sure code is updated to use the standardsrcObject
instead ofmozSrcObject
(Firefox bug 1183495). - Using
MediaStream.addTrack()
to add tracks to a stream obtained usinggetUserMedia()
, then attempting to record the resulting stream now works as expected. Previously, only the tracks originally included in the stream returned bygetUserMedia()
were being included in the recorded media (Firefox bug 1296531). - The WebVTT
VTTRegion
interface has always been created when interpreting WebVTT files, but the resulting regions were not previously utilized. Starting in Firefox 58, they are, if you enable the preferencemedia.webvtt.regions.enabled
by setting its value totrue
.
Canvas and WebGL
-
Support for prefixed WebGL extensions has been removed (Firefox bug 1403413):
- For
MOZ_WEBGL_compressed_texture_atc
useWEBGL_compressed_texture_atc
instead. - For
MOZ_WEBGL_compressed_texture_pvrtc
useWEBGL_compressed_texture_pvrtc
instead. - For
MOZ_WEBGL_compressed_texture_s3tc
useWEBGL_compressed_texture_s3tc
instead. - For
MOZ_WEBGL_depth_texture
useWEBGL_depth_texture
instead. - For
MOZ_WEBGL_lose_context
useWEBGL_lose_context
instead.
- For
HTTP
frame-ancestors
is no longer ignored inContent-Security-Policy-Report-Only
(Firefox bug 1380755).- Firefox now implements a TLS handshake timeout with a default value of 30 seconds. The timeout value can be varied by editing the
network.http.tls-handshake-timeout
pref in about:config (Firefox bug 1393691). - The
worker-src
CSP directive has been implemented (Firefox bug 1302667). - The 425: Too Early status code and related
Early-Data
request header are now supported (Firefox bug 1406908).
Security
No changes.
Plugins
No changes.
Other
- "Add to home screen" is now supported in Firefox for Android, part of the Progressive Web Apps effort (Firefox bug 1212648).
- WebAssembly now has a tiered compiler providing load time optimizations (Firefox bug 1277562), and new streaming APIs —
WebAssembly.compileStreaming()
andWebAssembly.instantiateStreaming()
Firefox bug 1347644.
Removals from the web platform
HTML
- You can no longer nest an
<a>
element inside a<map>
element to create a hotspot region — an<area>
element needs to be used instead (Firefox bug 1317937).
CSS
-
The following proprietary Mozilla system metric pseudo-classes are no longer available to web content (Firefox bug 1396066):
:-moz-system-metric(images-in-menus)
:-moz-system-metric(mac-graphite-theme)
:-moz-system-metric(scrollbar-end-backward)
:-moz-system-metric(scrollbar-end-forward)
:-moz-system-metric(scrollbar-start-backward)
:-moz-system-metric(scrollbar-start-forward)
:-moz-system-metric(scrollbar-thumb-proportional)
:-moz-system-metric(touch-enabled)
:-moz-system-metric(windows-default-theme)
-
The following proprietary Mozilla media features are no longer available to web content (Firefox bug 1396066):
-moz-color-picker-available
-moz-is-glyph
-moz-mac-graphite-theme
-moz-mac-yosemite-theme
-moz-os-version
-moz-overlay-scrollbars
-moz-physical-home-button
-moz-scrollbar-end-backward
-moz-scrollbar-end-forward
-moz-scrollbar-start-backward
-moz-scrollbar-start-forward
-moz-scrollbar-thumb-proportional
-moz-swipe-animation-enabled
-moz-windows-accent-color-in-titlebar
-moz-windows-classic
-moz-windows-compositor
-moz-windows-default-theme
-moz-windows-glass
-moz-windows-theme
-
The proprietary Mozilla
:-moz-styleeditor-transitioning
pseudo-class is no longer available to web content (Firefox bug 1396099).
JavaScript
- The non-standard
Date.prototype.toLocaleFormat()
method has been removed (Firefox bug 818634). - The non-standard and deprecated
Object.prototype.watch()
andObject.prototype.unwatch()
methods have been removed and will no longer work (Firefox bug 638054). Consider using setters and getters or proxies instead. - The legacy Iterator protocol, the
StopIteration
object, the legacy generator functions and the non-standardFunction.prototype.isGenerator()
method have been removed. Use the ES2015 iteration protocols and standards-compliant iterators and generators instead (Firefox bug 1083482, Firefox bug 1413867, Firefox bug 1119777). - The non-standard Array comprehensions and Generator comprehensions have been removed (Firefox bug 1414340).
APIs
- The proprietary
moz-blob
andmoz-chunked-text
values of theXMLHttpRequest.responseType
property were removed completely in Firefox 58 (Firefox bug 1397145, Firefox bug 1397151, Firefox bug 1120171). - The
dom.abortController.enabled
anddom.abortController.fetch.enabled
prefs that controlled exposure of the Abort API functionality have now been removed, since those features are now enabled by default (Firefox bug 1402317). - The proprietary
mozSrcObject
property was removed in Firefox 58 (Firefox bug 1183495). Use the standardHTMLMediaElement.srcObject
property instead.
SVG
No changes.
Changes for add-on and Mozilla developers
WebExtensions
-
- browserSettings.webNotificationsDisabled has been implemented (bug 1364942)
-
- browsingData.localStorage now supports deleting localStorage by host (bug 1388428)
-
pkcs11 API to manage security devices (Bug 1357391)
-
privacy
- first party isolation can now be toggled though firstPartyIsolate (bug 1409045)
- resist fingerprinting pref can now be toggle through resistFingerprinting (bug 1397611)
-
tabs
- tabs.discard has been implemented (Bug 1322485)
- isArticle, isInReaderMode properties of Tab implemented (Bug 1381992)
- toggleReaderMode() method implemented (Bug 1381992)
- openInReaderMode option of tabs.created implemented (Bug 1408993)
- tabs.onUpdated now notifies when entering/exiting reader mode (Bug 1402921)
-
theme
- getCurrent() method to obtain current theme properties (Bug 1349944)
- onUpdated method to receive WebExtension theme updates (Bug 1349944)
- colors.bookmark_text now supported as alias of colors.toolbar_text (Bug 1412595)
- colors.toolbar_top_separator, colors.toolbar_bottom_separator and colors.toolbar_vertical_separator implemented (Bug 1347190)
-
webRequest
- webRequest.onBeforeRequest now includes a "frameAncestors" parameter
Older versions
- 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
- Firefox 34 for developers
- Firefox 33 for developers
- Firefox 32 for developers
- Firefox 31 for developers
- Firefox 30 for developers
- Firefox 29 for developers
- Firefox 28 for developers
- Firefox 27 for developers