Firefox 64 for developers
This article provides information about the changes in Firefox 64 that will affect developers. Firefox 64 was released on December 11, 2018.
Changes for web developers
Developer tools
- The Accessibility info-bar has been enhanced to include information about the color contrast ratio of text or images on the page (Firefox bug 1473037).
- Responsive Design Mode device selection is now saved between sessions (Firefox bug 1248619).
- Resources that are potentially affected by Tracking Protection are now indicated in the Network Monitor (Firefox bug 1333994).
- The Web Console got improvements around entering and evaluating code:
- Autocomplete for Console expressions is now case-insensitive (Firefox bug 672733).
- You can now step through the Console expression history with bash-like reverse search (Firefox bug 1024913).
- Evaluated code in the Console is now syntax-highlighted in both the input and output (Firefox bug 1463669).
- Stepping in the JavaScript Debugger also had some improvements:
- Stepping out of a function in the Debugger now skips the return value (Firefox bug 923975).
Removals
- The Developer Tools GCLI has been removed (Firefox bug 1429421).
HTML
No changes.
CSS
- CSS Scrollbars spec functionality has been enabled by default (Firefox bug 1492012).
- Interaction Media Features implemented, including
pointer:coarse
(Firefox bug 1035774). Forany-pointer
andany-hover
implementation, see Firefox bug 1483111. - The
prefers-reduced-motion
media feature is now supported in Firefox for Android (Firefox bug 1478505). - CSS
<gradient>
values now support multi-position color stop syntax, e.g.yellow 25%, yellow 50%
can now be writtenyellow 25% 50%
(Firefox bug 1352643). - The
text-transform
property now accepts thefull-size-kana
value (Firefox bug 1498148). - Support added for
-webkit-appearance
to alleviate associated web compat issues (Firefox bug 1368555). - Closely associated with the above update, we've also removed most of the Firefox-specific
-moz-appearance
values (Firefox bug 1496720). display
:list-item
is now supported on<legend>
elements (Firefox bug 1486602).- SVG
path()
s, as usable inoffset-path
, are now animatable (Firefox bug 1486094). - If a selector chain or group includes a
-webkit-
prefixed pseudo-element, that pseudo-element no longer invalidates it (see Firefox bug 1424106 for the details, and Firefox bug 1486325 for enabling this feature).
Removals
- The non-standard
-moz-box
and-moz-inline-box
display
values have been hidden from web content (Firefox bug 1496961). - The non-standard
::-moz-tree
pseudo-element has been hidden from web content (Firefox bug 1496961). - The
layout.css.filters.enabled
preference has been removed; CSS filters can no longer be disabled (Firefox bug 1408841). - A previous change — to swap the values of the 2-value
overflow
syntax so block is specified first and inline second (Firefox bug 1481866) — has been reverted (Firefox bug 1492567). See Bug 1481866 comment 14 for why.
SVG
No changes.
JavaScript
- The TC39 Well-formed JSON.stringify proposal has been implemented, to prevent
JSON.stringify
from returning ill-formed Unicode strings (Firefox bug 1469021). - Proxied functions can now be passed to
Function.prototype.toString
.call()
(Firefox bug 1440468). - In the
WebAssembly.Global()
constructor, if no value is specified a typed 0 value is used. This is specified by theDefaultValue
algorithm (Firefox bug 1490286).
APIs
DOM
- A number of changes related to the Fullscreen API have been implemented:
- The API has been unprefixed (Firefox bug 1269276).
- The
Element.requestFullscreen()
andDocument.exitFullscreen()
methods both now return aPromise
, which is resolved when the mode change is complete (Firefox bug 1188256 and Firefox bug 1491212). - Previously,
fullscreenchange
andfullscreenerror
events were dispatched to theDocument
first, then theElement
. This has been reversed so that the element gets the event first. This matches the latest specification as well as the behavior of Google Chrome (Firefox bug 1375319).
- The WebVR API (1.1) is now re-enabled in macOS (Firefox bug 1476091).
Window.screenLeft
andWindow.screenTop
have been implemented, as aliases ofWindow.screenX
andWindow.screenY
(Firefox bug 1498860).- The
XMLHttpRequest.getAllResponseHeaders()
method now returns header names all in lowercase, as per spec (Firefox bug 1398718). - The legacy
HTMLAllCollection
interface has been updated as per recent spec updates (Firefox bug 1398354). Navigator.buildID
now returns a fixed timestamp as a privacy measure (Firefox bug 583181).- The following
Document.execCommand()
UI feature commands have been disabled by default (Firefox bug 1490641:enableObjectResizing
enableInlineTableEditing
enableAbsolutePositionEditor
Service workers
- The
ServiceWorkerContainer.startMessages()
method has been implemented (Firefox bug 1263734).
Media, Web Audio, and WebRTC
- The
PannerNode.refDistance
,PannerNode.maxDistance
,PannerNode.rolloffFactor
, andPannerNode.coneOuterGain
properties now correctly throw exceptions when set to values outside their accepted ranges (Firefox bug 1487963). RTCRtpEncodingParameters
settings changed viaRTCRtpSender.setParameters()
used to not update if the changes were made during a call. They will now update live, without renegotiation (Firefox bug 1253499).RTCIceCandidateStats.relayProtocol
has been implemented — this is the standardized version ofRTCIceCandidateStats.mozLocalTransport
, which has now been deprecated (Firefox bug 1435789).- Automatic Gain Control (AGC) is now enabled by default; this can be changed using the preference
media.getusermedia.agc_enabled
(Firefox bug 1496714).
Removals
- The
Window.event
property, added in Firefox 63 to aid with web compat issues, has been put behind a pref (dom.window.event.enabled
) and disabled by default in release versions for now due to other issues that have been uncovered (Firefox bug 1493869). Note that this was actually done late in the Firefox 63 release cycle, but we are mentioning it here just in case. - The
LocalMediaStream
interface and itsstop()
method have been removed (Firefox bug 1258143). This method is no longer available with the deprecation ofLocalMediaStream
. See the Stopping a video stream section to learn how to stop an entire stream. - The
AudioStreamTrack
andVideoStreamTrack
interfaces have been removed, as both have been deprecated for some time (Firefox bug 1377146). Their functionality has been merged intoMediaStreamTrack
; tracks are now identified by the value of theirkind
property, such asaudio
orvideo
.
Security
- The Symantec CA Distrust plan has been implemented (see Firefox bug 1409257; see also the Mozilla's Plan for Symantec Roots discussion for more details).
Referrer-Policy
can now be used to govern resources fetched via stylesheets (Firefox bug 1330487) — see Integration with CSS for more information.
Plugins
No changes.
WebDriver conformance (Marionette)
API changes
- Deprecated command end-points without the
Marionette:
,L10n:
, orAddon:
prefix (includingsingeTap
) have been removed (Firefox bug 1504478, Firefox bug 1504940).
Bug fixes
- Synthesized
Shift
key events by usingWebDriver:PerformActions
didn't result in capitalized letters (Firefox bug 1405370). WebDriver:Navigate
could cause an infinite hang if the tab's underlying content process is changed multiple times during that navigation (Firefox bug 1504807).- To improve the performance, and to reduce the memory footprint of Firefox the default page to be loaded for a new tab or window is no longer
about:newtab
butabout:blank
(Firefox bug 1506643). - The content blocking introduction panel, which was shown on various web pages and caused element interactions to fail is disabled by default now (Firefox bug 1488826).
Changes for add-on developers
API changes
Menus
- A new API,
, can be called from themenus.overrideContext()
contextmenu
DOM event to set a custom context menu in extension pages. This API allows extensions to hide all default Firefox menu items in favor of providing a custom context menu UI. This context menu can consist of multiple top-level menu items from the extension, and may optionally include tab or bookmark context menu items from other extensions. See this blog post for more details.
was implemented in (Firefox bug 1280347).menus.overrideContext()
- The
showDefaults: false
option, which can be used to hide the default context menu options, was implemented in (Firefox bug 1367160). documentURLPatterns
can now be used to match amoz-extension://
document URL, even if
is used. This way, it can reliably be used to restrict custom menu items to certain documents (Firefox bug 1498896).menus.overrideContext()
- You can now restrict where context menus can appear in an add-on using the new
viewTypes
property inmenus.create()
andmenus.update()
(Firefox bug 1416839). menus.update()
can now be used to update the icon of an existing menu item (Firefox bug 1414566).- Extensions can now detect which mouse button was used when a menu item was clicked — this can be found using the new
button
property ofmenus.OnClickData
(Firefox bug 1469148).
Windows
- The
windows.create()
method now has a new option available —cookieStoreId
— which specifies theCookieStoreId
to use for all tabs that were created when the window is opened (Firefox bug 1393570).
Privacy
- The
privacy.websites
cookieConfig
property is an object that can accept abehavior
property — this property can now take a new value,reject_trackers
, which instructs the extension to reject tracking cookies (Firefox bug 1493057).
devtools.panels API
- The
devtools.panels.elements
Sidebar.setPage()
method is now supported (Firefox bug 1398734).
Manifest changes
- The new
pinned
property of thepage_action
manifest key enables extensions to control whether their page actions should be pinned to the location bar on install or not (Firefox bug 1494135). - In native manifests on Windows, the 32-bit registry view (Wow6432Node) will be checked first for registry keys, followed by the "native" registry view; you should use whichever is appropriate for your application (Firefox bug 1494709).
- The
chrome_settings_overrides
field'ssearch_provider
object can now include new properties —suggest_url
andsuggest_url_post_params
(Firefox bug 1486819), andsearch_url_post_params
.
See also
- Hacks release post: Firefox 64 Released
Older versions
- 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
- Firefox 34 for developers
- Firefox 33 for developers