mozilla

Revision 507611 of Firefox 26 for developers

  • Revision slug: Mozilla/Firefox/Releases/26
  • Revision title: Firefox 26 for developers
  • Revision id: 507611
  • Created:
  • Creator: teoli
  • Is current revision? No
  • Comment

Revision Content

Firefox 26 was released on December 10, 2013. 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 26? See the list of bugs that need to be written about and pitch in!

Changes for Web developers

CSS

  • The {{cssxref("text-decoration-line")}} property, still prefixed, now considers 'blink' as a valid value, though it doesn't blink the content at all ({{bug("812995")}}).
  • The non-standard {{cssxref("-moz-text-blink")}} property has been removed ({{bug("812995")}}).
  • Support for the {{cssxref("image-orientation")}} property, in its CSS Images & Values Level 4 version, that is with the from-image keyword and EXIF support, has been added ({{bug(825771)}}).
  • Experimental support for position: sticky has been implemented and can be enabled by pref layout.css.sticky.enabled ({{bug(886646)}}).
  • The {{cssxref("text-align")}} property now applies to the {{cssxref("::-moz-placeholder")}} pseudo-element ({{bug(915551)}}).

HTML

  • The HTMLSelectElement.selectedOptions property has been implemented ({{bug("596681")}}).
  • In the {{HTMLElement("input")}} element of type email, values with domain labels longer than 63 chars are no more considered valid ({{bug("884332")}}).
  • The HTMLInputElement.width and height properties now return 0 when the type is not image ({{bug("905240")}}).
  • A {{HTMLElement("fieldset")}} element is now invalid, and can be styled using the {{cssxref(":invalid")}} pseudo-class, when one of the elements it contains is invalid ({{bug("717181")}}).

JavaScript

EcmaScript 6 (Harmony) implementation continues!

  • The ECMAScript 6 compliant syntax for Generators (yield) has been implemented ({{bug("666399")}}).
  • New mathematical methods have been implemented on Math: Math.fround() ({{bug("900125")}}).
  • The reserved words cannot be used for function names:such a usage now throws a SyntaxError ({{bug("907958")}}).

Interfaces/APIs/DOM

  • Make the last argument (doctype) to {{domxref("DOMImplementation.createDocument")}} optional ({{bug(909859)}}).
  • Implement the new {{domxref("element.classList")}} specification which permits adding/removing several classes with one call ({{bug(814014)}}).
  • The {{domxref("URL.URL", "URL()")}} constructor have been implemented on the {{domxref("URL")}} interface ({{bug("887364")}}).
  • The properties {{domxref("URLUtils.origin")}}, {{domxref("URLUtils.password")}}, and {{domxref("URLUtils.username")}} are now available to all interfaces implementing {{domxref("URLUtils")}}: {{domxref("URL")}}, {{domxref("Location")}}, {{domxref("HTMLAnchorElement")}}, and {{domxref("HTMLAreaElement")}} ({{bug("887364")}}).
  • The {{domxref("URL")}} interface is now accessible from Web Workers ({{bug("887364")}}).
  • IndexedDB can now be used as a "optimistic" storage area so it doesn't require any prompts and data is stored in a pool with LRU eviction policy, in short temporary storage ({{bug("785884")}}).
  • Path of the persistent storage has been changed from <profile>/indexedDB to <profile>/storage/persistent (on b2g from /data/local/indexedDB to /data/local/storage/persistent).
  • The {{domxref("Screen.orientation")}} property and {{domxref("Screen.lockOrientation()")}} method now support the default value, mapping to portrait-primary or landscape-primary, depending of the device ({{bug(908058)}}).
  • {{domxref("Event")}} constructors can be used in Web workers ({{bug(910910)}}).
  • Trying to set the {{domxref("Document.domain")}} property on a page embedded in an {{HTMLElement("iframe")}} with the sandbox attribute now throws a security error ({{bug(907892)}}).
  • The {{domxref("MessageEvent")}} interface has been updated to comply with the latest spec. The initMessageEvent method has been removed while the interface has now a constructor ({{bug(848294)}}).
  • The HTML5 MessageChannel API has been implemented, behind the dom.messageChannel.enabled preference ({{bug("677638")}}).
  • Support for VTTCue, behind the media.webvtt.enabled preference, like for all WebVTT-related implementations, has been added ({{bug("868509")}}).

MathML

  • Inconsistent renderings of {{MathMLElement("mmultiscripts")}},  {{MathMLElement("msub")}}, {{MathMLElement("msup")}} and {{MathMLElement("msubsup")}} have been unified and the error handling of these elements has been improved ({{bug("827713")}}).

SVG

  • The inclusion of SVG glyphs inside OpenType, SVG-in-OpenType, has been updated to match the current version of the specification ({{bug("906521")}}).
  • The SVGElement.ownerSVGElement() method doesn't throw anymore ({{bug("835048")}}).

Development tools

See also

Older versions

{{Firefox_for_developers('25')}}

Revision Source

<p>Firefox 26 was released on December 10, 2013. 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 26? See the <a class="external" href="http://beta.elchi3.de/doctracker/#list=fx&amp;version=26.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="CSS">CSS</h3>
<ul>
 <li>The {{cssxref("text-decoration-line")}} property, still prefixed, now considers <code>'blink'</code> as a valid value, though it doesn't blink the content at all ({{bug("812995")}}).</li>
 <li>The non-standard<code> </code>{{cssxref("-moz-text-blink")}} property has been removed ({{bug("812995")}}).</li>
 <li>Support for the {{cssxref("image-orientation")}} property, in its CSS Images &amp; Values Level 4 version, that is with the <code>from-image</code> keyword and EXIF support, has been added ({{bug(825771)}}).</li>
 <li>Experimental support for <code>position: sticky</code> has been implemented and can be enabled by pref <code>layout.css.sticky.enabled</code>&nbsp;({{bug(886646)}}).</li>
 <li>The {{cssxref("text-align")}} property now applies to the {{cssxref("::-moz-placeholder")}} pseudo-element ({{bug(915551)}}).</li>
</ul>
<h3 id="HTML">HTML</h3>
<ul>
 <li>The <code>HTMLSelectElement.selectedOptions</code> property has been implemented ({{bug("596681")}}).</li>
 <li>In the {{HTMLElement("input")}} element of type <code>email</code>, values with domain labels longer than 63 chars are no more considered valid ({{bug("884332")}}).</li>
 <li>The <code>HTMLInputElement.width</code> and <code>height</code> properties now return <code>0</code> when the <code>type</code> is not <code>image</code> ({{bug("905240")}}).</li>
 <li>A {{HTMLElement("fieldset")}} element is now invalid, and can be styled using the {{cssxref(":invalid")}} pseudo-class, when one of the elements it contains is invalid ({{bug("717181")}}).</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 ECMAScript 6 compliant syntax for <a href="http://wiki.ecmascript.org/doku.php?id=harmony:generators">Generators (yield)</a> has been implemented ({{bug("666399")}}).</li>
 <li>New mathematical methods have been implemented on <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math"><code>Math</code></a>: <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Math/fround" title="/en-US/docs/JavaScript/Reference/Global_Objects/Math/fround"><code>Math.fround()</code></a> ({{bug("900125")}}).</li>
 <li>The <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Reserved_Words">reserved words</a> cannot be used for function names:such a usage now throws a <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError"><code>SyntaxError</code></a> ({{bug("907958")}}).</li>
</ul>
<h3 id="Interfaces.2FAPIs.2FDOM">Interfaces/APIs/DOM</h3>
<ul>
 <li>Make the last argument (doctype) to {{domxref("DOMImplementation.createDocument")}} optional&nbsp;({{bug(909859)}}).</li>
 <li>Implement the new {{domxref("element.classList")}} specification which permits adding/removing several classes with one call&nbsp;({{bug(814014)}}).</li>
 <li>The {{domxref("URL.URL", "URL()")}} constructor have been implemented on the {{domxref("URL")}} interface ({{bug("887364")}}).</li>
 <li>The properties {{domxref("URLUtils.origin")}}, {{domxref("URLUtils.password")}}, and {{domxref("URLUtils.username")}} are now available to all interfaces implementing {{domxref("URLUtils")}}: {{domxref("URL")}}, {{domxref("Location")}}, {{domxref("HTMLAnchorElement")}}, and {{domxref("HTMLAreaElement")}} ({{bug("887364")}}).</li>
 <li>The {{domxref("URL")}} interface is now accessible from Web Workers ({{bug("887364")}}).</li>
 <li>IndexedDB can now be used as a "optimistic" storage area so it doesn't require any prompts and data is stored in a pool with LRU eviction policy, in short temporary storage ({{bug("785884")}}).</li>
 <li>Path of the persistent storage has been changed from <code>&lt;profile&gt;/indexedDB</code> to <code>&lt;profile&gt;/storage/persistent</code> (on b2g from <code>/data/local/indexedDB</code> to <code>/data/local/storage/persistent</code>).</li>
 <li>The {{domxref("Screen.orientation")}} property and {{domxref("Screen.lockOrientation()")}} method now support the <code>default</code> value, mapping to <code>portrait-primary</code> or <code>landscape-primary</code>, depending of the device ({{bug(908058)}}).</li>
 <li>{{domxref("Event")}} constructors can be used in Web workers ({{bug(910910)}}).</li>
 <li>Trying to set the {{domxref("Document.domain")}} property on a page embedded in an {{HTMLElement("iframe")}} with the <code>sandbox</code> attribute now throws a security error ({{bug(907892)}}).</li>
 <li>The {{domxref("MessageEvent")}} interface has been updated to comply with the latest spec. The <code>initMessageEvent</code> method has been removed while the interface has now a constructor ({{bug(848294)}}).</li>
 <li>The HTML5 <code>MessageChannel</code> API has been implemented, behind the <code>dom.messageChannel.enabled</code> preference ({{bug("677638")}}).</li>
 <li>Support for <code>VTTCue</code>, behind the <code>media.webvtt.enabled</code> preference, like for all WebVTT-related implementations, has been added ({{bug("868509")}}).</li>
</ul>
<h3 id="MathML">MathML</h3>
<ul>
 <li>Inconsistent renderings of {{MathMLElement("mmultiscripts")}},&nbsp; {{MathMLElement("msub")}}, {{MathMLElement("msup")}} and {{MathMLElement("msubsup")}} have been unified and the error handling of these elements has been improved ({{bug("827713")}}).</li>
</ul>
<h3 id="SVG">SVG</h3>
<ul>
 <li>The inclusion of SVG glyphs inside OpenType, <em>SVG-in-OpenType</em>, has been updated to match the current version of the specification ({{bug("906521")}}).</li>
 <li>The <span id="summary_alias_container"><span id="short_desc_nonedit_display"><code>SVGElement.ownerSVGElement()</code> method doesn't throw anymore ({{bug("835048")}}).</span></span></li>
</ul>
<h2 id="Development_tools">Development tools</h2>
<ul>
 <li>The Inspector is now remotable ({{bug(805526)}}).</li>
 <li>The web console text can be selected, {{cssxref("::before")}} and {{cssxref("::after")}} now inspectable, debugger and responsive design features are planned for this release. (<a href="https://hacks.mozilla.org/2013/09/new-features-in-the-firefox-developer-tools-episode-26/">https://hacks.mozilla.org/2013/09/new-features-in-the-firefox-developer-tools-episode-26/</a>)</li>
</ul>
<h2 id="See_also">See also</h2>
<ul>
 <li><a href="/en-US/docs/Mozilla/Firefox/Releases/26/Site_Compatibility">Site Compatibility for Firefox 26</a></li>
</ul>
<h3 id="Older_versions">Older versions</h3>
<p>{{Firefox_for_developers('25')}}</p>
Revert to this revision