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 519887 of Firefox 27 for developers

  • Revision slug: Mozilla/Firefox/Releases/27
  • Revision title: Firefox 27 for developers
  • Revision id: 519887
  • Created:
  • Creator: dbruant
  • Is current revision? No
  • Comment
Tags: 

Revision Content

Firefox 27 was released on February 4, 2014. 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.

Want to help document Firefox 27? See the list of bugs that need to be written about and pitch in!

Changes for Web developers

Developer Tools

  • Breakpoints can now be set on DOM events.
  • Javascript in the debugger panel can be unminified, using the { } button.
  • The inspector now has edit-element-html feature, without needing an addon.
  • Background-urls and colors have preview in inspector. Even hovering over canvas elements will give a popup with an image preview.
  • Reflow logging has been added.
  • Styles of SVG elements are now inspectable ({{Bug(921191)}}).
  • Failure to find the image when clicking url link in CSS inspector has been fixed ({{Bug(921686)}}).

More details in this post.

CSS

  • The -moz-grab and -moz-grabbing keywords on the CSS {{cssxref("cursor")}} property have been unprefixed to grab and grabbing ({{bug("880672")}}).
  • Support for the -moz-hsla() and -moz-rgba() functional notations has been dropped. Only the unprefixed versions, hsla() and rgba() are supported from now on ({{bug("893319")}}).
  • The "true" value for {{cssxref("text-align")}} has been added ({{bug(929991)}}).
  • Experimental support of position:sticky is now active by default on non-release builds ({{bug("902992")}}). For releases builds, the layout.css.sticky.enabled preference still needs to be set to true.
  • The {{cssxref("all")}} shorthand property has been added ({{bug(920633)}}).
  • The {{cssxref("unset")}} global value has been added; it allows to reset any CSS property ({{bug(921731)}}).
  • Curly brackets are no longer allowed in HTML style attributes: doing <div style="{ display: none }"> was working in quirk mode, but won't anymore {{bug(915053)}}.
  • The {{cssxref("overflow")}} property now works on {{HTMLElement("fieldset")}} ({{bug(261037)}}).

HTML

  • The color value of the {{HTMLElement("input")}} {{htmlattrxref("type", "input")}} attribute has been implemented on desktop platforms. It was already available on mobile ones.
  • The allow-popups directive is now supported with the {{htmlattrxref("sandbox", "iframe")}} attribute of the {{HTMLElement("iframe")}} element ({{bug(766282)}}).
  • Blending of HTML elements using the {{cssxref("mix-blend-mode")}} property has been implemented. The layout.css.mix-blend-mode.enabled preference must be set to true ({{bug(902525)}}).

JavaScript

EcmaScript 6 (Harmony) implementation continues!

  • The Harmony spread operator is now supported in Function calls ({{bug("762363")}}).
  • The mathematical function {{jsxref("Global_Objects/Math/hypot", "Math.hypot()")}} has been implemented ({{bug("896264")}}).
  • The yield* operator is now implemented ({{bug(666396)}}).
  • The MapIterator, SetIterator and ArrayIterator objects now match the specification ({{bug("881226")}}).
  • for..of loops now expect the ES6 standard iterator protocol moving away from SpiderMonkey old iterator protocol using StopIteration.
  • {{jsxref("String.match")}} and {{jsxref("String.replace")}} now reset {{jsxref("RegExp.lastIndex")}} ({{bug(501739)}}).

Interfaces/APIs/DOM

  • Support for the two setRange() methods on the {{domxref("HTMLInputElement")}} interface has been added ({{bug(850364)}}).
  • Support for the two setRange() methods on the {{domxref("HTMLTextAreaElement")}} interface has been added ({{bug(918940)}}).
  • The method getAllKeys() and openKeyCursor() have been added to {{domxref("IDBObjectStore")}} ({{bug(920633)}} and {{bug(920800)}}).
  • The {{domxref("HTMLFormControlsCollection")}} interface has been implemented ({{bug(913920)}}).
  • The {{domxref("CanvasRenderingContext2D")}} interface supports now the two methods getLineDash() and setLineDash() ({{bug(768067)}}).
  • The typeMustMatch attribute has been implemented on the {{domxref("HTMLObjectElement")}} interface ({{bug(827160)}}).
  • The copyFromChannel() and copyToChannel() methods have been added to {{domxref("AudioBuffer")}} ({{bug(915524)}}).
  • Event.isTrusted() is now unforgeable ({{bug(637248)}}).
  • The {{domxref("Navigator.vibrate()")}} method has been adapted to match the final specification: It now returns false when the list is too long or has too large entries, instead of throwing ({{bug(884935)}}).
  • As part of the ongoing effort to standardize global objects, the non-standard stylesheet change event interfaces, including StyleRuleChangeEvent, StyleSheetApplicableStateChangeEvent and StyleSheetChangeEvent, are no longer available from Web content. The CSSGroupRuleRuleList interface, the implementation detail of {{domxref("CSSRuleList")}}, has also been removed ({{Bug("872934")}} and {{bug(916871)}}).
  • atob now ignores whitespaces ({{bug(711180)}}).
  • WebGL: MOZ_ prefixed extension strings are deprecated. Support for them will be removed in the future. Use unprefixed extension string only. To get draft extensions, set the webgl.enable-draft-extensions preferences ({{bug(924176)}}).

MathML

No change.

SVG

  • Blending of SVG elements using the {{cssxref("mix-blend-mode")}} property has been implemented. The layout.css.mix-blend-mode.enabled preference must be set to true ({{bug(902525)}}).

Changes for addon and Mozilla developers

  • The downloads-indicator button has gone away. You should now use the downloads-button element. If you need to check that it has loaded its overlay, check for the indicator attribute on that button.
  • The chrome://browser/skin/downloads/indicator.css stylesheet is no longer referenced in Firefox.

Security

  • TLS 1.2 has been implemented for improved security ({{Bug(861266)}}).

See also

Older versions

{{Firefox_for_developers('26')}}

Revision Source

<p>Firefox 27 was released on February 4, 2014. 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>
<p>Want to help document Firefox 27? See the <a class="external" href="https://beta.elchi3.de/doctracker/#list=fx&amp;version=27.0">list of bugs that need to be written about</a> and pitch in!</p>
<h2 id="Changes_for_Web_developers">Changes for Web developers</h2>
<h3 id="Developer_Tools">Developer Tools</h3>
<ul>
 <li><span class="message"><span class="content">Breakpoints can now be set on DOM events</span></span>.</li>
 <li>Javascript in the debugger panel can be unminified, using the { } button.</li>
 <li>The inspector now has edit-element-html feature, without needing an addon.</li>
 <li>Background-urls and colors have preview in inspector. Even hovering over canvas elements will give a popup with an image preview.</li>
 <li>Reflow logging has been added.</li>
 <li>Styles of SVG elements are now inspectable ({{Bug(921191)}}).</li>
 <li>Failure to find the image when clicking url link in CSS inspector has been fixed ({{Bug(921686)}}).</li>
</ul>
<p>More details in <a href="https://hacks.mozilla.org/2013/11/firefox-developer-tools-episode-27-edit-as-html-codemirror-more/">this post</a>.</p>
<h3 id="CSS">CSS</h3>
<ul>
 <li>The <code>-moz-grab</code> and <code>-moz-grabbing</code> keywords on the CSS {{cssxref("cursor")}} property have been unprefixed to <code>grab</code> and <code>grabbing</code> ({{bug("880672")}}).</li>
 <li>Support for the <code>-moz-hsla()</code> and <code>-moz-rgba()</code> functional notations has been dropped. Only the unprefixed versions, <code>hsla()</code> and <code>rgba()</code> are supported from now on ({{bug("893319")}}).</li>
 <li>The "<code>true</code>" value for {{cssxref("text-align")}} has been added ({{bug(929991)}}).</li>
 <li>Experimental support of <code>position:sticky</code> is now active by default on non-release builds ({{bug("902992")}}). For releases builds, the <code>layout.css.sticky.enabled</code> preference still needs to be set to <code>true.</code></li>
 <li>The {{cssxref("all")}} shorthand property has been added ({{bug(920633)}}).</li>
 <li>The {{cssxref("unset")}} global value has been added; it allows to reset any CSS property ({{bug(921731)}}).</li>
 <li>Curly brackets are no longer allowed in HTML <code>style</code> attributes: doing <code>&lt;div style="{ display: none }"&gt;</code> was working in quirk mode, but won't anymore {{bug(915053)}}.</li>
 <li>The {{cssxref("overflow")}} property now works on {{HTMLElement("fieldset")}} ({{bug(261037)}}).</li>
</ul>
<h3 id="HTML">HTML</h3>
<ul>
 <li>The <code>color</code> value of the {{HTMLElement("input")}} {{htmlattrxref("type", "input")}} attribute has been implemented on desktop platforms. It was already available on mobile ones.</li>
 <li>The <code>allow-popups</code> directive is now supported with the {{htmlattrxref("sandbox", "iframe")}} attribute of the {{HTMLElement("iframe")}} element ({{bug(766282)}}).</li>
 <li>Blending of HTML elements using the {{cssxref("mix-blend-mode")}} property has been implemented. The <code>layout.css.mix-blend-mode.enabled</code> preference must be set to <code>true</code> ({{bug(902525)}}).</li>
</ul>
<h3 id="JavaScript">JavaScript</h3>
<p><a href="/en-US/docs/Web/JavaScript/ECMAScript_6_support_in_Mozilla" title="/en-US/docs/Web/JavaScript/ECMAScript_6_support_in_Mozilla">EcmaScript 6</a> (Harmony) implementation continues!</p>
<ul>
 <li>The Harmony <a href="https://wiki.ecmascript.org/doku.php?id=harmony:spread" title="https://wiki.ecmascript.org/doku.php?id=harmony:spread">spread operator</a> is now supported in Function calls ({{bug("762363")}}).</li>
 <li>The mathematical function {{jsxref("Global_Objects/Math/hypot", "Math.hypot()")}} has been implemented ({{bug("896264")}}).</li>
 <li>The <code>yield*</code> operator is now implemented ({{bug(666396)}}).</li>
 <li>The <code>MapIterator</code>, <code>SetIterator</code> and <code>ArrayIterator</code> objects now match the specification ({{bug("881226")}}).</li>
 <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of">for..of</a> loops now expect the ES6 standard <a href="/en-US/docs/Web/JavaScript/Guide/The_Iterator_protocol">iterator protocol</a> moving away from SpiderMonkey old iterator protocol using <code>StopIteration</code>.</li>
 <li>{{jsxref("String.match")}} and {{jsxref("String.replace")}} now reset {{jsxref("RegExp.lastIndex")}} ({{bug(501739)}}).</li>
</ul>
<h3 id="Interfaces.2FAPIs.2FDOM">Interfaces/APIs/DOM</h3>
<ul>
 <li>Support for the two <code>setRange()</code> methods on the {{domxref("HTMLInputElement")}} interface has been added ({{bug(850364)}}).</li>
 <li>Support for the two <code>setRange()</code> methods on the {{domxref("HTMLTextAreaElement")}} interface has been added ({{bug(918940)}}).</li>
 <li>The method <code>getAllKeys()</code> and <code>openKeyCursor()</code> have been added to {{domxref("IDBObjectStore")}} ({{bug(920633)}} and {{bug(920800)}}).</li>
 <li>The {{domxref("HTMLFormControlsCollection")}} interface has been implemented ({{bug(913920)}}).</li>
 <li>The {{domxref("CanvasRenderingContext2D")}} interface supports now the two methods <code>getLineDash()</code> and <code>setLineDash()</code> ({{bug(768067)}}).</li>
 <li>The <code>typeMustMatch</code> attribute has been implemented on the {{domxref("HTMLObjectElement")}} interface ({{bug(827160)}}).</li>
 <li>The <code>copyFromChannel()</code> and <code>copyToChannel()</code> methods have been added to {{domxref("AudioBuffer")}} ({{bug(915524)}}).</li>
 <li><code>Event.isTrusted()</code> is now unforgeable ({{bug(637248)}}).</li>
 <li>The {{domxref("Navigator.vibrate()")}} method has been adapted to match the final specification: It now returns <code>false</code> when the list is too long or has too large entries, instead of throwing ({{bug(884935)}}).</li>
 <li>As part of the ongoing effort to standardize global objects, the non-standard stylesheet change event interfaces, including <code>StyleRuleChangeEvent</code>, <code>StyleSheetApplicableStateChangeEvent</code> and <code>StyleSheetChangeEvent</code>, are no longer available from Web content. The <code>CSSGroupRuleRuleList</code> interface, the implementation detail of {{domxref("CSSRuleList")}}, has also been removed ({{Bug("872934")}} and {{bug(916871)}}).</li>
 <li><code>atob</code> now ignores whitespaces ({{bug(711180)}}).</li>
 <li><a href="/en-US/docs/Web/WebGL">WebGL</a>: <code>MOZ_</code> prefixed extension strings are deprecated. Support for them will be removed in the future. Use unprefixed extension string only. To get draft extensions, set the <code>webgl.enable-draft-extensions</code> preferences ({{bug(924176)}}).</li>
</ul>
<h3 id="MathML">MathML</h3>
<p><em>No change.</em></p>
<h3 id="SVG">SVG</h3>
<ul>
 <li>Blending of SVG elements using the {{cssxref("mix-blend-mode")}} property has been implemented. The <code>layout.css.mix-blend-mode.enabled</code> preference must be set to <code>true</code> ({{bug(902525)}}).</li>
</ul>
<h2 id="Changes_for_addon_and_Mozilla_developers">Changes for addon and Mozilla developers</h2>
<ul>
 <li>The <code>downloads-indicator</code> button has gone away. You should now use the <code>downloads-button</code> element. If you need to check that it has loaded its overlay, check for the <code>indicator</code> attribute on that button.</li>
 <li>The <code>chrome://browser/skin/downloads/indicator.css</code> stylesheet is no longer referenced in Firefox.</li>
</ul>
<h2 id="Security">Security</h2>
<ul>
 <li>TLS 1.2 has been implemented for improved security ({{Bug(861266)}}).</li>
</ul>
<h2 id="See_also">See also</h2>
<ul>
 <li><a href="/en-US/docs/Mozilla/Firefox/Releases/27/Site_Compatibility">Site Compatibility for Firefox 27</a></li>
 <li><a href="https://bugzilla.mozilla.org/buglist.cgi?resolution=FIXED&amp;component=Marionette&amp;product=Testing&amp;target_milestone=mozilla27">List of changes</a> in <a href="/en-US/docs/Mozilla/QA/Marionette">Marionette</a> for Firefox 27.</li>
</ul>
<h3 id="Older_versions">Older versions</h3>
<p>{{Firefox_for_developers('26')}}</p>
Revert to this revision