Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 1077578 of Firefox 46 for developers

  • Revision slug: Mozilla/Firefox/Releases/46
  • Revision title: Firefox 46 for developers
  • Revision id: 1077578
  • Created:
  • Creator: Sheppy
  • Is current revision? No
  • Comment
Tags: 

Revision Content

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

{{page('/en-US/docs/Tools/Release_notes', 'Firefox_46')}}

HTML

  • When faced with an invalid type value, {{HTMLElement("ul")}} no longer maps to decimal, but now behaves as if no type value were specified ({{bug(241719)}}).
  • The attribute pattern on {{HTMLElement("input")}} is now treated as {{jsxref("RegExp", "a regular expression", "", 1)}} with "u" (unicode) flag ({{bug(1227906)}}).

CSS

  • Our implementation of CSS Grids has been updated:
    • The keywords auto-fill and auto-fit are now allowed in the repeat() function ({{bug(1118820)}}).
    • The true value has been renamed to unsafe; this affects the properties {{cssxref("justify-content")}}, {{cssxref("align-content")}}, {{cssxref("justify-self")}}, {{cssxref("align-self")}}, {{cssxref("justify-items")}} and {{cssxref("align-items")}} ({{bug(1230478)}}).
  • The properties {{cssxref("text-emphasis")}}, {{cssxref("text-emphasis-style")}}, {{cssxref("text-emphasis-color")}} and {{cssxref("text-emphasis-position")}} are now enabled by defaut ({{bug(1231485)}}).
  • Gecko now accepts the -webkit- prefixed version of some properties; it requires to switch layout.css.prefixes.webkit to true ({{bug(1213126)}}).
  • The experimental support of the {{cssxref("@font/font-display", "font-display")}} descriptor (of {{cssxref("@font")}}; it requires to switch layout.css.font-display.enabled to true ({{bug(1157064)}}).
  • Added support for @media (-webkit-transform-3d) as a media query for 3D transform support, if about:config pref layout.css.prefixes.webkit is set to true ({{bug(1239799)}}).
  • {{cssxref("linear-gradient()")}} support for the omission of 0deg units ({{bug(1239153)}}).
  •  [css-align] "unsafe start" (formerly "true start") should serialize to "start" etc ({{bug(1230398)}}).

JavaScript

  • The ES2015 (ES6) {{jsxref("RegExp.prototype.unicode", "RegExp unicode (u) flag", "", 1)}} has been implemented ({{bug(1135377)}}).
  • The ES2015 (ES6) block-level functions have been implemented ({{bug(1071646)}}).
  • The ES2015 (ES6) {{jsxref("TypedArray.prototype.sort()")}} method has been implemented ({{bug(1121937)}}).
  • The ES2015 (ES6) {{jsxref("Functions/arguments/@@iterator", "arguments[@@iterator]")}} has been implemented ({{bug(1067049)}}).
  • The experimental EcmaScript Shared Memory API has been implemented. See the {{jsxref("SharedArrayBuffer")}} and {{jsxref("Atomics")}} objects. To use this experimental API set javascript.options.shared_memory to true in about:config.
  • Redeclaration of let and const variables now throws a {{jsxref("SyntaxError")}} instead of a {{jsxref("TypeError")}} as per the ECMAScript specification ({{bug(1198833)}}).
  • In Strict mode, setting properties on {{Glossary("primitive")}} values will now throw a {{jsxref("TypeError")}} ({{bug(603201)}}).
  • The non-standard {{jsxref("WeakMap.prototype.clear()")}} and {{jsxref("WeakSet.prototype.clear()")}} methods have been removed ({{bug(1101817)}}).
  • The non-standard, static RegExp.multiline property is now deprecated ({{bug(1220457)}}).
  • Built-in accessor function names now have a "get" or "set" prefix ({{bug(1180290)}}, {{bug(1235656)}}).
  • {{jsxref("Operators/Array_comprehensions", "JS1.7/JS1.8 (legacy) array comprehensions", "#Differences_to_the_older_JS1.7JS1.8_comprehensions", 1)}} and {{jsxref("Operators/Generator_comprehensions", "JS1.7/JS1.8 (legacy) generator comprehensions", "#Differences_to_the_older_JS1.7JS1.8_comprehensions", 1)}} have been removed ({{bug(1220564)}}).

Interfaces/APIs/DOM

DOM & HTML DOM

  • The deprecated {{domxref("Window.showModalDialog()")}} method is no more available when Firefox runs in multi-process mode (e10s) ({{bug(1234700)}}).
  • Added support for {{domxref("Document.elementsFromPoint")}} ({{bug(1164427)}}).
  • When a non-existent option of a {{HTMLElement("select")}} element is programmatically selected, instead of being incorrectly left unchanged, the {{htmlattrxref("selectedIndex", "select")}} value is now set to -1, the {{htmlattrxref("selectedOptions", "select")}} to an empty {{domxref("HTMLCollection")}}, and {{htmlattrxref("value", "select")}} to an empty string ({{bug(1203668)}}).

Canvas

  • The remaining parts of the experimental {{domxref("OffscreenCanvas")}} API has been implemented; new features: {{domxref("OffscreenCanvas.OffscreenCanvas", "OffscreenCanvas()")}} constructor,  {{domxref("OffscreenCanvas.toBlob()")}}, and {{domxref("OffscreenCanvas.transferToImageBitmap()")}}. To use this experimental API set gfx.offscreencanvas.enabled to true in about:config ({{bug(1172796)}}).
  • The {{domxref("ImageBitmap.close()")}} method is now supported ({{bug(1172796)}}).
  • A new {{domxref("ImageBitmapRenderingContext")}} rendering context is now implemented. Use "bitmaprenderer" with {{domxref("OffscreenCanvas.getContext()")}} or {{domxref("HTMLCanvasElement.getContext()")}} to obtain this context. ({{bug(1172796)}}).

WebGL

  • The {{domxref("WEBGL_compressed_texture_es3")}} extension has been implemented, allowing the use of ETC2 compressed texture formats ({{bug(917505)}}). To use this extension, set the preference webgl.enable-draft-extensions to true in about:config.

IndexedDB

No change.

Service Workers

  • {{domxref("FetchEvent.request")}} is now non-nullable (see {{bug("1238213")}}.)
  • {{domxref("Navigator.serviceWorker")}} has now been marked as SameObject (see {{bug("1238205")}}.)
  • {{domxref("ExtendableMessageEvent.ports")}} has now been marked as SameObject (see {{bug("1238225")}}.)

Fetch

  • {{domxref("Request.mode")}} now has a new value available, navigate, for supporting requests generated while navigating between documents (see {{bug("1209081")}}.)

WebRTC

No change.

New APIs

  • In SVG, the {{domxref("SVGStyleElement")}} interface now implements the {{domxref("LinkStyle")}} mixin ){{bug(1239128)}}.

Miscellaneous

  • The asynchronous {{domxref("FileReader")}} is now available in Web workers ({{bug(901097)}}).
  • Our experimental implementation of Web Animations API has been updated:
    • {{domxref("AnimationEffectTimingReadOnly")}} and {{domxref("AnimationEffectReadOnly.timing")}} have been implemented ({{bug(1214536)}}).
  • The Permissions API has now been enabled by default, for all release versions, not just Nightly as it previously was ({{bug(1221106)}}.)
  • Sanitization of WOFF fonts has been loosened a bit ({{bug (1244693)}}).

MathML

No change.

SVG

No change.

Audio/Video

No change.

HTTP

No change.

Networking

  • Support of {{rfc(7686)}} has been added: by default there is no attempt to resolve domain with the TLD .onion. This is controlled by the preference network.dns.blockDotOnion. Add-ons supporting Tor can swap this pref. ({{bug(1228457)}})

Security

No change.

Changes for add-on and Mozilla developers

Interfaces

No change.

XUL

No change.

JavaScript code modules

No change.

XPCOM

No change.

Other

No change.

See also

Older versions

{{Firefox_for_developers(45)}}

Revision Source

<p><a href="https://www.mozilla.org/firefox/developer/" style="float: right; margin-bottom: 20px; padding: 10px; text-align: center; border-radius: 4px; display: inline-block; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">To test the latest developer features of Firefox,<br />
 install Firefox Developer Edition</a>Firefox 46 was released on April 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.</p>

<h2 id="Changes_for_Web_developers">Changes for Web developers</h2>

<h3 id="Developer_Tools">Developer Tools</h3>

<p>{{page('/en-US/docs/Tools/Release_notes', 'Firefox_46')}}</p>

<h3 id="HTML">HTML</h3>

<ul>
 <li>When faced with an invalid <code>type</code> value, {{HTMLElement("ul")}} no longer&nbsp;maps&nbsp;to&nbsp;<code>decimal</code>, but&nbsp;now behaves as if no&nbsp;<code>type</code> value were specified&nbsp;({{bug(241719)}}).</li>
 <li>The attribute <code>pattern</code> on {{HTMLElement("input")}} is now treated as {{jsxref("RegExp", "a regular expression", "", 1)}} with <code>"u"</code> (unicode) flag ({{bug(1227906)}}).</li>
</ul>

<h3 id="CSS">CSS</h3>

<ul>
 <li>Our implementation of CSS Grids has been updated:
  <ul>
   <li>The keywords <code>auto-fill</code> and <code>auto-fit</code> are now allowed in the <code>repeat()</code> function ({{bug(1118820)}}).</li>
   <li>The <code>true</code> value has been renamed to <code>unsafe</code>; this affects the properties {{cssxref("justify-content")}}, {{cssxref("align-content")}}, {{cssxref("justify-self")}}, {{cssxref("align-self")}}, {{cssxref("justify-items")}} and {{cssxref("align-items")}} ({{bug(1230478)}}).</li>
  </ul>
 </li>
 <li>The properties {{cssxref("text-emphasis")}}, {{cssxref("text-emphasis-style")}}, {{cssxref("text-emphasis-color")}} and {{cssxref("text-emphasis-position")}} are now enabled by defaut ({{bug(1231485)}}).</li>
 <li>Gecko now accepts the <code>-webkit-</code> prefixed version of <a href="https://wiki.mozilla.org/Compatibility/Mobile/Non_Standard_Compatibility">some properties</a>; it requires to switch <code>layout.css.prefixes.webkit</code> to <code>true</code> ({{bug(1213126)}}).</li>
 <li>The experimental support of the&nbsp;{{cssxref("@font/font-display", "font-display")}} descriptor (of {{cssxref("@font")}}; it requires to switch <code>layout.css.font-display.enabled</code> to <code>true</code> ({{bug(1157064)}}).</li>
 <li>Added support for <a href="/en-US/docs/Web/CSS/@media/-webkit-transform-3d"><code>@media (-webkit-transform-3d)</code></a> as a media query for 3D transform support, if about:config pref <code>layout.css.prefixes.webkit</code> is set to <code>true</code> ({{bug(1239799)}}).</li>
 <li>{{cssxref("linear-gradient()")}}&nbsp;support for the omission of <code>0deg</code> units ({{bug(1239153)}}).</li>
 <li>&nbsp;[css-align] "unsafe start" (formerly "true start") should serialize to "start" etc&nbsp;({{bug(1230398)}}).</li>
</ul>

<h3 id="JavaScript">JavaScript</h3>

<ul>
 <li>The&nbsp;ES2015 (ES6) {{jsxref("RegExp.prototype.unicode", "RegExp unicode (u) flag", "", 1)}} has been implemented ({{bug(1135377)}}).</li>
 <li>The ES2015 (ES6) block-level functions have been implemented ({{bug(1071646)}}).</li>
 <li>The ES2015 (ES6) {{jsxref("TypedArray.prototype.sort()")}} method has been implemented ({{bug(1121937)}}).</li>
 <li>The ES2015 (ES6) {{jsxref("Functions/arguments/@@iterator", "arguments[@@iterator]")}} has been implemented ({{bug(1067049)}}).</li>
 <li>The experimental <a href="https://tc39.github.io/ecmascript_sharedmem/shmem.html">EcmaScript Shared Memory API</a> has been implemented. See the {{jsxref("SharedArrayBuffer")}} and {{jsxref("Atomics")}} objects. To use this experimental API set <code>javascript.options.shared_memory</code> to <code>true</code> in about:config.</li>
 <li>Redeclaration of <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/let">let</a></code> and <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/const">const</a></code> variables now throws a {{jsxref("SyntaxError")}} instead of a {{jsxref("TypeError")}} as per the ECMAScript specification ({{bug(1198833)}}).</li>
 <li>In <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">Strict mode</a>, setting properties on {{Glossary("primitive")}} values will now throw a {{jsxref("TypeError")}} ({{bug(603201)}}).</li>
 <li>The non-standard {{jsxref("WeakMap.prototype.clear()")}} and {{jsxref("WeakSet.prototype.clear()")}} methods have been removed ({{bug(1101817)}}).</li>
 <li>The non-standard, static <code>RegExp.multiline</code> property is now deprecated ({{bug(1220457)}}).</li>
 <li>Built-in accessor function names now have a "get" or "set" prefix ({{bug(1180290)}}, {{bug(1235656)}}).</li>
 <li>{{jsxref("Operators/Array_comprehensions", "JS1.7/JS1.8 (legacy) array comprehensions", "#Differences_to_the_older_JS1.7JS1.8_comprehensions", 1)}} and {{jsxref("Operators/Generator_comprehensions", "JS1.7/JS1.8 (legacy) generator comprehensions", "#Differences_to_the_older_JS1.7JS1.8_comprehensions", 1)}} have been removed ({{bug(1220564)}}).</li>
</ul>

<h3 id="InterfacesAPIsDOM">Interfaces/APIs/DOM</h3>

<h4 id="DOM_HTML_DOM">DOM &amp; HTML DOM</h4>

<ul>
 <li>The deprecated {{domxref("Window.showModalDialog()")}} method is no more available when Firefox runs in multi-process mode (e10s) ({{bug(1234700)}}).</li>
 <li>Added support for {{domxref("Document.elementsFromPoint")}} ({{bug(1164427)}}).</li>
 <li>When a non-existent option of a {{HTMLElement("select")}} element is programmatically selected, instead of being incorrectly left unchanged, the {{htmlattrxref("selectedIndex", "select")}} value is now set to <code>-1</code>, the {{htmlattrxref("selectedOptions", "select")}} to an empty {{domxref("HTMLCollection")}}, and {{htmlattrxref("value", "select")}} to an empty string ({{bug(1203668)}}).</li>
</ul>

<h4 id="Canvas">Canvas</h4>

<ul>
 <li>The remaining parts of the experimental {{domxref("OffscreenCanvas")}} API has been implemented; new features: {{domxref("OffscreenCanvas.OffscreenCanvas", "OffscreenCanvas()")}} constructor,&nbsp; {{domxref("OffscreenCanvas.toBlob()")}}, and {{domxref("OffscreenCanvas.transferToImageBitmap()")}}. To use this experimental API set <code>gfx.offscreencanvas.enabled</code> to <code>true</code> in about:config ({{bug(1172796)}}).</li>
 <li>The {{domxref("ImageBitmap.close()")}} method is now supported ({{bug(1172796)}}).</li>
 <li>A new {{domxref("ImageBitmapRenderingContext")}} rendering context is now implemented. Use <code>"bitmaprenderer"</code> with {{domxref("OffscreenCanvas.getContext()")}} or {{domxref("HTMLCanvasElement.getContext()")}} to obtain this context. ({{bug(1172796)}}).</li>
</ul>

<h4 id="WebGL">WebGL</h4>

<ul>
 <li>The {{domxref("WEBGL_compressed_texture_es3")}} extension has been implemented, allowing the use of <a href="https://en.wikipedia.org/wiki/Ericsson_Texture_Compression">ETC2 compressed texture formats </a>({{bug(917505)}}). To use this extension, set the preference <code>webgl.enable-draft-extensions</code> to <code>true</code> in about:config.</li>
</ul>

<h4 id="IndexedDB">IndexedDB</h4>

<p><em>No change.</em></p>

<h4 id="Service_Workers">Service Workers</h4>

<ul>
 <li>{{domxref("FetchEvent.request")}} is now non-nullable (see {{bug("1238213")}}.)</li>
 <li>{{domxref("Navigator.serviceWorker")}} has now been marked as SameObject (see {{bug("1238205")}}.)</li>
 <li>{{domxref("ExtendableMessageEvent.ports")}} has now been marked as SameObject (see {{bug("1238225")}}.)</li>
</ul>

<h4 id="Fetch">Fetch</h4>

<ul>
 <li>{{domxref("Request.mode")}} now has a new value available, <code>navigate</code>, for supporting requests generated while navigating between documents (see {{bug("1209081")}}.)</li>
</ul>

<h4 id="WebRTC">WebRTC</h4>

<p><em>No change.</em></p>

<h4 id="New_APIs">New APIs</h4>

<ul>
 <li>In SVG, the {{domxref("SVGStyleElement")}} interface now implements the {{domxref("LinkStyle")}} mixin ){{bug(1239128)}}.</li>
</ul>

<h4 id="Miscellaneous">Miscellaneous</h4>

<ul>
 <li>The asynchronous {{domxref("FileReader")}} is now available in Web workers ({{bug(901097)}}).</li>
 <li>Our experimental implementation of <a href="/en-US/docs/Web/API/Web_Animations_API">Web Animations API</a> has been updated:
  <ul>
   <li>{{domxref("AnimationEffectTimingReadOnly")}} and {{domxref("AnimationEffectReadOnly.timing")}} have been implemented ({{bug(1214536)}}).</li>
  </ul>
 </li>
 <li>The <a href="/en-US/docs/Web/API/Permissions_API">Permissions API</a> has now been enabled by default, for all release versions, not just Nightly as it previously was ({{bug(1221106)}}.)</li>
 <li>Sanitization of WOFF fonts has been loosened a bit ({{bug (1244693)}}).</li>
</ul>

<h3 id="MathML">MathML</h3>

<p><em>No change.</em></p>

<h3 id="SVG">SVG</h3>

<p><em>No change.</em></p>

<h3 id="AudioVideo">Audio/Video</h3>

<p><em>No change.</em></p>

<h2 id="HTTP">HTTP</h2>

<p><em>No change.</em></p>

<h2 id="Networking">Networking</h2>

<ul>
 <li>Support of {{rfc(7686)}} has been added: by default there is no attempt to resolve domain with the TLD <code>.onion</code>. This is controlled by the preference <code>network.dns.blockDotOnion</code>. Add-ons supporting Tor can swap this pref. ({{bug(1228457)}})</li>
</ul>

<h2 id="Security">Security</h2>

<p><em>No change.</em></p>

<h2 id="Changes_for_add-on_and_Mozilla_developers">Changes for add-on and Mozilla developers</h2>

<h3 id="Interfaces">Interfaces</h3>

<p><em>No change.</em></p>

<h3 id="XUL">XUL</h3>

<p><em>No change.</em></p>

<h3 id="JavaScript_code_modules">JavaScript code modules</h3>

<p><em>No change.</em></p>

<h3 id="XPCOM">XPCOM</h3>

<p><em>No change.</em></p>

<h3 id="Other">Other</h3>

<p><em>No change.</em></p>

<h2 id="See_also">See also</h2>

<ul>
 <li><a href="https://www.fxsitecompat.com/en-US/versions/46/">Site Compatibility for Firefox 46</a></li>
</ul>

<h2 id="Older_versions">Older versions</h2>

<p>{{Firefox_for_developers(45)}}</p>
Revert to this revision