mozilla

Revision 507841 of Site Compatibility for Firefox 28

  • Revision slug: Mozilla/Firefox/Releases/28/Site_Compatibility
  • Revision title: Site Compatibility for Firefox 28
  • Revision id: 507841
  • Created:
  • Creator: kohei.yoshino
  • Is current revision? No
  • Comment

Revision Content

{{ draft() }}

Firefox 28 Aurora (pre-Beta) 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:

This list may be updated until the release of the final version on , so please check back later. Follow @MozWebCompat on Twitter for further updates.

DOM

The {{ domxref("PluginArray") }} interface, returned by the {{ domxref("window.navigator.plugins") }} property, has been made non-enumerable and useless. This change is intended to enhance user privacy by preventing specific fingerprinting techniques. Web sites still can determine which MIME types are supported by the browser using {{ domxref("window.navigator.mimeTypes") }}. Mozilla is tracking some affected sites.

showModalDialog has been deprecated

The {{ domxref("window.showModalDialog") }} method, originally from Internet Explorer, is now considered deprecated. The {{ domxref("window.open") }} method should be used instead.

Make sure the deep argument is specified for cloneNode and importNode

The {{ domxref("Node.cloneNode") }} and {{ domxref("document.importNode") }} methods take the boolean deep argument. It's optional in the DOM4 specification, and if omitted, these methods acted as if the value of deep was true. But this behavior has been changed in the latest spec, and if omitted, the methods will act as if the value was false. Though It's still optional, Firefox now warns developers in console not to omit the argument for the forward compatibility.

History objects now throw if the document is inactive

The spec of the {{ domxref("History") }} interface has been updated, and the properties and methods now throw a SecurityError exception when those are called on an inactive {{ domxref("document") }}. It would be a problem if you are manipulating {{ domxref("window.history") }} in an {{ HTMLElement("iframe") }}.

Networking

SPDY/2 support has been dropped

The support of SPDY Protocol Draft 2 has been removed. Web sites should upgrade to SPDY/3 or 3.1.

Video/Audio

canPlayType('video/webm') now returns 'maybe'

The canPlayType method of the {{ domxref("HTMLMediaElement") }} interface has been updated to comply with the spec. canPlayType('video/webm') and canPlayType('audio/webm') now return 'maybe' instead of 'probably', because media can be encoded with a codec that Firefox doesn't support. If a codec is specified in the type argument, the method returns 'probably' or '' (empty string) depending on the codec. For example, canPlayType('video/webm; codecs=vp8') returns 'probably'.

Revision Source

<p>{{ draft() }}</p>
<p>Firefox&nbsp;28 <a href="http://www.mozilla.org/en-US/firefox/aurora/">Aurora</a> (pre-Beta) was released on <time datetime="2013-12-13">December&nbsp;13, 2013</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="http://www.mozilla.org/en-US/firefox/28.0a2/auroranotes/">Firefox&nbsp;28 Aurora Release Notes</a></li>
 <li><a href="/en-US/docs/Mozilla/Firefox/Releases/28">Firefox&nbsp;28 for developers</a></li>
</ul>
<p>This list may be updated until the release of the final version on <time datetime="2014-03-18">March&nbsp;18, 2014</time>, so please check back later. Follow <a href="https://twitter.com/MozWebCompat">@MozWebCompat</a> on Twitter for further updates.</p>
<section id="sect5">
 <h2 id="DOM">DOM</h2>
 <section id="sect1">
  <h3 id="navigator.plugins_is_no_longer_enumerable"><code>navigator.plugins</code> is no longer enumerable</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=757726">Bug&nbsp;757726 – disallow enumeration of navigator.plugins</a></li>
  </ul>
  <p>The {{ domxref("PluginArray") }} interface, returned by the {{ domxref("window.navigator.plugins") }} property, has been made non-enumerable and useless. This change is intended to enhance user privacy by preventing specific fingerprinting techniques. Web sites still can determine which MIME types are supported by the browser using {{ domxref("window.navigator.mimeTypes") }}. Mozilla is tracking <a href="https://bugzilla.mozilla.org/showdependencytree.cgi?id=934107">some affected sites</a>.</p>
 </section>
 <section id="sect2">
  <h3 id="showModalDialog_has_been_deprecated"><code>showModalDialog</code> has been deprecated</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=933040">Bug&nbsp;933040 – Warn for showModalDialog uses</a></li>
  </ul>
  <p>The {{ domxref("window.showModalDialog") }} method, originally from Internet Explorer, is now considered deprecated. The {{ domxref("window.open") }} method should be used instead.</p>
 </section>
 <section id="sect3">
  <h3 id="Make_sure_the_deep_argument_is_specified_for_cloneNode_and_importNode">Make sure the <code>deep</code> argument is specified for <code>cloneNode</code> and <code>importNode</code></h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=937465">Bug&nbsp;937465 – Add a warning when cloneNode/importNode is used without a boolean argument on a node with children</a></li>
  </ul>
  <p>The {{ domxref("Node.cloneNode") }} and {{ domxref("document.importNode") }} methods take the boolean <code>deep</code> argument. It's optional in the DOM4 specification, and if omitted, these methods acted as if the value of <code>deep</code> was <code>true</code>. But this behavior has been changed in the latest spec, and if omitted, the methods will act as if the value was <code>false</code>. Though It's still optional, Firefox now warns developers in console not to omit the argument for the forward compatibility.</p>
 </section>
 <section id="sect4">
  <h3 id="History_objects_now_throw_if_the_document_is_inactive"><code>History</code> objects now throw if the <code>document</code> is inactive</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=940783">Bug&nbsp;940783 – History objects should unconditionally throw if their inner is not current</a></li>
  </ul>
  <p>The spec of the {{ domxref("History") }} interface has been updated, and the properties and methods now throw a <code>SecurityError</code> exception when those are called on an inactive {{ domxref("document") }}. It would be a problem if you are manipulating {{ domxref("window.history") }} in an {{ HTMLElement("iframe") }}.</p>
 </section>
</section>
<section id="sect6">
 <h2 id="Networking">Networking</h2>
 <section id="sect7">
  <h3 id="SPDY.2F2_support_has_been_dropped">SPDY/2 support has been dropped</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=912550">Bug&nbsp;912550 – remove spdy/2 support</a></li>
  </ul>
  <p>The support of SPDY Protocol Draft&nbsp;2 has been removed. Web sites should upgrade to SPDY/3 or 3.1.</p>
 </section>
</section>
<section id="sect8">
 <h2 id="Video.2FAudio">Video/Audio</h2>
 <section id="sect9">
  <h3 id="canPlayType('video.2Fwebm')_now_returns_'maybe'"><code>canPlayType('video/webm')</code> now returns <code>'maybe'</code></h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=884275">Bug&nbsp;884275 – canPlayType('video/webm') should report 'maybe' instead of 'probably'</a></li>
  </ul>
  <p>The <code>canPlayType</code> method of the {{ domxref("HTMLMediaElement") }} interface has been updated to comply with the spec. <code>canPlayType('video/webm')</code> and <code>canPlayType('audio/webm')</code> now return <code>'maybe'</code> instead of <code>'probably'</code>, because media can be encoded with a codec that Firefox doesn't support. If a codec is specified in the <code>type</code> argument, the method returns <code>'probably'</code> or <code>''</code> (empty string) depending on the codec. For example, <code>canPlayType('video/webm; codecs=vp8')</code> returns <code>'probably'</code>.</p>
 </section>
</section>
Revert to this revision