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 519883 of Site Compatibility for Firefox 27

  • Revision slug: Mozilla/Firefox/Releases/27/Site_Compatibility
  • Revision title: Site Compatibility for Firefox 27
  • Revision id: 519883
  • Created:
  • Creator: dbruant
  • Is current revision? No
  • Comment

Revision Content

Firefox 27 was released on . While it has been developed to maintain compatibility as much as possible, the new version includes some changes affecting backward compatibility aimed at improving interoperability with the other browsers or following the latest Web standards. Here's the list of such changes — hope this helps whenever you test your sites or applications.

This article only explains the changes that may affect backward compatibility for websites. For the other new features and changes, please read the following documents:

Follow @MozWebCompat on Twitter for further updates.

CSS

-moz-grab and -moz-grabbing have been unprefixed

The unprefixed support of -moz-grab and -moz-grabbing keywords for the {{ cssxref("cursor") }} property has been added. Those prefixed keywords will be removed after a reasonable period of time.

-moz-rgba() and -moz-hsla() have been dropped

The support of the prefixed -moz-rgba() and -moz-hsla() functional notations for color values has been removed. The standard, unprefixed rgba() and hsla() notations should be used instead.

Curly brackets are no longer allowed in style attributes

Previously, in Firefox Quirks (backward compatibility) mode, the CSS parser allowed curly brackets around the contents of style attributes like <div style="{ color: blue; }">. This behavior has been removed from Firefox 27 for interoperability.

DOM

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.

atob now ignores whitespaces

The {{ domxref("window.atob") }} method, that decodes a Base64-encoded string, has been updated to ignore all space characters in the argument to comply with the latest HTML5 spec.

JavaScript

The iterator implementation has been updated to the latest spec

The implementation of the iterator protocol and for...of loop has been updated to comply with the ECMAScript 6 spec (moving away from the SpiderMonkey legacy iterator protocol using StopIteration). The iterator method of the Array, Map, Set and String interfaces has been renamed to @@iterator. Previously, the next method of an iterator returned a value from the array (or a key-value pair from the object), and raised a StopIteration exception when the iteration was done. The next method now returns an object like { done: false, value: value } then returns { done: true, value: undefined } when the iteration is done.

String.match and String.replace now reset RegExp.lastIndex

The String.match and String.replace methods have been refactored to resolve a spec conformance issue on RegExp.lastIndex. When those methods are called with a global regular expression, the lastIndex, if specified, will be reset to 0.

WebGL

Prefixed extensions have been deprecated

MOZ_ prefixed WebGL extension strings are now deprecated. Support for them will be removed in the future. Use unprefixed extension strings instead.

WebRTC

Deprecated RTCPeerConnection functionalities have been removed

Some non-standard functionalities deprecated since Firefox 24 have been removed from the (currently prefixed) {{ domxref("RTCPeerConnection") }} interface. Those include the localStreams, remoteStreams, readyState, onicechange and ongatheringchange attributes, as well as calling createAnswer or createOffer without failureCallback.

Revision Source

<p>Firefox&nbsp;27 was released on <time datetime="2014-02-04">February 4, 2014</time>. While it has been developed to maintain compatibility as much as possible, the new version includes some changes affecting backward compatibility aimed at improving interoperability with the other browsers or following the latest Web standards. Here's the list of such changes — hope this helps whenever you test your sites or applications.</p>
<p><strong>This article only explains the changes that may affect backward compatibility for websites</strong>. For the other new features and changes, please read the following documents:</p>
<ul>
 <li><a href="https://www.mozilla.org/en-US/firefox/27.0/releasenotes/">Firefox&nbsp;27 Release Notes</a></li>
 <li><a href="/en-US/docs/Mozilla/Firefox/Releases/27">Firefox&nbsp;27 for developers</a></li>
</ul>
<p>Follow <a href="https://twitter.com/MozWebCompat">@MozWebCompat</a> on Twitter for further updates.</p>
<section id="sect1">
 <h2 id="CSS">CSS</h2>
 <section id="sect2">
  <h3 id="-moz-grab_and_-moz-grabbing_have_been_unprefixed"><code>-moz-grab</code> and <code>-moz-grabbing</code> have been unprefixed</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=880672">Bug&nbsp;880672 – Unprefix -moz-grab and -moz-grabbing</a></li>
  </ul>
  <p>The unprefixed support of <code>-moz-grab</code> and <code>-moz-grabbing</code> keywords for the {{ cssxref("cursor") }} property has been added. Those prefixed keywords will be removed after a reasonable period of time.</p>
 </section>
 <section id="sect3">
  <h3 id="-moz-rgba()_and_-moz-hsla()_have_been_dropped"><code>-moz-rgba()</code> and <code>-moz-hsla()</code> have been dropped</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=893319">Bug&nbsp;893319 – remove -moz-rgba() and -moz-hsla()</a></li>
  </ul>
  <p>The support of the prefixed <code>-moz-rgba()</code> and <code>-moz-hsla()</code> functional notations for <a href="/en-US/docs/Web/CSS/color_value">color values</a> has been removed. The standard, unprefixed <code>rgba()</code> and <code>hsla()</code> notations should be used instead.</p>
 </section>
 <section id="sect4">
  <h3 id="Curly_brackets_are_no_longer_allowed_in_style_attributes">Curly brackets are no longer allowed in <code>style</code> attributes</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=915053">Bug&nbsp;915053 – remove quirk allowing {} around style attribute</a></li>
  </ul>
  <p>Previously, in Firefox <a href="/en-US/docs/Mozilla_Quirks_Mode_Behavior">Quirks (backward compatibility) mode</a>, the CSS parser allowed curly brackets around the contents of <code>style</code> attributes like <code>&lt;div&nbsp;style="{&nbsp;color:&nbsp;blue;&nbsp;}"&gt;</code>. This behavior has been removed from Firefox&nbsp;27 for interoperability.</p>
 </section>
</section>
<section id="sect5">
 <h2 id="DOM">DOM</h2>
 <section id="sect6">
  <h3 id="Some_CSS-related_interfaces_have_been_removed">Some CSS-related interfaces have been removed</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=872934">Bug&nbsp;872934 – convert style sheet change event interfaces to Web IDL and stick [NoInterfaceObject] on them</a></li>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=916871">Bug&nbsp;916871 – Remove classinfo bits for CSSGroupRuleRuleList</a></li>
  </ul>
  <p>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.</p>
 </section>
 <section id="sect7">
  <h3 id="atob_now_ignores_whitespaces"><code>atob</code> now ignores whitespaces</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=711180">Bug&nbsp;711180 – atob should ignore whitespace</a></li>
  </ul>
  <p>The {{ domxref("window.atob") }} method, that decodes a Base64-encoded string, has been updated to ignore all space characters in the argument to comply with the latest HTML5 spec.</p>
 </section>
</section>
<section id="sect8">
 <h2 id="JavaScript">JavaScript</h2>
 <section id="sect9">
  <h3 id="The_iterator_implementation_has_been_updated_to_the_latest_spec">The iterator implementation has been updated to the latest spec</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=881226">Bug&nbsp;881226 – Change {Array, Map, Set} iterator methods to mach the latest spec</a></li>
  </ul>
  <p>The implementation of the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=907077">iterator protocol</a> and <a href="/en-US/docs/Web/JavaScript/Reference/Statements/for...of"><code>for...of</code> loop</a> has been updated to comply with the ECMAScript&nbsp;6 spec (moving away from the SpiderMonkey legacy iterator protocol using <a href="/en-US/docs/SpiderMonkey/JSAPI_Reference/JS_ThrowStopIteration">StopIteration</a>). The <code>iterator</code> method of the <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array"><code>Array</code></a>, <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map"><code>Map</code></a>, <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set"><code>Set</code></a> and <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String"><code>String</code></a> interfaces has been renamed to <code>@@iterator</code>. Previously, the <code>next</code> method of an iterator returned a value from the array (or a key-value pair from the object), and raised a <code>StopIteration</code> exception when the iteration was done. The <code>next</code> method now returns an object like <code>{&nbsp;done:&nbsp;false,&nbsp;value:&nbsp;<em>value</em>&nbsp;}</code> then returns <code>{&nbsp;done:&nbsp;true,&nbsp;value:&nbsp;undefined&nbsp;}</code> when the iteration is done.</p>
 </section>
 <section id="sect10">
  <h3 id="String.match_and_String.replace_now_reset_RegExp.lastIndex"><code>String.match</code> and <code>String.replace</code> now reset <code>RegExp.lastIndex</code></h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=501739">Bug&nbsp;501739 – String match and replace methods do not update global regexp lastIndex per ES3&amp;5</a></li>
  </ul>
  <p>The <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match"><code>String.match</code></a> and <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace"><code>String.replace</code></a> methods have been refactored to resolve a spec conformance issue on <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex"><code>RegExp.lastIndex</code></a>. When those methods are called with a global regular expression, the <code>lastIndex</code>, if specified, will be reset to <code>0</code>.</p>
 </section>
</section>
<section id="sect12">
 <h2 id="WebGL">WebGL</h2>
 <section id="sect13">
  <h3 id="Prefixed_extensions_have_been_deprecated">Prefixed extensions have been deprecated</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=924176">Bug&nbsp;924176 – Warn on prefixed WebGL extensions usage (deprecated)</a></li>
  </ul>
  <p><code>MOZ_</code> prefixed WebGL <a href="/en-US/docs/Web/WebGL/Using_Extensions">extension strings</a> are now deprecated. Support for them will be removed in the future. Use unprefixed extension strings instead.</p>
 </section>
</section>
<section id="sect11">
 <h2 id="WebRTC">WebRTC</h2>
 <section id="sect14">
  <h3 id="Deprecated_RTCPeerConnection_functionalities_have_been_removed">Deprecated <code>RTCPeerConnection</code> functionalities have been removed</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=929530">Bug&nbsp;929530 – Remove deprecated peerConnection functionality which has produced web console warnings since 24.</a></li>
  </ul>
  <p>Some non-standard functionalities deprecated since <a href="/en-US/docs/Site_Compatibility_for_Firefox_24">Firefox&nbsp;24</a> have been removed from the (currently prefixed) {{ domxref("RTCPeerConnection") }} interface. Those include the <code>localStreams</code>, <code>remoteStreams</code>, <code>readyState</code>, <code>onicechange</code> and <code>ongatheringchange</code> attributes, as well as calling <code>createAnswer</code> or <code>createOffer</code> without <code>failureCallback</code>.</p>
 </section>
</section>
Revert to this revision