This article provides information about the changes in Firefox 69 that will affect developers. Firefox 69 was released on September 3, 2019.
- 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. (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 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).
- 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 (Firefox 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 (Firefox bug 1517728).
- The console's toolbar now responsively reduces its height into a single row to save vertical space (Firefox bug 972530).
- Messages from content can now be hidden in the console to focus on logs from the Firefox UI (Firefox bug 1523842).
- Resources that got blocked because of CSP or Mixed Content are now shown in the Network panel, with details of the reason (Firefox bug 1556451).
- A new optional URL column in the Network panel can be enabled to show the full URL for resources (Firefox 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 (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).
- 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).
- The DevTools panel order has been changed to reflect popularity (Firefox 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 (Firefox 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 (Firefox bug 1315460).
- We implemented the
break-spacesvalue of the
white-spaceproperty (Firefox bug 1351432).
- The SVG geometry attributes (such as
height) can now also be defined as CSS properties (Firefox 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 (Firefox bug 1321488).
- We've restricted the properties that may apply to
::markeras per the specification (Firefox bug 1552578)
overflow-inlineproperties have been implemented (Firefox bug 1470695).
- We added the ability to test for support of a selector when using CSS Feature Queries (
@supports), with the
selector()method (Firefox bug 1513643).
user-selectproperty — 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
line-breakproperty of CSS Text (Firefox bug 1011369 and Firefox 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 Firefox bug 1487493.
- The Resize Observer API is supported by default (Firefox bug 1543839).
- The Microtask API (
queueMicrotask()) has been implemented (Firefox bug 1480236).
DOMPoint, and related objects are now supported in workers (Firefox bug 1420580).
pageYproperties have been moved from
MouseEvent, for better spec compliance (Firefox bug 1178763). These properties are no longer exposed to the
TouchEventinterfaces, which all inherit from
Blob.stream()methods are now implemented (Firefox bug 1557121).
DOMMatrix.fromMatrix()has been implemented (Firefox bug 1560462).
- We now support the six-parameter version of the
DOMMatrix.scale()method (Firefox bug 1397945).
- The arguments for
DOMMatrix.skewY()are now all optional, as per spec (Firefox bug 1397949).
Navigator.oscpuproperties no longer reveal whether a user is running 32-bit Firefox on a 64-bit OS (Firefox 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 (Firefox bug 1549560).
- We have implemented
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
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 (Firefox 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 graduated value changes. Previously, Firefox only returned the most recent explicitly-set value (as through using the
valuesetter) (Firefox 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 (Firefox bug 1553215).
groupIdsettings are now included as members of the
MediaTrackSettingsobject returned by calls to
MediaStreamTrack.getSettings()(Firefox bug 1537986).
- 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).
- Hacks release post: Firefox 69 — a tale of Resize Observer, microtasks, CSS, and DevTools
- 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