Back to Content

Firefox 45 release notes for developers

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

latest11.5 KB
Original Source

To test the latest developer features of Firefox, install Firefox Developer Edition Firefox 45 was released on March 8, 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

  • Content Security Policy can now be set directly on the {{HTMLElement("meta")}} element (Firefox bug 663570).
  • The attribute referrer has been renamed referrerpolicy on {{HTMLElement("img")}}, {{HTMLElement("area")}}, {{HTMLElement("a")}}, and {{HTMLElement("iframe")}} (Firefox bug 1187357).
  • Changes in the viewport, or a resize, now trigger the reselection of responsive images for `` (Firefox bug 1166138).

CSS

  • {{cssxref("word-spacing")}} now allows percentage values (Firefox bug 1038663).

  • Our implementation of CSS Grids has been improved and is no more considered experimental; it is now activated by default in nightly and developer edition, but not for beta and release (Firefox bug 1000592):

    • Gutters, that is the grid-column-gap, grid-row-gap, and grid-gap properties are now supported (Firefox bug 1176792).
    • The implied minimum size of grid Items, that is the special {{cssxref("min-width")}} and {{cssxref("min-height")}} auto behavior has been implemented (Firefox bug 1176775).
    • {{cssxref("align-self")}} and {{cssxref("justify-self")}} are now supported on grid layouts (Firefox bug 1151213).
    • {{cssxref("align-content")}} and {{cssxref("justify-content")}} are now supported on grid layouts (Firefox bug 1151214).
    • Resolved value of grid-template-columns,grid-template-rows in px units (Firefox bug 978212).
    • The related feature {{cssxref("display")}}: contents has been supported since Firefox 37
  • Implement full support for CSS Box Alignment for CSS Grid, support the missing values: start, end, self-start, self-end, left, right, last-baseline, space-evenly (Firefox bug 1176782). CSS Box Alignment currently applies only to CSS Flexbox and CSS Grid.

  • [css-grid][css-flexbox] Implement grid/flex layout for <fieldset> (Firefox bug 1230207).

  • The inline-start and inline-end values have been added to {{cssxref("float")}} and {{cssxref("clear")}} (Firefox bug 1122918). They are enabled by default on Nightly and Aurora (Dev edition), as well as on Firefox OS; to activate it on a release or beta version, you need to flip the layout.css.float-logical-values.enabled to true.

  • The {{cssxref("text-emphasis")}}, {{cssxref("text-emphasis-style")}}, {{cssxref("text-emphasis-color")}}, and {{cssxref("text-emphasis-position")}} have been implemented; they are disabled by default (set layout.css.text-emphasis.enabled to true to activate them (Firefox bug 1040668).

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

    • Added -webkit-backface-visibility, -webkit-perspective and -webkit-perspective-origin for web compatibility, behind the preference layout.css.prefixes.webkit, defaulting to false (Firefox bug 1179444).

JavaScript

Interfaces/APIs/DOM

DOM & HTML DOM

WebGL

Our implementation of WebGL 2 has been extended:

IndexedDB

No change.

Service Workers

  • {{domxref("Clients.get()")}} and {{domxref("FetchEvent.clientId")}} have been implemented (Firefox bug 1222464.)
  • {{domxref("Clients.openWindow()")}} has been implemented (Firefox bug 1172870.)
  • The options object that can be passed as a parameter when invoking {{domxref("Clients.matchAll()")}} can now include an includeUncontrolled property. This is a boolean value — if set to true, the matching operation will return all service worker clients who share the same origin as the current service worker. Otherwise, it returns only the service worker clients controlled by the current service worker. The default is false.

WebRTC

No change.

New APIs

No change.

Miscellaneous

  • Web Speech Synthesis API has been implemented on Firefox Desktop (Firefox bug 1003439).
  • The {{domxref("Window/storage_event", "storage")}} event has been added.
  • The interface ComputedTiming have been added to our experimental implementation of Web Animations API (Firefox bug 1108055).
  • The {{domxref("Document.selectionchange_event", "Document.onselectionchange")}} event handler property has been added (Firefox bug 1231193).
  • After removing a video track from a media stream by calling {{domxref("MediaStream.removeTrack()")}} you can now add another video track later using {{domxref("MediaStream.addTrack()")}} and have it played (Firefox bug 1223696).

MathML

No change.

SVG

  • SVG stroke hit-testing is buggy when cairo is the Moz2D backend (Firefox bug 676001).
  • Unable to interact with elements who have large transform / translate values (Firefox bug 1217012).

Audio/Video

  • Fixed: Regression (since Firefox 41) whereby audio playback was stuttering due to duration time rounding errors (Firefox bug 1222866.)

HTTP

  • The jar: protocol has been disabled by default when accessed from Web content; you may enable this if necessary by setting the network.jar.block-remote-files preference to false (Firefox bug 1215235).

Security

  • A {{HTTPHeader("Content-Security-Policy")}} can now be specified using a {{HTMLElement("meta")}} element (Firefox bug 663570).
  • Support of the {{CSP("child-src")}} CSP policy directive has been implemented (Firefox bug 1045891).
  • EV certificates with a validity greater than 27 months are now considered and handled as DV certificates (Firefox bug 1222903).

Changes for add-on and Mozilla developers

Interfaces

No change.

XUL

JavaScript code modules

No change.

XPCOM

No change.

Search plugins

Starting in Firefox 45, search plugins located in the user's profile's searchplugins directory are no longer automatically loaded on startup. Instead, a list of user-installed plugins is maintained and only those plugins are loaded. In effect, this means that the only ways to install new search plugins are for the user to do so in the Firefox UX (via OpenSearch discovery, for instance) or for an add-on to install it. Also, when a new search plugin is installed, more information is recorded about where it came from, for future use by profile debugging and cleaning tools.

Other

  • WebIDL constructors could be called without the new operator in chrome context. Now such code will raise a TypeError as in Web content since Firefox 30. For example, var req = XMLHttpRequest(); needs to be var req = new XMLHttpRequest();.