Back to Content

Firefox 69 release notes for developers

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

latest13.6 KB
Original Source

This article provides information about the changes in Firefox 69 that will affect developers. Firefox 69 was released on September 3, 2019.

Changes for web developers

Developer tools

Debugger

  • Event Listener Breakpoints let you diagnose which code a page executes in response to browser events. You can pick specific types, such as click or keydown, or whole categories of events, like all mouse input events. (Firefox bug 1526082).
  • Scripts shown in the debugger's source list pane can now be saved via the Download file context menu option (Firefox bug 888161).
  • In the debugger's source list pane, loaded extensions are listed with their name, rather than just their {{Glossary("UUID")}} (Firefox bug 1486416), making it much easier to find the extension code you want to debug.
  • The debugger now loads significantly faster via lazy-loading scripts (Firefox bug 1527488).

Console

Network

Inspector

  • When you hover over an element in the Page Inspector, the infobar that appears now includes the fact that an element is a flex container, or flex item (Firefox bug 1521188).
  • When inspecting a page containing a grid with a subgrid, the parent grid's overlay lines are displayed whenever the subgrid's lines are displayed; if the parent grid's overlay checkbox is unselected, then its lines are translucent (Firefox bug 1550519).

Remote debugging

  • For our mobile web developers, we have migrated remote debugging from the old WebIDE into a re-designed about:debugging, making the experience of debugging GeckoView on remote devices via USB much better (Firefox bug 1462208).

General

HTML

  • In order to align more closely to the specification, the text track associated with a {{HTMLElement("track")}} element no longer loads the WebVTT file containing the text cues if the element is created in its default disabled {{domxref("TextTrack.mode", "mode")}}. To access or manipulate the cues when the mode is disabled, change the mode to either started or hidden; this will trigger loading of the WebVTT data (Firefox bug 1550633).

Removals

  • The HTML <keygen> element has been removed from Firefox. It was deprecated some time ago, and its purpose has generally been supplanted by other technologies (Firefox bug 1315460).

CSS

  • We implemented the break-spaces value of the {{cssxref("white-space")}} property (Firefox bug 1351432).
  • The SVG geometry attributes (such as {{SVGAttr("width")}} and {{SVGAttr("height")}}) can now also be defined as CSS properties (Firefox bug 1383650).
  • The {{cssxref("::cue")}} selector — used to style the captions ("cues") displayed by WebVTT — now enforces the limitations on which CSS properties may be used within cues, as per the specification (Firefox bug 1321488).
  • We've restricted the properties that may apply to {{cssxref("::marker")}} as per the specification (Firefox bug 1552578)
  • The {{cssxref("overflow-block")}} and {{cssxref("overflow-inline")}} properties have been implemented (Firefox bug 1470695).
  • We added the ability to test for support of a selector when using CSS Feature Queries ({{cssxref("@supports")}}), with the selector() method (Firefox bug 1513643).
  • The {{cssxref("user-select")}} property — which specifies whether or not the user is able to select text in the affected element — has been unprefixed (Firefox bug 1492739).
  • We implemented local-specific casing behavior for Lithuanian (Firefox bug 1322992), as seen in this example.
  • We've implemented the {{cssxref("line-break")}} property of CSS Text (Firefox bug 1011369 and Firefox bug 1531715).
  • The {{cssxref("contain")}} property — which allows developers to define that an element and its contents are mostly independent of the rest of the DOM tree — got implemented Firefox bug 1487493.

SVG

  • We've added support for gzip-compressed SVG-in-OpenType (Firefox bug 1359240).
  • The {{domxref("SVGGeometryElement.isPointInFill()")}} and {{domxref("SVGGeometryElement.isPointInStroke()")}} methods have been implemented (Firefox bug 1325319).

JavaScript

HTTP

  • The HTTP headers {{HTTPHeader("Access-Control-Expose-Headers")}}, {{HTTPHeader("Access-Control-Allow-Methods")}}, and {{HTTPHeader("Access-Control-Allow-Headers")}} now accept a wildcard value * for requests without credentials (Firefox bug 1309358). This change has also been uplifted to Firefox 68 ESR.

APIs

New APIs

DOM

  • The {{domxref("DOMMatrix")}}, {{domxref("DOMPoint")}}, and related objects are now supported in workers (Firefox bug 1420580).
  • The pageX and pageY properties have been moved from {{domxref("UIEvent")}} to {{domxref("MouseEvent")}}, for better spec compliance (Firefox bug 1178763). These properties are no longer exposed to the {{domxref("CompositionEvent")}}, {{domxref("FocusEvent")}}, {{domxref("InputEvent")}}, {{domxref("KeyboardEvent")}}, and {{domxref("TouchEvent")}} interfaces, which all inherit from UIEvent.
  • The {{domxref("Blob.text()")}}, {{domxref("Blob.arrayBuffer()")}}, and {{domxref("Blob.stream()")}} methods are now implemented (Firefox bug 1557121).
  • DOMMatrixReadOnly.fromMatrix() has been implemented (Firefox bug 1560462).
  • We now support the six-parameter version of the {{domxref("DOMMatrixReadOnly.scale()")}} method (Firefox bug 1397945).
  • The arguments for {{domxref("DOMMatrixReadOnly.translate()")}}, {{domxref("DOMMatrixReadOnly.skewX()")}}, and {{domxref("DOMMatrixReadOnly.skewY()")}} are now all optional, as per spec (Firefox bug 1397949).
  • The {{domxref("Navigator.userAgent")}}, {{domxref("Navigator.platform")}}, and {{domxref("Navigator.oscpu")}} properties no longer reveal whether a user is running 32-bit Firefox on a 64-bit OS (Firefox bug 1559747). They now say Linux x86_64 instead of Linux i686 on x86_64, and Win64 instead of WOW64.
  • The remaining methods of {{domxref("HTMLDocument")}} have been moved to {{domxref("Document")}}. This should have no appreciable impact on your work in most cases. In particular, the {{domxref("document.close", "close()")}}, {{domxref("document.open", "open()")}}, and {{domxref("document.write", "write()")}} methods have been moved. So have the various editor related methods, including {{domxref("document.execCommand", "execCommand()")}} as well as various properties (Firefox bug 1549560).
  • We have implemented {{domxref("AbstractRange")}} and {{domxref("StaticRange")}} (Firefox bug 1444847).

Media, Web Audio, and WebRTC

  • For improved user security, and in-keeping with the latest versions of the Media Capture and Streams specification, the {{domxref("navigator.mediaDevices")}} property is no longer present if the context is insecure. To use {{domxref("MediaDevices.getUserMedia", "getUserMedia()")}}, {{domxref("MediaDevices.getDisplayMedia", "getDisplayMedia()")}}, {{domxref("MediaDevices.enumerateDevices", "enumerateDevices()")}}, and so forth, be sure your content is loaded using {{Glossary("HTTPS")}} (Firefox bug 1528031).
  • The Web Audio API's {{domxref("AudioParam.value")}} property now returns the actual value of the property at the current time, taking into account all scheduled or graduated value changes. Previously, Firefox only returned the most recent explicitly-set value (as through using the value setter) (Firefox bug 893020).
  • We've updated {{domxref("MediaStreamAudioSourceNode")}} to use the new, lexicographical, ordering for tracks. Previously, track ordering was up to the individual browser, and could even change arbitrarily. In addition, attempting to create a MediaStreamAudioSourceNode using a stream that has no audio tracks now throws an InvalidStateError exception (Firefox bug 1553215).
  • The {{domxref("MediaTrackSettings.facingMode", "facingMode")}}, {{domxref("MediaTrackSettings.deviceId", "deviceId")}}, and {{domxref("MediaTrackSettings.groupId", "groupId")}} settings are now included as members of the {{domxref("MediaTrackSettings")}} object returned by calls to {{domxref("MediaStreamTrack.getSettings()")}} (Firefox bug 1537986).

Removals

WebDriver conformance (Marionette)

Other

  • Marionette now dynamically handles the opening and closing of modal dialogs and user prompts (Firefox bug 1477977), which also means that multiple open prompts will be handled (Firefox bug 1487358).
  • Tracking protection and DOM push features are now disabled by default to avoid the removal of parts of the DOM, and extra notifications (Firefox bug 1542244).
  • Automatic unloading of background tabs if Firefox runs into a low memory condition is now disabled — this badly interacts with automation when switching between tabs (Firefox bug 1553748).

Changes for add-on developers

API changes

Other changes

See also