Firefox 67 for developers
=========================

This article provides information about the changes in Firefox 67 that will affect developers. Firefox 67 was released on May 21, 2019.

Changes for web developers
--------------------------

### Developer tools

* Debugger updates:
    + Column breakpoints allow you to select the specific point (or column) in a line of code where you want the debugger to break (Firefox bug 1528417).
    + Log points allow you to log specific information to the console during code execution without pausing execution and without the need to change the code.
    + The map scopes feature allows you to view the variables from the original source.
    + You can debug worker threads directly in the debugger.
* Web Console updates:
    + Navigate details in the console using the keyboard (Firefox bug 1424159).
    + Cmd + K will now clear the console of its contents on macOS (Firefox bug 1532939).
    + When the user clears the console, the error messages cache is cleared as well (Firefox bug 717611).
    + The user can import existing modules into the current page using import (Firefox bug 1517546).
    + A new context menu item allows the user to use the **Copy Link Location** command (Firefox bug 1457111).
    + Clicking a link in the Console causes the same behavior that it would in a content window (Firefox bug 1466040).
    + Clicking the source link for a code file in the Console panel navigates to the Debugger if debugger knows the file (Firefox bug 1447244).
    + When the user has filtered the contents of the console, an icon will be added to the filter text box to clear the filter (Firefox bug 1525821).
* Network Monitor enhancements:
    + The Header panel of the Network monitor will now display a notification for resources belonging to a known tracker (Firefox bug 1485416).
    + In the Network monitor request columns, you can control the visible columns and column sorting. The context menu now includes a command to restore the list sort parameters to the default (Firefox bug 1454962).
    + You can change the width of the columns in the Network Monitor to suit your workflow (Firefox bug 1358414).

#### Removals

* The following Developer Tools panels have been removed (see Deprecated tools for details):
    + Canvas debugger (Firefox bug 1403938).
    + Shader editor (Firefox bug 1342237).
    + WebAudio editor (Firefox bug 1403944).
* The following Developer Tools have been deprecated (see Deprecated tools for details):
    + WebIDE (Firefox bug 1539462).
    + Connect… page (Firefox bug 1539462).
### HTML

* `<input>` elements with `autocomplete="new-password"` set on them will no longer have previously saved passwords auto-filled (Firefox bug 1119063).
### CSS

* The `revert` keyword has been implemented (Firefox bug 1215878).
* The `break-word` value of the `word-break` property is now supported (Firefox bug 1296042).
* The `prefers-color-scheme` media feature is now supported (Firefox bug 1494034).
* Custom `cursor`s of greater than 32px in size are now disallowed, to mitigate potential malware uses of large cursors (Firefox bug 1445844).

#### Removals

* Use of the proprietary `-moz-binding` property is now restricted to chrome and UA-stylesheets (Firefox bug 1523712).
### SVG

*No changes.*

### JavaScript

* `String.prototype.matchAll` has been implemented and enabled by default (Firefox bug 1435829, Firefox bug 1531830).
* Support for the dynamic module `import()` proposal is now available by default (Firefox bug 1517546).
* The hashbang grammar proposal is now implemented (Firefox bug 1519097).
### APIs

#### DOM

* The default value for `Response.statusText` is now `""` (Firefox bug 1508996).
* User gestures are now preserved for rejected calls to `Document.requestStorageAccess`, as well as fulfilled calls (Firefox bug 1522912).

#### DOM events

* CSS transition (Firefox bug 1530239) and animation (Firefox bug 1531605) events now fire on disabled (e.g. form) elements.
* `InputEvent.data` and `InputEvent.dataTransfer` have been implemented (Firefox bug 998941).
* The `insertFromPasteAsQuotation` `InputEvent.inputType` value is now supported (Firefox bug 1532527).

#### Workers/Service workers

* Strict MIME type checks are now enforced on scripts imported by `WorkerGlobalScope.importScripts()` (Firefox bug 1514680).

#### Media, Web Audio, and WebRTC

* The AV1 video codec is now supported on Linux.
* dav1d is now the default media decoder for AV1 (see for example Firefox bug 1533742 and Firefox bug 1535038).
* Calling `RTCPeerConnection.addTrack()` without specifying any streams to which to add the new track now works as expected: it adds a streamless track to the connection. Each peer is responsible for managing the association between the track and any stream on its end (Firefox bug 1231414).
* The `MediaDeviceInfo.groupId` property is now implemented (Firefox bug 1213453). While it has existed in Firefox since Firefox 39, it did not actually gather related devices together into the same group IDs.
* The `RTCIceCandidate.usernameFragment` property is now implemented (Firefox bug 1490658).
* WebVTT has been revised to correctly use `auto` as the default for the `VTTCue` object's `positionAlign` property, instead of `center`. This causes the cue box's alignment to correspond to the alignment of the text within it (Firefox bug 1528420).

#### Canvas and WebGL

* The `EXT_float_blend` WebGL extension has been enabled by default (Firefox bug 1535808).

#### Removals

* The deprecated `ShadowRoot.getElementsByTagName`, `ShadowRoot.getElementsByTagNameNS`, and `ShadowRoot.getElementsByClassName` properties (part of Shadow DOM v0) have been removed (Firefox bug 1535438).
* `document.createEvent("TouchEvent")`, `document.createTouch()`, `document.createTouchList()`, and the `ontouch*` event handler properties have been disabled on desktop to improve web compatibility on websites where touch support is used for mobile detection (Firefox bug 1412485). In such cases, websites have been seen to behave incorrectly or unexpectedly on touchscreen laptops.
### Security

* Notifications are now only available in a secure context (Firefox bug 1429432).
* Firefox now blocks the loading of external protocol URLs in `<iframe>`s (Firefox bug 1527882).
### WebDriver conformance (Marionette)

#### API changes

* Made `WebDriver:SendAlertText` conformant to the WebDriver specification (Firefox bug 1502360).

#### Bug fixes

* `WebDriver:NewWindow` will no longer timeout because inconsistencies across platforms regarding the `focus` event (Firefox bug 1523234).

#### Others

* Both `WebDriver:ExecuteScript` and `WebDriver:ExecuteAsyncScript` now use `Promises` internally (Firefox bug 1398095).
* `WebDriver:NewSession` returns Firefox's `BuildID` string as part of the capabilities object (Firefox bug 1525829).
Changes for add-on developers
-----------------------------

### API changes

* Using the `proxy.settings.set()` method to change ``BrowserSetting`` values will throw an exception unless the extension was granted private window access by the user (Firefox bug 1525447).
### Manifest changes

* A new manifest key, incognito, defines the behavior of an extension in private browsing windows or tabs (Firefox bug 1511636).
* The `toolbar_field_highlight` setting controls the background color used to indicate the current selection of text in the URL bar (Firefox bug 1450114).
* The `toolbar_field_highlight_text` setting controls the text color used to indicate the current selection of text in the URL bar (Firefox bug 1450114).
See also
--------

* Hacks release post: Firefox 67: Dark Mode CSS, WebRender, and more
Older versions
--------------

* 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
* Firefox 37 for developers
* Firefox 36 for developers