Back to Content

Firefox 44 release notes for developers

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

latest19.3 KB
Original Source

To test the latest developer features of Firefox, install Firefox Developer Edition. Firefox 44 was released on January 26, 2016. This article lists key changes that are useful not only for web developers, but also Firefox and Gecko developers as well as add-on developers.

Changes for web developers

Developer tools

Highlights:

All devtools bugs fixed between Firefox 43 and Firefox 44.

HTML

CSS

  • position: fixed; now always creates a new stacking context (Firefox bug 1179288).

  • The support of {{cssxref('@font-face/unicode-range', 'unicode-range')}} has been enabled by default (Firefox bug 1119062).

  • Our experimental implementation of CSS Writing Modes has been updated to reflect the latest specification:

    • The value sideways of the {{cssxref("text-orientation")}} property has been implemented and sideways-right has been made an alias of it (Firefox bug 1193488).
    • The value sideways-rl and sideways-lr of the {{cssxref("writing-mode")}} property (Firefox bug 1193488 and Firefox bug 1193519).
  • The non-standard properties -moz-math-display and -moz-window-shadow are no more available from Web content (Firefox bug 1207002, Firefox bug 1211040, and Firefox bug 1212607).

  • The {{cssxref("font-style")}} property now distinguishes between oblique and italic when both variants are available (Firefox bug 543715).

  • Though not supported, the properties {{cssxref("@page/marks", "marks")}}, {{cssxref("orphans")}}, {{cssxref("page")}}, {{cssxref("@page/size", "size")}}, and {{cssxref("widows")}}, were parsed and {{cssxref("@supports")}} was incorrectly reporting them as supported; this has been fixed and the properties are not parsed anymore, nor marked as supported (Firefox bug 1215702).

  • The internal value -moz-mac-unified-toolbar has been removed from the possible values for the {{cssxref("appearance")}} property (Firefox bug 1206468).

  • Several -webkit prefixed properties and values have been added for web compatibility, behind the preference layout.css.prefixes.webkit, defaulting to false (Firefox bug 837211):

    • -webkit-animation
    • -webkit-animation-delay
    • -webkit-animation-direction
    • -webkit-animation-duration
    • -webkit-animation-fill-mode
    • -webkit-animation-iteration-count
    • -webkit-animation-name
    • -webkit-animation-play-state
    • -webkit-animation-timing-function
    • -webkit-text-size-adjust
    • -webkit-transform
    • -webkit-transform-origin
    • -webkit-transform-style
    • -webkit-transition
    • -webkit-transition-delay
    • -webkit-transition-duration
    • -webkit-transition-property
    • -webkit-transition-timing-function
    • -webkit-border-radius
    • -webkit-border-top-left-radius
    • -webkit-border-top-right-radius
    • -webkit-border-bottom-left-radius
    • -webkit-border-bottom-right-radius
    • -webkit-appearance
    • -webkit-background-clip
    • -webkit-background-origin
    • -webkit-background-size
    • -webkit-border-image
    • -webkit-box-shadow
    • -webkit-box-sizing
    • -webkit-user-select
    • -webkit-linear-gradient() Firefox bug 1210575
    • -webkit-radial-gradient"() Firefox bug 1210575
    • -webkit-repeating-linear-gradient() Firefox bug 1210575
    • -webkit-repeating-radial-gradient() Firefox bug 1210575

JavaScript

New APIs

Changes

Removals

Interfaces/APIs/DOM

DOM & HTML DOM

  • For compatibility with specific existing sites, the property Document.charset has been implemented as an alias of {{domxref("Document.characterSet")}} (Firefox bug 647621).
  • Support for the window.sidebar.addSearchEngine() method, which allowed Web pages to invoke an installation of a Sherlock plugin, has been dropped and now it just logs a warning in the Web Console (Firefox bug 862148).
  • To fight unwanted pop-ups, prompts requested in {{domxref("Window/beforeunload_event", "beforeunload")}} events of pages that have not been interacted with are no more displayed (Firefox bug 636905).
  • The deprecated method {{domxref("MessageEvent.initMessageEvent()")}} has been reimplemented for backward compatibility (Firefox bug 949376).
  • The obsolete property DocumentType.internalSubset has been removed (Firefox bug 801545).
  • For compatibility with existing sites, the {{domxref("Window.orientation")}} property and the {{domxref("Window.orientationchange_event", "orientationchange")}} event have been implemented (Firefox bug 920734).
  • An {{HTMLElement("iframe")}} with explicit fullscreen request should not exit fullscreen implicitly (Firefox bug 1187801).
  • The events {{domxref("Element/mouseover_event", "mouseover")}}, {{domxref("Element/mouseout_event", "mouseout")}}, {{domxref("Element/mouseenter_event", "mouseenter")}}, {{domxref("Element/mouseleave_event", "mouseleave")}}, {{domxref("Element/pointermove_event", "pointermove")}}, {{domxref("Element/pointerover_event", "pointerover")}}, {{domxref("Element/pointerout_event", "pointerout")}}, {{domxref("Element/pointerenter_event", "pointerenter")}} and {{domxref("Element/pointerleave_event", "pointerleave")}} are now triggered for disabled form elements (Firefox bug 218093).
  • The method {{domxref("Element/matches", "Element.webkitMatchesSelector()")}} has been added (Firefox bug 1216193) to improve interoperability.
  • To match the spec, the method {{domxref("Document.createAttribute()")}} now converts the input to lower case (Firefox bug 1176313).
  • The non-standard dialog feature for {{domxref("Window.open()")}} is no longer available to Web content. It is still available to extensions and other code with chrome privileges (Firefox bug 1095236.

Canvas

  • A new experimental {{domxref("OffscreenCanvas")}} API that allows rendering contexts (such as WebGL) to run in Web Workers has been implemented. To use this experimental API set gfx.offscreencanvas.enabled to true in about:config (Firefox bug 709490). This API includes:
    • The {{domxref("OffscreenCanvas")}} interface,
    • {{domxref("HTMLCanvasElement.transferControlToOffscreen()")}}, and
    • WebGLRenderingContext.commit().
    • Several WebGL interfaces are now also available in a worker context when this API is enabled.

WebGL

IndexedDB

  • The {{domxref("IDBIndex.getAll()")}} and {{domxref("IDBIndex.getAllKeys()")}}, and there counterparts on {{domxref("IDBObjectStore")}} are now available by default (Firefox bug 1196841).

Service Workers

  • The ServiceWorkerMessageEvent and {{domxref("ExtendableMessageEvent")}} interfaces have been implemented (Firefox bug 1143717 and Firefox bug 1207068).
  • {{domxref("Headers")}} objects now support a pair iterator, meaning that the methods {{domxref("Headers.entries()")}}, {{domxref("Headers.keys()")}}, and {{domxref("Headers.values()")}} are now available; {{jsxref("Symbol.iterator")}} now also returns the default iterator for them (Firefox bug 1108181).
  • The {{domxref('XMLHttpRequest')}} API has been disabled on Service Workers (Firefox bug 931243).
  • The interface {{domxref("FetchEvent")}} now extends {{domxref("ExtendableEvent")}}, giving it access to the {{domxref("ExtendableEvent.waitUntil()")}} method. (Firefox bug 1214772).
  • Following a recent change in the specification, FetchEvent.client has been removed (Firefox bug 1218135).
  • To match the latest specification, the ServiceWorkerContainer.onreloadpage has been removed (Firefox bug 1218139).
  • The event handlers ServiceWorkerGlobalScope.onbeforeevicted and ServiceWorkerGlobalScope.onevicted have been removed as they weren't following the spec. They will be reintroduced in the future, but their removal will allow feature detection to work as expected (Firefox bug 1218142).
  • In the {{domxref("FetchEvent.FetchEvent", "FetchEvent()")}} constructor, if the isReload member is not present in the options dictionary, it now defaults to false (Firefox bug 1216401).
  • The {{domxref("Client.frameType")}} property is now implemented on the right interface; it was on {{domxref("WindowClient")}} before (Firefox bug 1218146).
  • When AppCache is used to provide offline support for a page, a warning message is now displayed in the console advising developers to use Service workers instead (Firefox bug 1204581.)
  • Service workers have been enabled by default in Gecko.

WebRTC

  • WebRTC interfaces have been unprefixed (Firefox bug 1155923). In particular:

    • mozRTCPeerConnection is now {{domxref("RTCPeerConnection")}}.
    • mozRTCIceCandidate is now {{domxref("RTCIceCandidate")}}.
    • mozRTCSessionDescription is now {{domxref("RTCSessionDescription")}}.
  • The {{domxref("RTCDataChannel.bufferedAmountLowThreshold")}} property, as well as the {{domxref("RTCDataChannel.bufferedamountlow_event", "bufferedamountlow")}} event and its event handler, have been implemented (Firefox bug 1178091).

  • The attribute {{domxref("RTCPeerConnection.canTrickleIceCandidates")}} has been added, the non-standard method RTCPeerConnection.updateIce() removed (Firefox bug 1209744).

  • The {{domxref("MediaStream")}} interface now supports the {{domxref("MediaStream.addTrack()")}} and {{domxref("MediaStream.removeTrack()")}} methods (Firefox bug 1103188).

  • The constructor {{domxref("MediaStream.MediaStream", "MediaStream()")}} has been implemented (Firefox bug 1070216).

  • Support for the non-standard constraint style option list for RTCOfferOptions has been removed.

New APIs

  • An experimental implementation of the Canvas API in Workers has landed: {{domxref("OffscreenCanvas")}} and {{domxref("HTMLCanvasElement.transferControlToOffscreen()")}} are available behind the gfx.offscreencanvas.enabled preference, currently disabled by default (Firefox bug 709490).
  • The Text2Speech API, part of Web Speech API, has now an OS X backend. But this is disabled by default (Firefox bug 1003452).

Miscellaneous

  • {{domxref("URLSearchParams")}} objects now support a pair iterator, meaning that the methods {{domxref("URLSearchParams.entries()")}}, {{domxref("URLSearchParams.keys()")}}, and {{domxref("URLSearchParams.values()")}} are now available; {{jsxref("Symbol.iterator")}} now also returns the default iterator for them (Firefox bug 1085284).
  • {{domxref("FormData")}} objects now support a pair iterator, meaning that the methods {{domxref("FormData.entries()")}}, {{domxref("FormData.keys")}}, and {{domxref("FormData.values()")}} are now available; {{jsxref("Symbol.iterator")}} now also returns the default iterator for them (Firefox bug 1127703).
  • When {{domxref("XMLHttpRequest.send()")}} is used with an HTML document, it now uses text/html instead of application/xml (Firefox bug 918771).
  • Speech synthesis (text-to-speech) has been implemented in Firefox Desktop for Mac and Linux, hidden behind the media.webspeech.synth.enabled flag in about:config (Firefox bug 1003452, Firefox bug 1003464.) See Web Speech API for more information.
  • Elements inside a {{HTMLElement("frame")}} or an {{HTMLElement('object')}} can't be set fullscreen anymore (Firefox bug 1212299).
  • Sanitization of WOFF fonts is a bit more stricter, leading to more incorrect fonts being rejected, this sanitization is made a bit less stricter in Firefox 46 (Firefox bug 1193050 and Firefox bug 1244693).

MathML

No change.

SVG

No change.

Audio/Video

No change.

HTTP

Networking

No change.

Security

Changes for add-on and Mozilla developers

Interfaces

No change.

XUL

No change.

JavaScript code modules

XPCOM

  • The nsIDOMWindow interface is now empty. Its contents were either no longer used, had moved elsewhere, or were only used from C++. The items available from C++ code now reside in the nsPIDOMWindow interface (Firefox bug 1216401).

Other