Firefox 63 for developers

This article provides information about the changes in Firefox 63 that will affect developers. Firefox 63 was released on October 23, 2018.

Changes for web developers

Developer tools



  • Support for the sidebar link type (rel="sidebar") has been removed. If an anchor tag includes this attribute, it will be ignored (Firefox bug 1452645).



  • Removed offset-block-start, offset-block-end, offset-inline-start, and offset-inline-end; these have been renamed to inset-*, as described above (Firefox bug 1464782).


No changes.



  • Experimental WebAssembly Module IndexedDB serialization support has been removed (Firefox bug 1469395).


New APIs


DOM events

  • Handling of the Alt key on the right side of the keyboard has been improved on Windows. If the user's current keyboard layout maps the Alt key to the AltGr modifier key, the value of KeyboardEvent.key is now reported as "AltGraph". This behavior matches the behavior recently introduced in Chrome (Firefox bug 900750).

Media, Web Audio, and WebRTC

  • Microphone access now works simultaneously in multiple tabs, even within the same content process (Firefox bug 1404977).
  • RTCDataChannel has been updated to support the sctp-sdp-21 data format for the data, in addition to the older sctp-sdp-05 format previously supported.
  • The ConstantSourceNode node type for Web Audio API now has a default channel count of 2 rather than 1, in order to match the specification (Firefox bug 1413283).
  • The Web Audio API interface AudioScheduledSourceNode (and by extension, all the other node types based on it) now throw the correct exception when a negative value is specified for the node start time. That error is RangeError (Firefox bug 1413284).
  • The minimum and maximum permitted values for an AudioParam object's value have been changed to the minimum negative single-precision floating-point value (-340,282,346,638,528,859,811,704,183,484,516,925,440) and the maximum positive single-precision floating-point value (+340,282,346,638,528,859,811,704,183,484,516,925,440) respectively (Firefox bug 1476695).
  • The SourceBuffer.changeType method, which allows you to change codecs during an active stream, has been enabled by default. This is part of the Media Source Extensions API (Firefox bug 1481166).
  • The AudioParam.setValueCurveAtTime() method has been updated to correctly accept an array of floating-point values to indicate the parameter's values to change to over time. Previously, it required a Float32Array (Firefox bug 1421091).
  • AudioParam.setValueCurveAtTime() has also been updated to correctly return a proper TypeError when a non-finite value is found in the values array (Firefox bug 1472095).
  • In addition, setValueCurveAtTime() has been updated to ensure that, when the parameter finishes following the specified value curve after the duration elapses, the value of the parameter is set to the last value in the list of values to curve through (Firefox bug 1308436).
  • The RTCRTPStreamStats dictionary has been renamed to RTCRtpStreamStats for consistency with other WebRTC dictionaries and the specification (Firefox bug 1480498).
  • Support for the RTCRtpStreamStats dictionary's kind property has been added (Firefox bug 1481851).
  • The RTCRtpStreamStats dictionary's isRemote property is deprecated and will be removed in Firefox 65. A warning is now output to console when this property is accessed. See this blog post on the Advancing WebRTC blog for details (Firefox bug 1393306).

Canvas and WebGL

  • A new powerPreference context attribute has been added to HTMLCanvasElement.getContext(). On macOS this allows WebGL non-performance-critical applications and applets to request the low-power GPU instead of the high-power GPU in multi-GPU systems (Firefox bug 1349799).



No changes.



  • Site favicons are now subject to Content Security Policy if one is configured for the site (Firefox bug 1297156).
  • CSP script-src directive's 'report-sample' expression now recognized when generating violation reports. This directive indicates that a short sample of where the violation occurred should be included in the report. Previously, Firefox always included this sample (Firefox bug 1473218).
  • Firefox now uses NSS 3.39 (Firefox bug 1470914).


No changes.

WebDriver conformance (Marionette)

New features

  • Marionette now returns a setWindowRect capability in the WebDriver:NewSession response that is true if the browser window can be repositioned and resized, which e.g. is the case for Firefox but not any mobile applications (Firefox bug 1470659).
  • Added support for the unhandledPromptBehavior capability, which allows to define a specific prompt behavior of the WebDriver specification (Firefox bug 1264259).
  • Handling of user prompts has been added to the WebDriver:ExecuteScript and WebDriver:ExecuteAsyncScript commands (Firefox bug 1439995).

API changes

  • Deprecated command end-points without the WebDriver: prefix have been removed (Firefox bug 1451725).
  • The WebDriver:NewSession command returns recommended strings (linux, mac, windows) for platformName as defined in the WebDriver specification (Firefox bug 1470646).

Bug fixes

  • Focus related events were missing on element interaction when Firefox was not running as the top-most application (Firefox bug 1398111).
  • Performing a pointerDown and pointerUp action in a subsequent action sequence could trigger a double click because WebDriver:ReleaseActions didn't reset the double click tracker (Firefox bug 1422583).
  • Executing pause actions repeatedly could cause an infinite hang (Firefox bug 1447449).
  • Fixed a bug where returning an element collection from WebDriver:ExecuteScript and WebDriver:ExecuteAsyncScript would cause a cyclic reference error (Firefox bug 1447977).
  • To prevent a race condition both the WebDriver:AcceptAlert and WebDriver:DismissAlert commands now wait until the user prompt has been closed (Firefox bug 1479368).
  • Log entries as emitted by the frame script were no longer limited by MarionettePrefs.logLevel but logged everything (Firefox bug 1482829).
  • WebDriver:TakeScreenshot raised an error when taking a screenshot of a window larger than 32767 pixels in width or height (Firefox bug 1485730).
  • WebDriver:SendAlertText didn't replace default user prompt value if text to send is an empty string (Firefox bug 1486485).


  • Corrected the behavior of PerformanceObserver.observe() to do nothing if no valid entry types are found in the specified array of entry types to observe, or if the array is empty or missing. Previously, Firefox was incorrectly throwing a TypeError (Firefox bug 1403027).
  • In OpenSearch, Firefox now accepts application/json as a search URL type, as an alias of application/x-suggestions+json (Firefox bug 1425827).

Changes for add-on developers

API changes




Older versions