Firefox 17 for developers

  • Revision slug: Mozilla/Firefox/Releases/17
  • Revision title: Firefox 17 for developers
  • Revision id: 381975
  • Created:
  • Creator: ethertank
  • Is current revision? No
  • Comment

Revision Content

Firefox 17 shipped on November 20, 2012. This article lists key changes that are useful for not only web developers, but also Firefox and Gecko developers as well as add-on developers.

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

Changes for Web developers

HTML

  • Support for the {{htmlattrxref("sandbox", "iframe")}} attribute on the {{HTMLElement("iframe")}} element has been added. ({{bug("341604")}})

CSS

  • Support for {{cssxref("@supports")}} at-rule defined in CSS3 Conditional Rules specification has been landed. It is disabled by default. Developers can try it by setting layout.css.supports-rule.enabled to true (bug 649740)
  • Support for the CSS Selectors Level 4 pseudo-class {{cssxref(":dir", ":dir()")}} allowing selection of elements based on their directionality has landed. (bug 562169)
  • Support for the newly specified isolate-override value of the CSS {{cssxref("unicode-bidi")}} value has landed. ({{bug("774335")}})
  • Our prefixed implementation of {{cssxref("box-sizing")}} now takes into account {{cssxref("min-height")}} and {{cssxref("max-height")}}. One step closer to its unprefixing. ({{bug("308801")}})

DOM

  • Support for {{domxref("CSSSupportsRule")}} interface defined in CSS3 Conditional Rules specification has been landed. ({{bug("649740")}})
  • Support for {{domxref("WheelEvent")}} object and {{domeventxref("wheel")}} event have been landed. ({{bug("719320")}}).
  • Support DOM Meta key on Linux again ({{bug("751749")}}).
  • On {{domxref("HTMLMediaElement")}}, a new method, mozGetMetadata, that returns a javascript object whose properties represent metadata from the playing media resource as {key: value} pairs ({{bug("763010")}}).

JavaScript

  • String object now offers Harmony startsWith, endsWith, and contains methods. ({{bug("772733")}})
  • The String methods link and anchor now escape the " (quotation mark). ({{bug("352437")}})
  • Experimental support for strawman ParallelArray object has been implemented. ({{bug("778559")}})
  • Support to iterate Map/Set. ({{bug("725909")}})
  • Disabled E4X for web content by default ({{bug("778851")}})
  • __exposedProps__ must now be set for Chrome JavaScript objects exposed to content. Attempts to access Chrome objects from content without __exposedProps__ set will fail silently ({{bug("553102")}})

WebGL

SVG

MathML

  • The parsing of the align attribute on {{MathMLElement("mtable")}} elements has been updated to treat optional spaces more correctly.

XUL

  • XUL key element supports "os" modifier which is Win key (Super or Hyper key) ({{bug("751749")}}).

Network

Developer tools

User Agent

The Gecko part of the user agent string changed. The build date (which hadn't been updated since 2010) was removed, and the Gecko version number was put in its place instead. So Gecko/20100101 -> Gecko/17.0. This may affect you if you are doing user agent sniffing.

Changes for add-on and Mozilla developers

Interface changes

{{interface("nsIInputStream")}}
The available() method returns 64-bit length instead of 32-bit. ({{bug("215450")}})
{{interface("nsIDOMWindowUtils")}}
The sendMouseScrollEvent() method has been replaced with sendWheelEvent(). ({{bug("719320")}})
{{interface("nsIFilePicker")}}
The open() method, to open the file dialog asynchronously, has been added and the show() method has been deprecated. ({{bug("731307")}})
{{interface("nsIScriptSecurityManager")}}
The checkLoadURIStr() and checkLoadURI() methods have been removed. ({{bug("327244")}})
{{interface("nsIRefreshURI")}}
The setupRefreshURIFromHeader() method has a added principal parameter . ({{bug("327244")}})

New interfaces

Removed interfaces

The following interfaces have been removed.

See also

Older versions

{{Firefox_for_developers('16')}}

Revision Source

<p>Firefox 17 shipped on November 20, 2012. This article lists key changes that are useful for not only web developers, but also Firefox and Gecko developers as well as add-on developers.</p>
<p>Want to help document Firefox 17? See the <a href="http://beta.elchi3.de/doctracker/#list=fx&amp;version=17.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="HTML">HTML</h3>
<ul>
  <li>Support for the {{htmlattrxref("sandbox", "iframe")}} attribute on the {{HTMLElement("iframe")}} element has been added. ({{bug("341604")}})</li>
</ul>
<h3 id="CSS">CSS</h3>
<ul>
  <li>Support for {{cssxref("@supports")}} at-rule defined in <a href="http://dev.w3.org/csswg/css3-conditional/" title="http://dev.w3.org/csswg/css3-conditional/">CSS3 Conditional Rules specification</a> has been landed. It is disabled by default. Developers can try it by setting <code>layout.css.supports-rule.enabled</code> to true (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=649740" title="https://bugzilla.mozilla.org/show_bug.cgi?id=649740">bug 649740</a>)</li>
  <li>Support for the CSS Selectors Level 4 pseudo-class {{cssxref(":dir", ":dir()")}} allowing selection of elements based on their directionality has landed. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=562169" title="https://bugzilla.mozilla.org/show_bug.cgi?id=562169">bug 562169</a>)</li>
  <li>Support for the newly specified <code>isolate-override</code> value of the CSS {{cssxref("unicode-bidi")}} value has landed. ({{bug("774335")}})</li>
  <li>Our prefixed implementation of {{cssxref("box-sizing")}} now takes into account {{cssxref("min-height")}} and {{cssxref("max-height")}}. One step closer to its unprefixing. ({{bug("308801")}})</li>
</ul>
<h3 id="DOM">DOM</h3>
<ul>
  <li>Support for {{domxref("CSSSupportsRule")}} interface defined in <a href="http://dev.w3.org/csswg/css3-conditional/" title="http://dev.w3.org/csswg/css3-conditional/">CSS3 Conditional Rules specification</a> has been landed. ({{bug("649740")}})</li>
  <li>Support for {{domxref("WheelEvent")}} object and {{domeventxref("wheel")}} event have been landed. ({{bug("719320")}}).</li>
  <li>Support DOM Meta key on Linux again ({{bug("751749")}}).</li>
  <li>On {{domxref("HTMLMediaElement")}}, a new method, <code>mozGetMetadata</code>, that returns a javascript object whose properties represent metadata from the playing media resource as {key: value} pairs ({{bug("763010")}}).</li>
</ul>
<!-- TODO: DOM3 WheelEvent. (Think Nakano-san will do that.) -->
<h3 id="JavaScript">JavaScript</h3>
<ul>
  <li><a href="/en-US/docs/JavaScript/Reference/Global_Objects/String"><code>String</code></a> object now offers Harmony <a href="/en-US/docs/JavaScript/Reference/Global_Objects/String/startsWith" title="JavaScript/Reference/Global_Objects/String/startsWith"><code>startsWith</code></a>, <a href="/en-US/docs/JavaScript/Reference/Global_Objects/String/endsWith" title="JavaScript/Reference/Global_Objects/String/endsWith"><code>endsWith</code></a>, and <a href="/en-US/docs/JavaScript/Reference/Global_Objects/String/contains" title="JavaScript/Reference/Global_Objects/String/contains"><code>contains</code></a> methods. ({{bug("772733")}})</li>
  <li>The String methods <a href="/en-US/docs/JavaScript/Reference/Global_Objects/String/link" title="JavaScript/Reference/Global_Objects/String/link">link</a> and <a href="/en-US/docs/JavaScript/Reference/Global_Objects/String/anchor" title="JavaScript/Reference/Global_Objects/String/anchor">anchor</a> now escape the <strong>"</strong> (quotation mark). ({{bug("352437")}})</li>
  <li>Experimental support for strawman <a href="/en-US/docs/JavaScript/Reference/Global_Objects/ParallelArray" title="JavaScript/Reference/Global_Objects/ParallelArray"><code>ParallelArray</code></a> object has been implemented. ({{bug("778559")}})</li>
  <li>Support to iterate <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Map" title="JavaScript/Reference/Global_Objects/Map">Map</a></code>/<code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Set" title="JavaScript/Reference/Global_Objects/Set">Set</a></code>. ({{bug("725909")}})</li>
  <li>Disabled <a href="/en-US/docs/E4X" title="E4X">E4X</a> for web content by default ({{bug("778851")}})</li>
  <li><code>__exposedProps__</code> must now be set for Chrome JavaScript objects exposed to content. Attempts to access Chrome objects from content without <code>__exposedProps__</code> set will fail silently ({{bug("553102")}})</li>
</ul>
<h3 id="WebGL">WebGL</h3>
<h3 id="SVG">SVG</h3>
<h3 id="MathML">MathML</h3>
<ul>
  <li>The parsing of the <code>align</code> attribute on {{MathMLElement("mtable")}} elements has been updated to treat optional spaces more correctly.</li>
</ul>
<h3 id="XUL">XUL</h3>
<ul>
  <li>XUL <a href="/en-US/docs/XUL/key" title="XUL/key">key</a> element supports "os" modifier which is Win key (Super or Hyper key) ({{bug("751749")}}).</li>
</ul>
<h3 id="Network">Network</h3>
<h3 id="Developer_tools">Developer tools</h3>
<h3 id="User_Agent">User Agent</h3>
<p>The Gecko part of the user agent string changed. The build date (which hadn't been updated since 2010) was removed, and the Gecko version number was put in its place instead. So <code>Gecko/20100101</code> -&gt; <code>Gecko/17.0</code>. This may affect you if you are doing user agent sniffing.</p>
<h2 id="Changes_for_add-on_and_Mozilla_developers">Changes for add-on and Mozilla developers</h2>
<h3 id="Interface_changes">Interface changes</h3>
<dl>
  <dt>{{interface("nsIInputStream")}}</dt>
  <dd>The <code>available()</code> method returns 64-bit length instead of 32-bit. ({{bug("215450")}})</dd>
  <dt>{{interface("nsIDOMWindowUtils")}}</dt>
  <dd>The <code>sendMouseScrollEvent()</code> method has been replaced with <code>sendWheelEvent()</code>. ({{bug("719320")}})</dd>
  <dt>{{interface("nsIFilePicker")}}</dt>
  <dd>The <code>open()</code> method, to open the file dialog asynchronously, has been added and the <code>show()</code> method has been deprecated. ({{bug("731307")}})</dd>
  <dt>{{interface("nsIScriptSecurityManager")}}</dt>
  <dd>The <code>checkLoadURIStr()</code> and <code>checkLoadURI()</code> methods have been removed. ({{bug("327244")}})</dd>
  <dt>{{interface("nsIRefreshURI")}}</dt>
  <dd>The <code>setupRefreshURIFromHeader()</code> method has a added <code>principal</code> parameter . ({{bug("327244")}})</dd>
</dl>
<h4 id="New_interfaces">New interfaces</h4>
<h4 id="Removed_interfaces">Removed interfaces</h4>
<p>The following interfaces have been removed.</p>
<h2 id="See_also">See also</h2>
<ul>
  <li><a href="http://www.mozilla.org/en-US/firefox/17.0/releasenotes/">Firefox 17 Release Notes</a></li>
  <li><a href="https://hacks.mozilla.org/2012/08/aurora-17-is-out/">Aurora 17 it out, bringing better security and support for new standards</a> (Mozilla Hacks)</li>
  <li><a href="/en-US/docs/Site_Compatibility_for_Firefox_17">Site Compatibility for Firefox 17</a></li>
  <li><a href="https://blog.mozilla.org/addons/2012/11/08/compatibility-for-firefox-17/">Add-on Compatibility for Firefox 17</a> (Add-ons Blog)</li>
</ul>
<h3 id="Older_versions">Older versions</h3>
<div>{{Firefox_for_developers('16')}}</div>
Revert to this revision