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
- The Accessibility info-bar has been enhanced to include information about the color contrast ratio of text or images on the page (bug 1473037).
- Responsive Design Mode device selection is now saved between sessions (bug 1248619).
- Resources that are potentially affected by Tracking Protection are now indicated in the Network Monitor (bug 1333994).
- The Web Console got improvements around entering and evaluating code:
- The Developer Tools GCLI has been removed (bug 1429421).
- CSS Scrollbars spec functionality has been enabled by default (bug 1492012).
- Interaction Media Features implemented, including
pointer:coarse(bug 1035774). For
any-hoverimplementation, see bug 1483111.
prefers-reduced-motionmedia feature is now supported in Firefox for Android (bug 1478505).
<gradient>values now support multi-position color stop syntax, e.g.
yellow 25%, yellow 50%can now be written
yellow 25% 50%(bug 1352643).
text-transformproperty now accepts the
full-size-kanavalue (bug 1498148).
- Support added for
-webkit-appearanceto alleviate associated web compat issues (bug 1368555).
- Closely associated with the above update, we've also removed most of the Firefox-specific
-moz-appearancevalues (bug 1496720).
list-itemis now supported on
<legend>elements (bug 1486602).
path()s, as usable in
offset-path, are now animatable (bug 1486094).
- If a selector chain or group includes a
-webkit-prefixed pseudo-element, that pseudo-element no longer invalidates it (see bug 1424106 for the details, and bug 1486325 for enabling this feature).
- The non-standard
displayvalues have been hidden from web content (bug 1496961).
- The non-standard
::-moz-treepseudo-elements have been hidden from web content (bug 1496961).
layout.css.filters.enabledpreference has been removed; CSS filters can no longer be disabled (bug 1408841).
- A previous change — to swap the values of the 2-value
overflowsyntax so block is specified first and inline second (bug 1481866) — has been reverted (bug 1492567). See Bug 1481866 comment 14 for why.
- The TC39 Well-formed JSON.stringify proposal has been implemented, to prevent
JSON.stringifyfrom returning ill-formed Unicode strings (bug 1469021).
- Proxied functions can now be be passed to
- In the
WebAssembly.Globalconstructor, if no value is specified a typed 0 value is used. This is specified by the
DefaultValuealgorithm (bug 1490286).
- A number of changes related to the Fullscreen API have been implemented:
- The API has been unprefixed (bug 1269276).
Document.exitFullscreen()methods both now return a
Promise, which is resolved when the mode change is complete (bug 1188256 and bug 1491212).
fullscreenerrorevents were dispatched to the
Documentfirst, then the
Element. 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 (bug 1375319).
- The WebVR API (1.1) is now re-enabled in macOS (bug 1476091).
Window.screenTophave been implemented, as aliases of
XMLHttpRequest.getAllResponseHeaders()method now returns header names all in lowercase, as per spec (bug 1398718).
- The legacy
HTMLAllCollectioninterface has been updated as per recent spec updates (bug 1398354).
Navigator.buildIDnow returns a fixed timestamp as a privacy measure (bug 583181).
- The following
Document.execCommand()UI feature commands have been disabled by default (bug 1490641, see also Firefox-specific HTML editing UI has been disabled by default for more details):
Media, Web Audio, and WebRTC
PannerNode.coneOuterGainproperties now correctly throw exceptions when set to values outside their accepted ranges (bug 1487963).
RTCRtpEncodingParameterssettings changed via
RTCRtpSender.setParameters()used to not update if the changes were made during a call. They will now update live, without renegotiation (bug 1253499).
RTCIceCandidateStats.relayProtocolhas been implemented — this is the standardized version of
RTCIceCandidateStats.mozLocalTransport, which has now been deprecated (bug 1435789).
- Automatic Gain Control (AGC) is now enabled by default; this can be changed using the preference
Window.eventproperty, 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 (bug 1493869). Note that this was actually done late in the Firefox 63 release cycle, but we are mentioning it here just in case.
LocalMediaStreaminterface and its
stop()method have been removed (bug 1258143). This method is no longer available with the deprecation of
LocalMediaStream. See Stopping a video stream in MediaStreamTrack.stop() to learn how to stop an entire stream.
VideoStreamTrackinterfaces have been removed, as both have been deprecated for some time (bug 1377146). Their functionality has been merged into
MediaStreamTrack; tracks are now identified by the value of their
kindproperty, such as
- The Symantec CA Distrust plan has been implemented (see bug 1409257; see also the Mozilla’s Plan for Symantec Roots discussion for more details).
Referrer-Policycan now be used to govern resources fetched via stylesheets (bug 1330487) — see Integration with CSS in Referrer-Policy for more information.
WebDriver conformance (Marionette)
- Deprecated command end-points without the
singeTap) have been removed (bug 1504478, bug 1504940).
Shiftkey events by using
WebDriver:PerformActionsdidn't result in capitalized letters (bug 1405370).
WebDriver:Navigatecould cause an infinite hang if the tab's underlying content process is changed multiple times during that navigation (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
- The content blocking introduction panel, which was shown on various web pages and caused element interactions to fail is disabled by default now (bug 1488826).
Changes for add-on developers
- A new API,
, can be called from the
contextmenuDOM 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 (bug 1280347).
showDefaults: falseoption, which can be used to hide the default context menu options, was implemented in (bug 1367160).
documentURLPatternscan now be used to match a
moz-extension://document URL, even if
is used. This way, it can reliably be used to restrict custom menu items to certain documents (bug 1498896).
- You can now restrict where context menus can appear in an add-on using the new
menus.update()can now be used to update the icon of an existing menu item (bug 1414566).
- Extensions can now detect which mouse button was used when a menu item was clicked — this can be found using the new
windows.create()method now has a new option available —
cookieStoreId— which specifies the
CookieStoreIdto use for all tabs that were created when the window is opened (bug 1393570).
cookieConfigproperty is an object that can accept a
behaviorproperty — this property can now take a new value,
reject_trackers, which instructs the extension to reject tracking cookies (bug 1493057).
- The new
pinnedproperty of the
page_actionmanifest key enables extensions to control whether their page actions should be pinned to the location bar on install or not (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 (bug 1494709).
search_providerobject can now include new properties —
suggest_url_post_params(bug 1486819), and
- 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
- Firefox 36 for developers
- Firefox 35 for developers
- Firefox 34 for developers