Firefox 68 for developers

This article provides information about the changes in Firefox 68 that will affect developers. Firefox 68 was released on July 9, 2019.

Changes for web developers

Developer tools

Browser/web console

  • The Web console now shows more information about CSS warnings, including a node list of the DOM elements that used the rule (bug 1093953).
  • You can now filter content in the Web console using regular expressions (bug 1441079).
  • The Browser console now allows you to show or hide messages from the content process by setting or clearing the checkbox labeled Show Content Messages (bug 1260877).

JavaScript debugger

  • You can now Search in all files in the current project from the debugger by pressing Shift + Ctrl + F (Windows or Linux) or Shift + Cmd + F (macOS) (bug 1320325).

Network monitor

  • The Network monitor request list now allows you to block a specific URL (bug 1151368).
  • You can now resend a network request without editing the method, URL, parameters, and headers, using the Resend command on the context menu (bug 1422014).
  • The context menu of the Network monitor Headers tab now allows you to copy all or some of the header information to the clipboard in JSON format (bug 1442249).

Page inspector

  • A button has been added to the rules panel of the Page inspector that allows you to toggle the display of any print media queries (bug 1534984).
  • The fonts panel now includes a slider to modify letter-spacing (bug 1536237).
  • A warning icon appears next to unsupported CSS properties or rules that have invalid values, to help you understand why certain styles are not being applied (bug 1306054).

Storage inspector

Other

  • The Accessibility Inspector now includes a new Check for issues feature, which will include a number of audit tools to highlight accessibility problems on your web pages. The first available check is contrast, for highlighting color contrast problems.
  • The preference that controls the visibility of internal extensions (system add-ons and hidden extensions) on the about:debugging page has been changed from devtools.aboutdebugging.showSystemAddons to devtools.aboutdebugging.showHiddenAddons (bug 1544372).
  • Responsive design mode has been redesigned — the Device Settings dialog (device selection menu > Edit List...) is now more intuitive and simpler to use (bug 1487857).

Removals

HTML

  • The <track> element — represented by HTMLTrackElement — now receives a cuechange event in addition to the TextTrack itself, if the text track is a contained by a media element (bug 1548731).
  • <link> elements support the disabled attribute again, albeit with different behavior. When disabled is set on a <link> element along with rel="stylesheet", the referenced stylesheet is not loaded during page load, and will be loaded on demand when the disabled attribute is changed to false or removed (bug 1281135).

Removals

CSS

Removals

SVG

No changes.

JavaScript

APIs

CSS Object Model (CSSOM)

  • The legacy rules property and addRule() and removeRule() methods have been added to the CSSStyleSheet interface. These were introduced by Internet Explorer 9 and have never managed to quite be stamped out, so they have been added to improve compatibility with the small percentage of sites that still use them (bug 1545823).

DOM

DOM events

  • Firefox for Android no longer incorrectly sends a resize event until after the first frame is painted; this improves web compatibility with sites that don't expect this event to occur (bug 1528052).
  • The dispatching of events for non-primary mouse buttons has been made to more closely follow the specification; the click event is no longer sent when non-primary buttons are clicked, instead using auxclick. In addition, dblclick no longer fires for non-primary buttons (bug 1379466).
  • The proprietary MouseEvent.mozPressure property has been deprecated, and will now trigger a warning in the console (bug 1165211).

Media, Web Audio, and WebRTC

  • Due to changes in the Google Play store's policies, starting with Firefox 68 for Android, the OpenH264 codec used to handle AVC/H.264 video in WebRTC connections can no longer be downloaded and installed. Therefore, fresh installs of Firefox on Android devices no longer support AVC in WebRTC calls. If you upgrade from earlier versions of Firefox and already have the codec downloaded, it will continue to work. This does not affect other platforms. For more details, see this article on SUMO or bug 1548679.
  • WebRTC has been updated to recognize that a null candidate passed into the icecandidate event handler, indicating the receipt of a candidate, instead indicates that there are no further candidates coming; when this happens the ICE gathering (iceGatheringState) state reaches complete (bug 1318167).
  • The RTCRtpReceiver methods getContributingSources() and getSynchronizationSources() now support video tracks; previously they only worked on audio (bug 1534466).
  • The Web Audio API MediaStreamTrackAudioSourceNode interface is now supported, as is the method AudioContext.createMediaStreamTrackSource() (bug 1324548).
  • RTCDataChannel.negotiated is now implemented (bug 1529695).
  • The MediaStreamAudioSourceNode() constructor has been updated to match the current specification's definition that the "first audio track" in the stream is the track whose ID comes first in lexicographical order (bug 1324548).
  • getUserMedia() may no longer be used from a non-secure context; attempting to do so now throws a NotAllowedError exception. Secure contexts are those loaded using HTTPS, those located using the file:/// scheme, and those loaded from localhost. For now, if you must, you can re-enable the ability to perform insecure calls to getUserMedia() by setting the preference media.getusermedia.insecure.enabled to true (bug 1335740).

    Note: In the future, Firefox will also remove the navigator.mediaDevices property on insecure contexts, preventing all access to the MediaDevices APIs. This is already the case in Nightly builds.

Removals

HTTP

  • The HTTP Clear-Site-Data header no longer supports the executionContexts directive. This was removed due to problems with interactions between interconnections among different kinds of data at different points in the navigation process and the way the specification is designed. It has been proposed that this directive be removed from the specification for this reason, among others (bug 1548034).

Removals

  • The Content-Security-Policy directive require-sri-for is no longer supported due to concerns about its standardization status. It was previously available only behind a preference, which was off by default (bug 1386214).

Security

WebDriver conformance (Marionette)

Bug fixes

  • If WebDriver:SwitchToWindow changes the selection to a different window it now waits for its focus and activate events before returning (bug 1335085).
  • Fixed the TypeError: this.tabModal is null failure, which sometimes appeared when interacting with modal dialogs or user prompts (bug 1538782)

Other

  • Disabled the feature to force unloading background tabs on low memory conditions, to prevent top-level browser contexts from magically disappearing (bug 1553748).
  • Disabled privileged content processes that caused HTTP authentication dialogs not to appear when navigating to a website after opening a new tab (bug 1558763).

Plugins

No changes.

Changes for add-on developers

API changes

  • The proxy.register() and proxy.unregister() functions have been deprecated and will be removed from Firefox 71 (bug 1545811).
  • A boolean flag, incognito, has been added to the proxy.RequestDetails. object. When true, it indicates that this was a private browsing request (bug 1545163).
  • The webRequest.RequestFilter parameters can include an incognito parameter. If provided, requests that do not match the incognito state (true or false) will be filtered out (bug 1548177).
  • A string value, cookieStoreId, representing the cookie store ID of the current context, has been added to the proxy.RequestDetails. object (bug 1545420).
  • When an add-on attempts to add a bookmark folder to the root folder, the resulting error message is now much more intuitive (bug 1512171).
  • The promise returned by browser.tabs.duplicate() now resolves immediately, before the tabs are completely loaded (bug 1394376).
  • Support has been added for chrome.storage.managed, allowing web extension settings to be implemented via enterprise policy (bug 1230802).

Manifest changes

No changes.

See also

Older versions