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
- Event Listener Breakpoints let you diagnose which code a page executes in response to browser events. You can pick specific types, such as
keydown, or whole categories of events, like all mouse input events. (bug 1526082).
- Scripts shown in the debugger's source list pane can now be saved via the Download file context menu option (bug 888161).
- In the debugger's source list pane, loaded extensions are listed with their name, rather than just their UUID (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 (bug 1527488).
- Browser Console messages from tracking protection errors, CSP errors, and CORS errors are grouped automatically to reduce noise from repeated blocked resources and storage access (bug 1522396).
- All visible logs in the console can shared by saving to a file or copying to clipboard via a new Export visible messages to context menu item (bug 1517728).
- The console's toolbar now responsively reduces its height into a single row to save vertical space (bug 972530).
- Messages from content can now be hidden in the console to focus on logs from the Firefox UI (bug 1523842).
- Resources that got blocked because of CSP or Mixed Content are now shown in the Network panel, with details of the reason (bug 1556451).
- A new optional URL column in the Network panel can be enabled to show the full URL for resources (bug 1341155).
- 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 (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 are displayed; if the parent grid's overlay checkbox is unselected, then its lines are translucent (bug 1550519).
- 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 (bug 1462208).
- The DevTools panel order has been changed to reflect popularity (bug 1558630).
- In order to align more closely to the specification, the text track associated with a
<track>element no longer loads the WebVTT file containing the text cues if the element is created in its default
mode. To access or manipulate the cues when the
disabled, change the
hidden; this will trigger loading of the WebVTT data (bug 1550633).
- 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 (bug 1315460).
- We implemented the
break-spacesvalue of the
white-spaceproperty (bug 1351432).
- The SVG geometry attributes (such as
height) can now also be defined as CSS properties (bug 1383650).
::cueselector — 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 (bug 1321488).
- We've restricted the properties that may apply to
::markeras per the specification (bug 1552578)
overflow-inlineproperties have been implemented (bug 1470695).
- We added the ability to test for support of a selector when using CSS Feature Queries (
@supports), with the
selector()method (bug 1513643).
user-selectproperty — which specifies whether or not the user is able to select text in the affected element — has been unprefixed (bug 1492739).
- We implemented local-specific casing behavior for Lithuanian (bug 1322992), as seen in this example.
- We've implemented the
line-breakproperty of CSS Text (bug 1011369 and bug 1531715).
containproperty — which allows developers to define that an element and its contents are mostly independent of the rest of the DOM tree — got implemented bug 1487493.
- We've added support for gzip-compressed SVG-in-OpenType (bug 1359240).
SVGGeometryElement.isPointInStroke()methods have been implemented (bug 1325319).
- Public class fields are enabled by default (bug 1555464). See also Class fields for more information.
- The promise rejection events
rejectionhandledare now enabled by default (bug 1362272). To learn more about how these work, see Promise rejection events in Using Promises.
- The HTTP headers
Access-Control-Allow-Headersnow accept a wildcard value "
*" for requests without credentials (bug 1309358). This change has also been uplifted to Firefox 68 ESR.
- The Resize Observer API is supported by default (bug 1543839).
- The Microtask API (
WindowOrWorkerGlobalScope.queueMicrotask()) has been implemented (bug 1480236).
DOMPoint, and related objects are now supported in workers (bug 1420580).
pageYproperties have been moved from
MouseEvent, for better spec compliance (bug 1178763). These properties are no longer exposed to the
TouchEventinterfaces, which all inherit from
Blob.stream()methods are now implemented (bug 1557121).
DOMMatrix.fromMatrix()has been implemented (bug 1560462).
- We now support the six-parameter version of the
DOMMatrix.scale()method (bug 1397945).
- The arguments for
DOMMatrix.skewY()are now all optional, as per spec (bug 1397949).
navigator.oscpuproperties no longer reveal whether a user is running 32-bit Firefox on a 64-bit OS (bug 1559747). They now say
Linux x86_64instead of
Linux i686 on x86_64, and
- The remaining methods of
HTMLDocumenthave been moved to
Document. This should have no appreciable impact on your work in most cases. In particular, the
write()methods have been moved. So have the various editor related methods, including
execCommand()as well as various properties (bug 1549560).
Media, Web Audio, and WebRTC
- For improved user security, and in-keeping with the latest versions of the Media Capture and Streams specification, the
navigator.mediaDevicesproperty is no longer present if the context is insecure. To use
enumerateDevices(), and so forth, be sure your content is loaded using HTTPS (bug 1528031).
- The Web Audio API's
AudioParam.valueproperty now returns the actual value of the property at the current time, taking into account all scheduled or gradiated value changes. Previously, Firefox only returned the most recent explicitly-set value (as through using the
valuesetter) (bug 893020).
- We've updated
MediaStreamAudioSourceNodeto 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
MediaStreamAudioSourceNodeusing a stream that has no audio tracks now throws an
InvalidStateErrorexception (bug 1553215).
groupIdsettings are now included as members of the
MediaTrackSettingsobject returned by calls to
WebDriver conformance (Marionette)
Tracking protection and DOM push features are now disabled by default to avoid the removal of parts of the DOM, and extra notifications (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 (bug 1553748).
Changes for add-on developers
- The UserScripts API is now enabled by default.
topSites.get()method now has new options available —
- There are now Group Policy options to blacklist all extensions except the ones that have been whitelisted (bug 1522823).
- Hacks release post: Firefox 69 — a tale of Resize Observer, microtasks, CSS, and DevTools
- Site compatibility for Firefox 69
- Firefox 68 for developers
- Firefox 67 for developers
- Firefox 66 for developers
- Firefox 65 for developers
- 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