Site Compatibility for Firefox 26

  • Revision slug: Mozilla/Firefox/Releases/26/Site_Compatibility
  • Revision title: Site Compatibility for Firefox 26
  • Revision id: 512729
  • Created:
  • Creator: Yoshino
  • Is current revision? No
  • Comment

Revision Content

Firefox 26 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

The non-standard {{ cssxref("-moz-text-blink") }} property has been removed. Instead, the standard, still prefixed {{ cssxref("text-decoration-line") }} property now takes blink as a valid value. Actually it doesn't blink any content on Firefox though, from the perspective of accessibility. Note that the blink effect with text-decoration:blink has been dropped with Firefox 23.

DOM

HTMLInputElement.width and height now return 0 when the type is not image

Previously, the width and height properties of an {{ HTMLElement("input") }} returned the dimension of the element. To comply with the spec, those properties now return 0 if the type attribute is not image.

Setting document.domain in a sandboxed iframe is no longer allowed

Trying to set the {{ domxref("document.domain") }} property on a page embedded in an {{ HTMLElement("iframe") }} with the sandbox attribute will throw a security error from now on.

Elements are no longer accessible with the old id after being changed

Elements with id are accessible as window.<id> DOM objects. Previously, such objects remained on {{ domxref("window") }} even after the id of the element was programmatically changed. This odd behavior has been fixed with Firefox 26. The {{ domxref("document.getElementById") }} method, which is recommended to use in general, is not affected by this change.

MessageEvent has been updated

The {{ domxref("MessageEvent") }} interface has been updated to comply with the latest spec. The initMessageEvent method has been removed while the interface is now a constructor.

HTMLCanvasElement.mozGetAsFile has been deprecated

The non-standard mozGetAsFile method on the {{ domxref("HTMLCanvasElement") }} interface is now deprecated and will be removed soon. The standard toBlob method can be used instead.

UserDataHandler has been removed

The deprecated {{ domxref("UserDataHandler") }} interface has been removed. The {{ domxref("Node.setUserData") }} and {{ domxref("Node.getUserData") }} methods have already been removed with Firefox 22.

The following methods implemented on the XBL DOM interface have been removed from the {{ domxref("Document") }} interface: getAnonymousNodes, getAnonymousElementByAttribute, getBindingParent, and loadBindingDocument.

Various non-standard interfaces have been removed

As part of the ongoing effort to standardize global objects, the following non-standard XUL-related interfaces have been removed: ChromeWindow, XULButtonElement, XULCheckboxElement, XULCommandDispatcher, XULCommandEvent, XULControlElement, XULDocument, XULElement, XULLabeledControlElement, and XULPopupElement.

JavaScript

The reserved words are no longer allowed as function names

The reserved words cannot be used for function names. Starting with Firefox 26, such a usage will throw a SyntaxError. For example, function delete() { ... } is illegal.

Plug-ins

All plug-ins except Flash now default to Click-to-Activate

Starting with Firefox 26, plug-ins require user interaction to be activated. With the exception of the popular Adobe Flash Player, all plug-in content embedded in a Web page is now disabled by default and enabled by a user's click. This change has been made in order to improve security and performance of the browser. See the Mozilla Security Blog and the Future Releases Blog for details. Web developers are encouraged to leverage modern Web technologies, including HTML5, to provide richer user experience. If that is not possible, see the site author guide for click-to-activate plugins.

Miscellaneous

A minimum width has been set for the browser window

To avoid a potential UI clipping issue with the upcoming Australis theme, a minimum width has been set for the Firefox desktop browser window. This size is 425px on OS X and 390px on other platforms. If you were resizing the window to test your mobile site, the convenient Responsive Design View can be used instead. The minimum width is not applied to popup windows, so this shouldn't affect content display.

Update: This change has been reverted in Firefox 27 and 28 since it was intended only for the Australis theme. Firefox 29 will come with Australis and this limitation.

Revision Source

<p>Firefox&nbsp;26 was released on <time datetime="2013-12-10">December&nbsp;10, 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/26.0/releasenotes/">Firefox&nbsp;26 Release Notes</a></li>
 <li><a href="/en-US/docs/Mozilla/Firefox/Releases/26">Firefox&nbsp;26 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-text-blink_has_been_removed_in_favor_of_-moz-text-decoration-line.3Ablink"><code>-moz-text-blink</code> has been removed in favor of <code>-moz-text-decoration-line:blink</code></h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=812995">Bug&nbsp;812995 – add 'blink' to -moz-text-decoration-line and drop -moz-text-blink</a></li>
  </ul>
  <p>The non-standard {{ cssxref("-moz-text-blink") }} property has been removed. Instead, the standard, still prefixed {{ cssxref("text-decoration-line") }} property now takes <code>blink</code> as a valid value. Actually it doesn't blink any content on Firefox though, from the perspective of <a href="/en-US/docs/Accessibility">accessibility</a>. Note that the blink effect with <code>text-decoration:blink</code> has been dropped with <a href="/en-US/docs/Site_Compatibility_for_Firefox_23">Firefox&nbsp;23</a>.</p>
 </section>
</section>
<section id="sect3">
 <h2 id="DOM">DOM</h2>
 <section id="sect4">
  <h3 id="HTMLInputElement.width_and_height_now_return_0_when_the_type_is_not_image"><code>HTMLInputElement.width</code> and <code>height</code> now return <code>0</code> when the <code>type</code> is not <code>image</code></h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=905240">Bug&nbsp;905240 – HTMLInputElement.{width,height} getter should return 0 for type!='image'</a></li>
  </ul>
  <p>Previously, the <code>width</code> and <code>height</code> properties of an {{ HTMLElement("input") }} returned the dimension of the element. To comply with the spec, those properties now return <code>0</code> if the <code>type</code> attribute is not <code>image</code>.</p>
 </section>
 <section id="sect5">
  <h3 id="Setting_document.domain_in_a_sandboxed_iframe_is_no_longer_allowed">Setting <code>document.domain</code> in a sandboxed <code>iframe</code> is no longer allowed</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=907892">Bug&nbsp;907892 – Disallow setting document.domain in sandboxed iframes</a></li>
  </ul>
  <p>Trying to set the {{ domxref("document.domain") }} property on a page embedded in an {{ HTMLElement("iframe") }} with the <code>sandbox</code> attribute will throw a security error from now on.</p>
 </section>
 <section id="sect6">
  <h3 id="Elements_are_no_longer_accessible_with_the_old_id_after_being_changed">Elements are no longer accessible with the old <code>id</code> after being changed</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=790601">Bug&nbsp;790601 – Javascript element should not exist with old id</a></li>
  </ul>
  <p>Elements with <code>id</code> are accessible as <code>window.<var>&lt;id&gt;</var></code> DOM objects. Previously, such objects remained on {{ domxref("window") }} even after the <code>id</code> of the element was programmatically changed. This odd behavior has been fixed with Firefox&nbsp;26. The {{ domxref("document.getElementById") }} method, which is recommended to use in general, is not affected by this change.</p>
 </section>
 <section id="sect7">
  <h3 id="MessageEvent_has_been_updated"><code>MessageEvent</code> has been updated</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=848294">Bug&nbsp;848294 – Update MessageEvent to be compatible with the spec</a></li>
  </ul>
  <p>The {{ domxref("MessageEvent") }} interface has been updated to comply with the latest spec. The <code>initMessageEvent</code> method has been removed while the interface is now a constructor.</p>
 </section>
 <section id="sect8">
  <h3 id="HTMLCanvasElement.mozGetAsFile_has_been_deprecated"><code>HTMLCanvasElement.mozGetAsFile</code> has been deprecated</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=803612">Bug&nbsp;803612 – Add deprecation warnings for mozGetAsFile</a></li>
  </ul>
  <p>The non-standard <code>mozGetAsFile</code> method on the {{ domxref("HTMLCanvasElement") }} interface is now deprecated and will be removed soon. The standard <code>toBlob</code> method can be used instead.</p>
 </section>
 <section id="sect9">
  <h3 id="UserDataHandler_has_been_removed"><code>UserDataHandler</code> has been removed</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=910751">Bug&nbsp;910751 – Hide UserDataHandler from content</a></li>
  </ul>
  <p>The deprecated {{ domxref("UserDataHandler") }} interface has been removed. The {{ domxref("Node.setUserData") }} and {{ domxref("Node.getUserData") }} methods have already been removed with <a href="/en-US/docs/Site_Compatibility_for_Firefox_22">Firefox&nbsp;22</a>.</p>
 </section>
 <section id="sect10">
  <h3 id="XBL-related_methods_have_been_removed">XBL-related methods have been removed</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=912322">Bug&nbsp;912322 – document.getAnonymous* should not be available to web content</a></li>
  </ul>
  <p>The following methods implemented on the <a href="/en-US/docs/XBL/XBL_1.0_Reference/DOM_Interfaces">XBL DOM interface</a> have been removed from the {{ domxref("Document") }} interface: <code>getAnonymousNodes</code>, <code>getAnonymousElementByAttribute</code>, <code>getBindingParent</code>, and <code>loadBindingDocument</code>.</p>
 </section>
 <section id="sect11">
  <h3 id="Various_non-standard_interfaces_have_been_removed">Various non-standard interfaces have been removed</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=899388">Bug&nbsp;899388 – Remove XUL-related interfaces and ChromeWindow from content</a></li>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=909340">Bug&nbsp;909340 – Hide XULElement from content</a></li>
  </ul>
  <p>As part of the ongoing effort to standardize global objects, the following non-standard <a href="/en-US/docs/XUL">XUL</a>-related interfaces have been removed: <code>ChromeWindow</code>, <code>XULButtonElement</code>, <code>XULCheckboxElement</code>, <code>XULCommandDispatcher</code>, <code>XULCommandEvent</code>, <code>XULControlElement</code>, <code>XULDocument</code>, <code>XULElement</code>, <code>XULLabeledControlElement</code>, and <code>XULPopupElement</code>.</p>
 </section>
</section>
<section id="sect12">
 <h2 id="JavaScript">JavaScript</h2>
 <section id="sect13">
  <h3 id="The_reserved_words_are_no_longer_allowed_as_function_names">The reserved words are no longer allowed as function names</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=907958">Bug&nbsp;907958 – Restrict function names to non-keywords</a></li>
  </ul>
  <p>The <a href="/en-US/docs/Web/JavaScript/Reference/Reserved_Words">reserved words</a> cannot be used for function names. Starting with Firefox&nbsp;26, such a usage will throw a <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/SyntaxError"><code>SyntaxError</code></a>. For example, <code>function delete() { ... }</code> is illegal.</p>
 </section>
</section>
<section id="sect14">
 <h2 id="Plug-ins">Plug-ins</h2>
 <section id="sect15">
  <h3 id="All_plug-ins_except_Flash_now_default_to_Click-to-Activate">All plug-ins except Flash now default to Click-to-Activate</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=899080">Bug&nbsp;899080 – Make plugins default to click-to-play</a></li>
  </ul>
  <p>Starting with Firefox&nbsp;26, <a href="/en-US/docs/Plugins">plug-ins</a> require user interaction to be activated. With the exception of the popular Adobe Flash Player, all plug-in content embedded in a Web page is now disabled by default and enabled by a user's click. This change has been made in order to improve security and performance of the browser. See the <a href="https://blog.mozilla.org/security/2013/01/29/putting-users-in-control-of-plugins/">Mozilla Security Blog</a> and the <a href="https://blog.mozilla.org/futurereleases/2013/09/24/plugin-activation-in-firefox/">Future Releases Blog</a> for details. Web developers are encouraged to leverage modern Web technologies, including <a href="/en-US/docs/Web/Guide/HTML/HTML5">HTML5</a>, to provide richer user experience. If that is not possible, see the <a href="/en-US/docs/Site_Author_Guide_for_Click-To-Activate_Plugins">site author guide for click-to-activate plugins</a>.</p>
 </section>
</section>
<section id="sect16">
 <h2 id="Miscellaneous">Miscellaneous</h2>
 <section id="sect17">
  <h3 id="A_minimum_width_has_been_set_for_the_browser_window">A minimum width has been set for the browser window</h3>
  <ul>
   <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=897160">Bug&nbsp;897160 – Set a minimum width for the Firefox window</a></li>
  </ul>
  <p>To avoid a potential UI clipping issue with the upcoming <a href="https://blog.mozilla.org/ux/2013/11/australis-is-landing-in-firefox-nightly/">Australis theme</a>, a minimum width has been set for the Firefox desktop browser window. This size is <code>425px</code> on OS&nbsp;X and <code>390px</code> on other platforms. If you were resizing the window to test your mobile site, the convenient <a href="/en-US/docs/Tools/Responsive_Design_View">Responsive Design View</a> can be used instead. The minimum width is not applied to popup windows, so this shouldn't affect content display.</p>
  <p><strong>Update</strong>: This change has been reverted in Firefox&nbsp;27 and 28 since it was intended only for the Australis theme. Firefox&nbsp;29 will come with Australis and this limitation.</p>
 </section>
</section>
Revert to this revision