Firefox 14 for developers

  • Revision slug: Firefox_14_for_developers
  • Revision title: Firefox 14 for developers
  • Revision id: 299375
  • Created:
  • Creator: vndsveteran
  • Is current revision? No
  • Comment

Revision Content

{{ draft() }}

Firefox 14 shipped on July 17, 2012. This article lists key changes that are useful for not only Web developers to know about, but also Firefox and Gecko developers as well as add-on developers.

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

Changes for Web developers

HTML

  • The {{ HTMLElement("progress") }} element is no longer incorrectly classified as a form element, and therefore no longer has a form attribute.
  • The default modifier keys for the accesskey of HTML contents on Mac are changed to Control+Option.  This is the same as WebKit-based browsers on Mac.

DOM

  • input events are fired also on editing host element of contenteditable editor and root element of designMode editor.
  • {{ domxref("DOMException", "DOMException.code") }} is now deprecated per latest DOM Level 4 specification.
  • The {{ domxref("Range.insertNode()") }} method now works correctly when used on collapsed ranges.
  • The {{ domxref("BlobBuilder", "MozBlobBuilder") }} interface has been deprecated in favor of the constructor on {{ domxref("Blob") }}. If you use MozBlobBuilder you'll see a warning message in the Web Console.
  • Support for the Mutation Observers has been landed. It is designed as a replacement for the Mutation Events in DOM3, which has a number of issues regarding performance.
  • The {{ domxref("HTMLImageElement") }} interface's x and y properties were removed in Gecko 7.0 {{ geckoRelease("7.0") }} but restored in this release for compatibility reasons.
  • The {{ domxref("Document") }} methods execCommandShowHelp() and queryCommandText(), which never did anything, have been removed.
  • The GeoPositionAddress interface, an obsolete part of the Geolocation API, has been removed.
  • {{ domxref("Storage", "localStorage/sessionStorage") }} now correctly return undefined instead of null for undeclared keys through property access.

CSS

  • The {{ cssxref("text-transform") }} and {{ cssxref("font-variant") }} CSS properties have been fixed to correctly handle the iİ and ıI Turkic-specific case pairs.
  • The Dutch IJ digraph is now correctly handled by text-transform: capitalization. Similarly the Greek letter Σ, which has two lowercase forms, σ and ς, is now correctly handled by text-transform: lowercase.
  • Support for the skew() function has been removed from {{ cssxref("transform") }} property, as it has been removed from the draft standard.
  • The syntax for {{ cssxref("border-image") }} has been updated to match the latest revision of the specification; it no longer accepts a trailing slash ("/").

MathML

  • The syntax of the statusline action type on {{ MathMLElement("maction") }} elements has been adjusted to follow the MathML specification.

HTTP

  • Gecko now supports the new HTTP 308 Permanent Redirect status code. As Gecko doesn't make a distinction between permanent and temporary redirects, it behaves like the 307 Temporary Redirect status code, as it forbids the user agent from changing the HTTP method used between the two requests (POST will stay POST, GET will stay GET).

Changes for Mozilla and add-on developers

JavaScript code modules

source-editor.jsm

  • Added a keyboard shortcut to toggle commenting for the current selection (Ctrl-/ or Cmd-/ on Mac OS X).
  • Added the Ctrl-[ and Ctrl-] keyboard shortcuts for moving the text input position to the beginning and end of the current block.
  • Added the new getLineStart() and getLineEnd() methods.

XUL

  • Added the new {{ XULAttr("fullscreenbutton") }} attribute to the {{ XULElem("window") }} element; setting this to true adds a button to the window's chrome to enable full screen mode.

Interfaces

  • The {{ interface("nsILocalFile") }} interface has been merged into {{ interface("nsIFile") }} (bug 682360).
  • The methods in {{ interface("nsIPlacesImportExportService") }} for importing bookmarks have all been removed in favor of the BookmarkHTMLUtils.jsm JavaScript code module.
  • The {{ interface("nsIDOMGeoPositionAddress") }} interface has been removed.

Spellchecking

  • Dictionary names are now parsed as full BCP 47 language tags (bug 730209, bug 741842). Developers are encouraged to not hard-code the name of their language in their dictionary names.

See also

{{ languages( { "ja": "ja/Firefox_14_for_developers","zh-cn": "zh-cn/Firefox_14_for_developers"} ) }}

Revision Source

<p>{{ draft() }}</p>
<p>Firefox 14 shipped on July 17, 2012. This article lists key changes that are useful for not only Web developers to know about, but also Firefox and Gecko developers as well as add-on developers.</p>
<p>Want to help document Firefox 14? See the <a class="external" href="http://beta.elchi3.de/doctracker/#list=fx&amp;version=14.0" title="http://beta.elchi3.de/doctracker/#list=fx&amp;version=14.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>The {{ HTMLElement("progress") }} element is no longer incorrectly classified as a form element, and therefore no longer has a <code>form</code> attribute.</li>
  <li>The default modifier keys for the <code><a href="/en/HTML/Global_attributes" title="Global attributes">accesskey</a></code> of HTML contents on Mac are changed to Control+Option.&nbsp; This is the same as WebKit-based browsers on Mac.</li>
</ul>
<h3 id="DOM">DOM</h3>
<ul>
  <li><a href="/en/DOM/DOM_event_reference/input" title="input">input</a> events are fired also on editing host element of <a href="/en/DOM/Element.contentEditable" title="Element.contentEditable">contenteditable</a> editor and root element of <a href="/en/DOM/document.designMode" title="document.designMode">designMode</a> editor.</li>
  <li>{{ domxref("DOMException", "DOMException.code") }} is now deprecated per latest DOM Level 4 specification.</li>
  <li>The {{ domxref("Range.insertNode()") }} method now works correctly when used on collapsed ranges.</li>
  <li>The {{ domxref("BlobBuilder", "MozBlobBuilder") }} interface has been deprecated in favor of the constructor on {{ domxref("Blob") }}. If you use <code>MozBlobBuilder</code> you'll see a warning message in the Web Console.</li>
  <li>Support for the <a href="/en/DOM/DOM_Mutation_Observers" title="en/DOM/DOM_Mutation_Observers">Mutation Observers</a> has been landed. It is designed as a replacement for the Mutation Events in DOM3, which has a number of issues regarding performance.</li>
  <li>The {{ domxref("HTMLImageElement") }} interface's <code>x</code> and <code>y</code> properties were removed in Gecko 7.0 {{ geckoRelease("7.0") }} but restored in this release for compatibility reasons.</li>
  <li>The {{ domxref("Document") }} methods <code>execCommandShowHelp()</code> and <code>queryCommandText()</code>, which never did anything, have been removed.</li>
  <li>The <code>GeoPositionAddress</code> interface, an obsolete part of the <a href="/En/Using_geolocation" title="en/Using_geolocation">Geolocation</a> API, has been removed.</li>
  <li>{{ domxref("Storage", "localStorage/sessionStorage") }} now correctly return <code>undefined</code> instead of <code>null</code> for undeclared keys through property access.</li>
</ul>
<h3 id="CSS">CSS</h3>
<ul>
  <li>The {{ cssxref("text-transform") }} and {{ cssxref("font-variant") }} CSS properties have been fixed to correctly handle the <code>i</code> → <code>İ</code> and <code>ı</code> → <code>I</code> <a class="external" href="http://en.wikipedia.org/wiki/Turkic_languages" title="http://en.wikipedia.org/wiki/Turkic_languages">Turkic</a>-specific case pairs.</li>
  <li>The Dutch IJ digraph is now correctly handled by <code>text-transform: capitalization</code>. Similarly the Greek letter <code>Σ</code>, which has two lowercase forms, <code>σ</code> and <code>ς</code>, is now correctly handled by <code>text-transform: lowercase</code>.</li>
  <li>Support for the&nbsp;<code style="font-size: 14px; color: rgb(51, 51, 51); ">skew()</code>&nbsp;function has been removed from {{ cssxref("transform") }} property, as it has been removed from the draft standard.</li>
  <li>The syntax for {{ cssxref("border-image") }} has been updated to match the latest revision of the specification; it no longer accepts a trailing slash ("/").</li>
</ul>
<h3 id="MathML">MathML</h3>
<ul>
  <li>The syntax of the <code>statusline</code> action type on {{ MathMLElement("maction") }} elements has been adjusted to follow the MathML specification.</li>
</ul>
<h3 id="HTTP">HTTP</h3>
<ul>
  <li>Gecko now supports the new <a href="/en/HTTP" title="HTTP">HTTP</a> <a href="/en/HTTP/HTTP_response_codes#308" title="https://developer.mozilla.org/en/HTTP/HTTP_response_codes#308"><code>308 Permanent Redirect</code></a> status code. As Gecko doesn't make a distinction between permanent and temporary redirects, it behaves like the <a href="/en/HTTP/HTTP_response_codes#307" title="https://developer.mozilla.org/en/HTTP/HTTP_response_codes#307"><code>307 Temporary Redirect</code></a> status code, as it forbids the user agent from changing the HTTP method used between the two requests (<code>POST</code> will stay <code>POST</code>, <code>GET</code> will stay <code>GET</code>).</li>
</ul>
<h2 id="Changes_for_Mozilla_and_add-on_developers">Changes for Mozilla and add-on developers</h2>
<h3 id="JavaScript_code_modules">JavaScript code modules</h3>
<h4 id="source-editor.jsm">source-editor.jsm</h4>
<ul>
  <li>Added a keyboard shortcut to toggle commenting for the current selection (Ctrl-/ or Cmd-/ on Mac OS X).</li>
  <li>Added the Ctrl-[ and Ctrl-] keyboard shortcuts for moving the text input position to the beginning and end of the current block.</li>
  <li>Added the new <a href="/en/JavaScript_code_modules/source-editor.jsm#getLineStart%28%29" title="en/JavaScript_code_modules/source-editor.jsm#getLineStart%28%29"><code>getLineStart()</code></a> and <a href="/en/JavaScript_code_modules/source-editor.jsm#getLineEnd%28%29" title="en/JavaScript_code_modules/source-editor.jsm#getLineEnd%28%29"><code>getLineEnd()</code></a> methods.</li>
</ul>
<h3 id="XUL">XUL</h3>
<ul>
  <li>Added the new {{ XULAttr("fullscreenbutton") }} attribute to the {{ XULElem("window") }} element; setting this to <code>true</code> adds a button to the window's chrome to enable full screen mode.</li>
</ul>
<h3 class="editable" id="Interfaces"><span>Interfaces</span></h3>
<ul>
  <li>The {{ interface("nsILocalFile") }} interface has been merged into {{ interface("nsIFile") }} (<a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=682360" title="https://bugzilla.mozilla.org/show_bug.cgi?id=682360">bug 682360</a>).</li>
  <li>The methods in {{ interface("nsIPlacesImportExportService") }} for importing bookmarks have all been removed in favor of the <code><a href="/en/JavaScript_code_modules/BookmarkHTMLUtils.jsm" title="en/JavaScript_code_modules/BookmarkHTMLUtils.jsm">BookmarkHTMLUtils.jsm</a></code> JavaScript code module.</li>
  <li>The {{ interface("nsIDOMGeoPositionAddress") }} interface has been removed.</li>
</ul>
<h3 id="Spellchecking">Spellchecking</h3>
<ul>
  <li>Dictionary names are now parsed as full <a class="external" href="http://tools.ietf.org/html/bcp47" title="http://tools.ietf.org/html/bcp47">BCP 47</a> language tags (<a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=730209" title="https://bugzilla.mozilla.org/show_bug.cgi?id=730209">bug 730209</a>, <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=741842" title="https://bugzilla.mozilla.org/show_bug.cgi?id=741842">bug 741842</a>). Developers are encouraged to not hard-code the name of their language in their dictionary names.</li>
</ul>
<h2 id="See_also">See also</h2>
<ul>
  <li><a href="/en/Firefox_13_for_developers" title="en/Firefox_13_for_developers">Firefox 13 for developers</a></li>
  <li><a href="/en/Firefox_12_for_developers" title="en/Firefox_12_for_developers">Firefox 12 for developers</a></li>
  <li><a href="/en/Firefox_11_for_developers" title="en/Firefox 11 for developers">Firefox 11 for developers</a></li>
  <li><a href="/en/Firefox_10_for_developers" title="en/Firefox 10 for developers">Firefox 10 for developers</a></li>
  <li><a href="/en/Firefox_9_for_developers" title="en/Firefox 9 for developers">Firefox 9 for developers</a></li>
  <li><a href="/en/Firefox_8_for_developers" title="en/Firefox 8 for developers">Firefox 8 for developers</a></li>
  <li><a href="/en/Firefox_7_for_developers" title="en/Firefox 7 for developers">Firefox 7 for developers</a></li>
  <li><a href="/en/Firefox_6_for_developers" title="en/Firefox 6 for developers">Firefox 6 for developers</a></li>
  <li><a href="/en/Firefox_5_for_developers" title="en/Firefox 5 for developers">Firefox 5 for developers </a></li>
  <li><a href="/en/Firefox_4_for_developers" title="en/Firefox 4 for developers">Firefox 4 for developers </a></li>
  <li><a href="/en/Firefox_3.6_for_developers" title="en/Firefox 3.6 for developers">Firefox 3.6 for developers </a></li>
  <li><a href="/En/Firefox_3.5_for_developers" title="en/Firefox 3.5 for developers">Firefox 3.5 for developers</a></li>
  <li><a href="/en/Firefox_3_for_developers" title="en/Firefox 3 for developers">Firefox 3 for developers</a></li>
  <li><a href="/en/Firefox_2_for_developers" title="en/Firefox 2 for developers">Firefox 2 for developers</a></li>
  <li><a href="/en/Firefox_1.5_for_developers" title="en/Firefox 1.5 for developers">Firefox 1.5 for developers</a></li>
</ul>
<p>{{ languages( { "ja": "ja/Firefox_14_for_developers","zh-cn": "zh-cn/Firefox_14_for_developers"} ) }}</p>
Revert to this revision