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
(bug 1405339). - The Network Monitor now has a button to pause/play recording of network traffic (bug 1005755).
- In the Network Monitor the "Flash" filter button is no longer available, and Flash requests are included in the "Others" filter (bug 1413540).
- The code for the old Responsive Design Mode (enabled by default pre-Firefox 52) has now been removed from the Devtools (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 (bug 1382171) (was disabled since 55, bug 1352801).
HTML
No changes.
CSS
- The
font-display
descriptor is now available by default on all platforms (bug 1317445).
SVG
No changes.
JavaScript
- The
Promise.prototype.finally()
method has been implemented (bug 1019116). - The
Intl.PluralRules
object has been implemented (bug 1403318). - The
Intl.NumberFormat.prototype.formatToParts()
method has been implemented (bug 1403319). - The
Intl.DateTimeFormat
object now supports thehourCycle
option and thehc
language tag (bug 1386146). - The optional catch binding proposal has been implemented (bug 1380881).
APIs
New APIs
- The
PerformanceNavigationTiming
API has been implemented (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
(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 (bug 1120178). - The
PerformanceResourceTiming.workerStart
property is now supported (bug 1191943). - Budget-based background timeout throttling has been implemented — see Policies in place to aid background page performance for more details (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
(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 (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 (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
(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 (bug 1393691). - The
worker-src
CSP directive has been implemented (bug 1302667). - The 425: Too Early status code and related
Early-Data
request header are now supported (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 (bug 1212648).
- WebAssembly now has a tiered compiler providing load time optimizations (bug 1277562), and new streaming APIs —
WebAssembly.compileStreaming()
andWebAssembly.installStreaming()
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 (bug 1317937).
CSS
- The following proprietary Mozilla system metric pseudo-classes are no longer available to web content (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 (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 (bug 1396099).
JavaScript
- The non-standard
Date.prototype.toLocaleFormat()
method has been removed (bug 818634). See Warning: Date.prototype.toLocaleFormat is deprecated for more information and migration help. - The non-standard and deprecated
Object.prototype.watch()
andunwatch()
methods have been removed and will no longer work (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 (bug 1083482, bug 1413867, bug 1119777). - The non-standard Array comprehensions and Generator comprehensions have been removed (bug 1414340).
APIs
- The proprietary
moz-blob
andmoz-chunked-text
values of theXMLHttpRequest.responseType
property were removed completely in Firefox 58 (bug 1397145, bug 1397151, 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 (bug 1402317). - The proprietary
mozSrcObject
property was removed in Firefox 58 (bug 1183495). Use the standardHTMLMediaElement.srcObject
property instead.
SVG
No changes.
Changes for add-on and Mozilla developers
WebExtensions
- browserSettings
- browserSettings.webNotificationsDisabled has been implemented (bug 1364942)
- browsingData
- 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
发布评论