Firefox 68 for developers 编辑
This article provides information about the changes in Firefox 68 that will affect developers. Firefox 68 was released on July 9, 2019.
Changes for web developers
Developer tools
Browser/web console
- The Web console now shows more information about CSS warnings, including a node list of the DOM elements that used the rule (bug 1093953).
- You can now filter content in the Web console using regular expressions (bug 1441079).
- The Browser console now allows you to show or hide messages from the content process by setting or clearing the checkbox labeled Show Content Messages (bug 1260877).
JavaScript debugger
- You can now Search in all files in the current project from the debugger by pressing Shift + Ctrl + F (Windows or Linux) or Shift + Cmd + F (macOS) (bug 1320325).
Network monitor
- The Network monitor request list now allows you to block a specific URL (bug 1151368).
- You can now resend a network request without editing the method, URL, parameters, and headers, using the Resend command on the context menu (bug 1422014).
- The context menu of the Network monitor Headers tab now allows you to copy all or some of the header information to the clipboard in JSON format (bug 1442249).
Page inspector
- A button has been added to the rules panel of the Page inspector that allows you to toggle the display of any print media queries (bug 1534984).
- The fonts panel now includes a slider to modify
letter-spacing
(bug 1536237). - A warning icon appears next to unsupported CSS properties or rules that have invalid values, to help you understand why certain styles are not being applied (bug 1306054).
Storage inspector
- You can now delete local and session storage entries by selecting the item in the storage inspector and pressing the backspace key (bug 1522893).
Other
- The Accessibility Inspector now includes a new Check for issues feature, which will include a number of audit tools to highlight accessibility problems on your web pages. The first available check is contrast, for highlighting color contrast problems.
- The preference that controls the visibility of internal extensions (system add-ons and hidden extensions) on the about:debugging page has been changed from
devtools.aboutdebugging.showSystemAddons
todevtools.aboutdebugging.showHiddenAddons
(bug 1544372). - Responsive design mode has been redesigned — the Device Settings dialog (device selection menu > Edit List...) is now more intuitive and simpler to use (bug 1487857).
Removals
- The "Enable add-on debugging" checkbox has been removed from the about:debugging page (bug 1544813).
HTML
- The
<track>
element — represented byHTMLTrackElement
— now receives acuechange
event in addition to theTextTrack
itself, if the text track is a contained by a media element (bug 1548731). <link>
elements support thedisabled
attribute again, albeit with different behavior. Whendisabled
is set on a<link>
element along withrel="stylesheet"
, the referenced stylesheet is not loaded during page load, and will be loaded on demand when thedisabled
attribute is changed tofalse
or removed (bug 1281135).
Removals
<meta http-equiv="set-cookie">
is no longer supported (bug 1457503).
CSS
- CSS Scroll Snapping has been updated to the latest version of the specification (bug 1312163) and (bug 1544136), this includes:
- The
scroll-padding
properties (bug 1373832) - The
scroll-margin
properties (bug 1373833) scroll-snap-align
(bug 1373835)
- The
- The
-webkit-line-clamp
property has been implemented for compatibility with other browsers (bug 866102). - Support has been added for the
::marker
pseudo-element (bug 205202) and animation for::marker
pseudos (bug 1538618) - We changed
<currentcolor>
to be a computed value (except for thecolor
property) (bug 760345). - Support has been fixed for the
ch
length unit so it now matches the spec (fallback for no '0' glyph, vertical metrics) (bug 282126) - The
counter-set
property has been implemented. (bug 1518201). - We now implement list numbering using a built-in "list-item" counter; this fixes list numbering bugs (bug 288704).
- Selector matching and parsing support has been implemented for
::part()
(bug 1545430) and (bug 1545425). - CSS Transforms are now supported in indirectly rendered things e.g.)
<mask>
,<marker>
,<pattern>
,<clipPath>
(bug 1323962). While we're keeping the prefixed versions of the various gradient properties (
linear-gradient()
,radial-gradient()
, andrepeating-radial-gradient()
available for compatibility reasons, we have revised how they're parsed so that they're handled much more like the non-prefixed versions. This means that certain existing styles won't work correctly.In particular, the complicated syntax taking both an angle and a position will no longer work, and the
to
keyword in the<side-or-corner>
parameter is not required for the prefixed gradient properties. You are encouraged to use the standard, non-prefixed gradient properties instead, as they're now widely supported (bug 1547939).
Removals
scroll-snap-coordinate
,scroll-snap-destination
,scroll-snap-type-x
andscroll-snap-type-y
have been removed.- The
scroll-snap-type
property has become a longhand, so the old shorthand syntax likescroll-snap-type:mandatory
will stop working. See the Firefox Site Compatibility note.
SVG
No changes.
JavaScript
- The new
BigInt
primitive is enabled by default (bug 1527902). - String generic methods have been removed (bug 1222552). See the deprecation warning for more information.
APIs
CSS Object Model (CSSOM)
- The legacy
rules
property andaddRule()
andremoveRule()
methods have been added to theCSSStyleSheet
interface. These were introduced by Internet Explorer 9 and have never managed to quite be stamped out, so they have been added to improve compatibility with the small percentage of sites that still use them (bug 1545823).
DOM
- The Visual Viewport API has now been enabled by default on Android (bug 1512813). Adding this API to desktop versions of Firefox is being tracked in bug 1551302.
- The
Window
featurenoreferrer
is now supported; if specified, the new window's content is loaded without sharing the hostname, IP address, URL, or other identifying information about the host device (bug 1527287). - The
decode()
method onHTMLImageElement
is now implemented. This can be used to trigger loading and decoding of an image prior to adding it to the DOM (bug 1501794). XMLHttpRequest
has been updated to no longer accept the non-standardmoz-chunked-arraybuffer
value forresponseType
. Code still using it should be updated to use the Fetch API as a stream (bug 1120171).XMLHttpRequest
now outputs a warning to console if you perform a synchronous request while handling anunload
,beforeunload
, orpagehide
event (bug 980902).- The
cookie
property has moved from theHTMLDocument
interface to theDocument
interface, allowing documents other than HTML to use cookies (bug 144795). - The
HTMLElement.focus()
andSVGElement.focus()
methods now accept an optional object that may contain a booleanpreventScroll
option specifying whether or not to block the browser from scrolling the newly-focused element into view (bug 1374045).
DOM events
- Firefox for Android no longer incorrectly sends a
resize
event until after the first frame is painted; this improves web compatibility with sites that don't expect this event to occur (bug 1528052). - The dispatching of events for non-primary mouse buttons has been made to more closely follow the specification; the
click
event is no longer sent when non-primary buttons are clicked, instead usingauxclick
. In addition,dblclick
no longer fires for non-primary buttons (bug 1379466). - The proprietary
MouseEvent.mozPressure
property has been deprecated, and will now trigger a warning in the console (bug 1165211).
Media, Web Audio, and WebRTC
- Due to changes in the Google Play store's policies, starting with Firefox 68 for Android, the OpenH264 codec used to handle AVC/H.264 video in WebRTC connections can no longer be downloaded and installed. Therefore, fresh installs of Firefox on Android devices no longer support AVC in WebRTC calls. If you upgrade from earlier versions of Firefox and already have the codec downloaded, it will continue to work. This does not affect other platforms. For more details, see this article on SUMO or bug 1548679.
- WebRTC has been updated to recognize that a
null
candidate passed into theicecandidate
event handler, indicating the receipt of a candidate, instead indicates that there are no further candidates coming; when this happens the ICE gathering (iceGatheringState
) state reachescomplete
(bug 1318167). - The
RTCRtpReceiver
methodsgetContributingSources()
andgetSynchronizationSources()
now support video tracks; previously they only worked on audio (bug 1534466). - The Web Audio API
MediaStreamTrackAudioSourceNode
interface is now supported, as is the methodAudioContext.createMediaStreamTrackSource()
(bug 1324548). RTCDataChannel.negotiated
is now implemented (bug 1529695).- The
MediaStreamAudioSourceNode()
constructor has been updated to match the current specification's definition that the "first audio track" in the stream is the track whose ID comes first in lexicographical order (bug 1324548). getUserMedia()
may no longer be used from a non-secure context; attempting to do so now throws aNotAllowedError
exception. Secure contexts are those loaded using HTTPS, those located using thefile:///
scheme, and those loaded fromlocalhost
. For now, if you must, you can re-enable the ability to perform insecure calls togetUserMedia()
by setting the preferencemedia.getusermedia.insecure.enabled
totrue
(bug 1335740).Note: In the future, Firefox will also remove the
navigator.mediaDevices
property on insecure contexts, preventing all access to theMediaDevices
APIs. This is already the case in Nightly builds.
Removals
- Removed the non-standard
XMLDocument.load()
method (bug 332175). - Removed the non-standard
XMLDocument.async
property (bug 1328138). - The
RTCIceCredentialType
token
value has been removed (bug 1529595).
HTTP
- The HTTP
Clear-Site-Data
header no longer supports theexecutionContexts
directive. This was removed due to problems with interactions between interconnections among different kinds of data at different points in the navigation process and the way the specification is designed. It has been proposed that this directive be removed from the specification for this reason, among others (bug 1548034).
Removals
- The
Content-Security-Policy
directiverequire-sri-for
is no longer supported due to concerns about its standardization status. It was previously available only behind a preference, which was off by default (bug 1386214).
Security
- Due to CVE-2019-11730: Same-origin policy treats all files in a directory as having the same-origin, changes have been made so that Firefox now treats files in the same directory as being from different origins. This has a number of side-effects on what will work in documents loaded via file:// URLs (see bug file-fallout for useful background research). For example, workers can no longer be loaded.
WebDriver conformance (Marionette)
Bug fixes
- If
WebDriver:SwitchToWindow
changes the selection to a different window it now waits for itsfocus
andactivate
events before returning (bug 1335085). - Fixed the
TypeError: this.tabModal is null
failure, which sometimes appeared when interacting with modal dialogs or user prompts (bug 1538782)
Other
- Disabled the feature to force unloading background tabs on low memory conditions, to prevent top-level browser contexts from magically disappearing (bug 1553748).
- Disabled priviledged content processes that caused HTTP authentication dialogs not to appear when navigating to a website after opening a new tab (bug 1558763).
Plugins
No changes.
Changes for add-on developers
API changes
- The
proxy.register()
andproxy.unregister()
functions have been deprecated and will be removed from Firefox 71 (bug 1545811). - A
boolean
flag,incognito
, has been added to the proxy.RequestDetails. object. Whentrue
, it indicates that this was a private browsing request (bug 1545163). - The webRequest.RequestFilter parameters can include an incognito parameter. If provided, requests that do not match the incognito state (
true
orfalse
) will be filtered out (bug 1548177). - A
string
value,cookieStoreId
, representing the cookie store ID of the current context, has been added to the proxy.RequestDetails. object (bug 1545420). - When an add-on attempts to add a bookmark folder to the root folder, the resulting error message is now much more intuitive (bug 1512171).
- The promise returned by
browser.tabs.duplicate()
now resolves immediately, before the tabs are completely loaded (bug 1394376). - Support has been added for chrome.storage.managed, allowing web extension settings to be implemented via enterprise policy (bug 1230802).
Manifest changes
No changes.
See also
- Hacks release post: Firefox 68: BigInts, Contrast Checks, and the QuantumBar
- Site compatibility for Firefox 68
Older versions
- Firefox 67 for developers
- Firefox 66 for developers
- 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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论