Back to Content

Firefox 64 release notes for developers

files/en-us/mozilla/firefox/releases/64/index.md

latest15.6 KB
Original Source

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

Removals

HTML

No changes.

CSS

Removals

SVG

No changes.

JavaScript

APIs

DOM

  • A number of changes related to the {{domxref("Fullscreen_API", "Fullscreen API", "", "1")}} have been implemented:

    • The API has been unprefixed (Firefox bug 1269276).
    • The {{domxref("Element.requestFullscreen()")}} and {{domxref("Document.exitFullscreen()")}} methods both now return a {{jsxref("Promise")}}, which is resolved when the mode change is complete (Firefox bug 1188256 and Firefox bug 1491212).
    • Previously, {{domxref("Element/fullscreenchange_event", "fullscreenchange")}} and {{domxref("Element/fullscreenerror_event", "fullscreenerror")}} events were dispatched to the {{domxref("Document")}} first, then the {{domxref("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 (Firefox bug 1375319).
  • The {{domxref("WebVR_API", "WebVR API", "", "1")}} (1.1) is now re-enabled in macOS (Firefox bug 1476091).

  • {{domxref("Window.screenLeft")}} and {{domxref("Window.screenTop")}} have been implemented, as aliases of {{domxref("Window.screenX")}} and {{domxref("Window.screenY")}} (Firefox bug 1498860).

  • The {{domxref("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).

  • {{domxref("Navigator.buildID")}} now returns a fixed timestamp as a privacy measure (Firefox bug 583181).

  • The following {{domxref("Document.execCommand()")}} UI feature commands have been disabled by default (Firefox bug 1490641:

    • enableObjectResizing
    • enableInlineTableEditing
    • enableAbsolutePositionEditor

Service workers

  • The {{domxref("ServiceWorkerContainer.startMessages()")}} method has been implemented (Firefox bug 1263734).

Media, Web Audio, and WebRTC

  • The {{domxref("PannerNode.refDistance")}}, {{domxref("PannerNode.maxDistance")}}, {{domxref("PannerNode.rolloffFactor")}}, and {{domxref("PannerNode.coneOuterGain")}} properties now correctly throw exceptions when set to values outside their accepted ranges (Firefox bug 1487963).
  • RTCRtpEncodingParameters settings changed via {{domxref("RTCRtpSender.setParameters()")}} used to not update if the changes were made during a call. They will now update live, without renegotiation (Firefox bug 1253499).
  • {{domxref("RTCIceCandidateStats.relayProtocol")}} has been implemented — this is the standardized version of RTCIceCandidateStats.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 {{domxref("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 its stop() method have been removed (Firefox bug 1258143). This method is no longer available with the deprecation of LocalMediaStream. See the Stopping a video stream section to learn how to stop an entire stream.
  • The AudioStreamTrack and VideoStreamTrack interfaces have been removed, as both have been deprecated for some time (Firefox bug 1377146). Their functionality has been merged into {{domxref("MediaStreamTrack")}}; tracks are now identified by the value of their {{domxref("MediaStreamTrack.kind", "kind")}} property, such as audio or video.

Security

Plugins

No changes.

WebDriver conformance (Marionette)

API changes

Bug fixes

  • Synthesized Shift key events by using WebDriver: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 but about: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, {{WebExtAPIRef("menus.overrideContext()")}}, can be called from the 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.

    • {{WebExtAPIRef("menus.overrideContext()")}} was implemented in (Firefox bug 1280347).
    • 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 a moz-extension:// document URL, even if {{WebExtAPIRef("menus.overrideContext()")}} is used. This way, it can reliably be used to restrict custom menu items to certain documents (Firefox bug 1498896).
  • You can now restrict where context menus can appear in an add-on using the new viewTypes property in {{WebExtAPIRef("menus.create()")}} and {{WebExtAPIRef("menus.update()")}} (Firefox bug 1416839).

  • {{WebExtAPIRef("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 of {{WebExtAPIRef("menus.OnClickData")}} (Firefox bug 1469148).

Windows

  • The {{WebExtAPIRef("windows.create()")}} method now has a new option available — cookieStoreId — which specifies the CookieStoreId to use for all tabs that were created when the window is opened (Firefox bug 1393570).

Privacy

  • The {{WebExtAPIRef("privacy.websites")}} cookieConfig property is an object that can accept a behavior 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

Manifest changes

  • The new pinned property of the page_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's search_provider object can now include new properties — suggest_url and suggest_url_post_params (Firefox bug 1486819), and search_url_post_params.

See also