Firefox 7 for developers

  • Revision slug: Firefox_7_for_developers
  • Revision title: Firefox 7 for developers
  • Revision id: 44430
  • Created:
  • Creator: jreschke
  • Is current revision? No
  • Comment linkify ETF websocket draft; one or more formatting changes

Revision Content

{{ draft() }}

{{ ReleaseChannelInfo("7") }}

Changes for web developers

HTML

  • The {{ domxref("HTMLHeadElement") }} profile property has been removed, this property has been deprecated since {{ gecko("2.0") }}. (see {{ bug("664544") }})
  • The {{ domxref("HTMLImageElement") }} x and y properties have been removed. (see {{ bug("587021") }})
  • The {{ domxref("HTMLSelectElement") }} add() method before parameter is now optional. (see {{ bug("182279") }})
  • The {{ HTMLElement("body") }} element's {{ htmlattrxref("background", "body") }} attribute is no longer resolved as a URI; this is in compliance with the current HTML specification.
  • The {{ HTMLElement("option") }} element's {{ htmlattrxref("label", "option") }} attribute now reflects the value of the element's text content if the attribute isn't specified.

Canvas

  • Specifying invalid values when calling setTransform(), bezierCurveTo(), or arcTo() no longer throws an exception; these calls are now correctly silently ignored.
  • The isPointInPath() method now correctly considers the transformation matrix when comparing the specified point to the current path.
  • Calling strokeRect() with a zero width and height now correctly does nothing. (see {{ bug("663190") }})
  • Calling drawImage() with a zero width or height {{ HTMLElement("canvas") }} now throws INVALID_STATE_ERR. (see {{ bug("663194") }})
  • Calling drawImage() with non-finite coordinates no longer throws an exception.
  • toDataURL() method now accepts a second argument to control JPEG quality (see {{ bug("564388") }})
  • Support for the non-standard globalCompositeOperation operations clear and over has been removed (see {{ bug("629870") }}).
  • Shadows are now only drawn for source-over compositing operations (see {{ bug("656844") }}).
  • You can now configure the fill rule used by canvas by setting the mozFillRule attribute on the context.

CSS

  • {{ cssxref("text-overflow") }} is now supported.
  • The {{ cssxref("orient", "-moz-orient") }} property has been fixed so that {{ HTMLElement("progress") }} elements that are vertically oriented have appropriate default dimensions.

MathML

  • XLink href has been restored and the MathML3 href attribute is now supported. Developers are encouraged to move to the latter syntax.
  • Support for the voffset attribute on {{ MathMLElement("mpadded") }} elements has been added and behavior of lspace attribute has been fixed.
  • The top-level {{ MathMLElement("math") }} element now accepts any attributes of the {{ MathMLElement("mstyle") }} element.
  • Support for Asana Math fonts has been added.
  • The medium line thickness of fraction bars in {{ MathMLElement("mfrac") }} elements has been corrected to match the default thickness.
  • Names for negative spaces are now supported.

DOM

  • The {{ domxref("File") }} interface's non-standard methods getAsBinary(), getAsDataURL(), and getAsText() have been removed as well as the non-standard properties fileName and fileSize.
  • The {{ domxref("XMLHttpRequest/FormData", "FormData") }} interface no longer reports the filename as an empty string when sending the Content-Disposition HTTP header if the data was set using a {{ domxref("Blob") }}. This fixes errors that were happening with some servers.
  • The {{ domxref("element.dir") }} attribute now always returns its result as all lower-case, as required by the HTML specification.
  • The {{ domxref("FileReader") }} readAsArrayBuffer() method is now implemented. (see {{ bug("632255") }})
  • {{ domxref("document.createEntityReference") }} has been removed. It was never properly implemented and is not implemented in most other browsers. (see {{ bug("611983") }})
  • document.normalizeDocument has been removed. Use {{ domxref("Node.normalize") }} instead. (see {{ bug("641190") }})
  • {{ domxref("DOMTokenList.item") }} now returns undefined if the index is out of bounds, previously it returned null. (see {{ bug("529328") }})
  • Node.getFeature has been removed (see {{ bug("659053") }}).
  • The HTMLInsElement and HTMLDelElement interfaces have been removed, since the {{ HTMLElement("ins") }} and {{ HTMLElement("del") }} elements actually use the {{ domxref("HTMLModElement") }} interface.
  • Many {{ domxref("Node") }} properties and methods that Gecko incorrectly exposed on the {{ domxref("Attr") }} interface are now reporting warnings as we work toward removing them. Currently, our implementation of Attr is inheriting from Node, which it should not be.

JavaScript

WebSocket

  • The network.websocket.max-connections preference is used to determine the maximum number of WebSocket connections that can be open at a time. The default value is 200.
  • The underlying WebSocket protocol version 8 (as specified by IETF draft 10) is used now instead of the version 7 protocol used by Firefox 6.
  • WebSocket are now available on Firefox Mobile. (see {{ bug("537787") }})

console API

  • Message logged with console.log before the WebConsole is opened are now stored and displayed once the WebConsole is opened.

Web timing

  • Initial implementation of the Navigation Timing specification (see {{ bug("570341") }}).

XML

  • In addition to the previously supported text/xsl, XSLT stylesheets can now use the official MIME type application/xslt+xml (in the stylesheet processing instruction or the HTTP Link header field).

Changes for Mozilla and add-on developers

Note: Firefox 7 requires that binary components be recompiled, as do all major releases of Firefox. See Binary Interfaces for details.

JavaScript code modules

FileUtils.jsm

  • New method openFileOutputStream() opens a file output stream, the non-safe variant, for writing. (see {{ bug("662253") }})

AddonManager.jsm

  • The Add-on Manager has new methods for managing lists of add-ons that changed during applications startup: {{ AMInterface("AddonManager", "addStartupChange") }}, {{ AMInterface("AddonManager", "removeStartupChange") }}, and {{ AMInterface("AddonManager", "getStartupChanges") }}.

XUL

  • {{ xulelem("tree") }} elements can now persist the state of disclosure triangles if the nodes referenced by {{ XULAttr("datasources") }} all have unique IDs specified by "id" attributes.
  • {{ xulelem("panel") }} elements can now be configured to let the user drag them by clicking anywhere on their background by using the new {{ XULAttr("backdrag") }} attribute.

XPCOM

User experience changes

Changes to the build system

  • The ActiveX embedding API is no longer built and support has been removed from the build system. Supporting interfaces have also been removed; see {{ anch("Removed interfaces") }}.
  • You should no longer specify -Zc:wchar_t- when building on Windows. See the updated Build documentation for details.

Interface changes

  • {{ interface("nsISocketTransport") }} now offers a new connection flag: DISABLE_IPV6; this causes a socket to only attempt to connect to IPv4 addresses, ignoring any available IPv6 addresses. In addition, {{ interface("nsIDNSService") }} now offers a new resolve flag: RESOLVE_DISABLE_IPV6; this causes domain name resolution to only consider IPv4 hosts, ignoring any available IPv6 addresses. These changes are used to implement the "happy eyeballs" strategy for improving response time when attempting to connect on hosts that support both IPv4 and IPv6 (especially those that have broken IPv6 connectivity).
  • {{ interface("inIDOMUtils") }} has two new methods, {{ ifmethod("inIDOMUtils","getChildrenForNode") }} which returns a list of child nodes of a node and {{ ifmethod("inIDOMUtils","getUsedFontFaces") }} which returns a list of font faces used in a range. (see {{ bug("467669") }})
  • The nsIMarkupDocumentViewer_MOZILLA_2_0_BRANCH interface has been merged into the {{ interface("nsIMarkupDocumentViewer") }} interface.
  • The nsIDOMWindow2 interface has been merged into the {{ interface("nsIDOMWindow") }} interface. (see {{ bug("664543") }})
  • The nsIDOMWindow_2_0_BRANCH interface has been merged into the {{ interface("nsIDOMWindowInternal") }} interface. (see {{ bug("664543") }})
  • {{ interface("nsINavHistoryObserver") }} methods with URI parameters now require a GUID as well.
  • The nsISHistory_2_0_BRANCH interface has been merged into the {{ interface("nsISHistory") }} interface. (see {{ bug("664979") }})
  • {{ interface("nsITelemetry") }} has a new method, {{ ifmethod("nsITelemetry","getHistogramById") }} which returns a histogram by its ID, and a new attribute, canRecord which when set to false disables recording of telemetry statistics. Telemetry statistics are no longer recorded when in Private Browsing Mode. (see {{ bug("661574") }} and {{ bug("661573") }})
    Telemetry histograms defined with {{ ifmethod("nsITelemetry","newHistogram") }} will not be reported in the telemetry ping. (see {{ bug("668312") }})
  • The {{ interface("nsIMemoryReporter") }} interface has been substantially changed; if you use it, you will need to make some adjustments to your code.
  • {{ interface("nsIXMLHttpRequest") }}, headers set by {{ ifmethod("nsIXMLHttpRequest","setRequestHeader") }} are sent with the request when following a redirect. Previously these headers would not be sent.
  • {{ interface("nsIDocShell") }} has a new allowWindowControl attribute. If true, the docshell's content is allowed to control the window (that is, to move or resize the window).
  • The nsIThreadInternal2 interface has been merged into the {{ interface("nsIThreadInternal") }} interface.

New interfaces

{{ interface("nsIDOMFontFace") }}
(see {{ bug("467669") }})
{{ interface("nsIDOMFontFaceList") }}
(see {{ bug("467669") }})

Removed interfaces

The following interfaces were implementation details that are no longer needed:

  • nsIDOM3Attr (see {{ bug("666968") }})
  • nsIDOM3Node (see {{ bug("659053") }})
  • nsIDOM3TypeInfo (see {{ bug("660539") }})
  • nsIDOM3Text (see {{ bug("641333") }})
  • nsIDOMDocumentStyle (see {{ bug("658904") }})
  • nsIDOMNSDocument (see {{ bug("658906") }})
  • nsIDOMNSFeatureFactory (see {{ bug("659053") }})
  • {{ interface("nsIDOMNSHTMLDocument") }} (see {{ bug("659113") }})
  • nsIDOMNSHTMLFormElement (see {{ bug("660433") }})
  • nsIDOMNSHTMLHRElement (see {{ bug("659990") }})
  • nsIDOMNSHTMLTextAreaElement (see {{ bug("660433") }})

The following interfaces were removed as part of the removal of the ActiveX embedding API:

  • DITestScriptHelper (see {{ bug("662023") }})
  • DWebBrowserEvents (see {{ bug("662023") }})
  • DWebBrowserEvents2 (see {{ bug("662023") }})
  • {{ interface("IDispatch") }} (see {{ bug("662000") }})
  • IMozControlBridge (see {{ bug("662023") }})
  • IMozPluginHostCtrl (see {{ bug("662023") }})
  • IWebBrowser (see {{ bug("662023") }})
  • IWebBrowser2 (see {{ bug("662023") }})
  • IWebBrowserApp (see {{ bug("662023") }})
  • IXMLDocument (see {{ bug("662023") }})
  • IXMLElement (see {{ bug("662023") }})
  • IXMLElementCollection (see {{ bug("662023") }})
  • IXMLError (see {{ bug("662023") }})
  • nsIActiveXSecurityPolicy (see {{ bug("662000") }})
  • {{ interface("nsIDispatchSupport") }} (see {{ bug("662000") }})
  • nsIMozAxPlugin (see {{ bug("662023") }})
  • nsIScriptEventHandler (see {{ bug("383383") }})
  • nsIScriptEventManager (see {{ bug("383383") }})

See also

{{ languages( { "ja": "ja/Firefox_7_for_developers" } ) }}

Revision Source

<p>{{ draft() }}</p>
<p>{{ ReleaseChannelInfo("7") }}</p>
<h2>Changes for web developers</h2>
<h3>HTML</h3>
<ul> <li>The {{ domxref("HTMLHeadElement") }} <code>profile</code> property has been removed, this property has been deprecated since {{ gecko("2.0") }}. (see {{ bug("664544") }})</li> <li>The {{ domxref("HTMLImageElement") }} <code>x</code> and <code>y</code> properties have been removed. (see {{ bug("587021") }})</li> <li>The {{ domxref("HTMLSelectElement") }} <code>add()</code> method <code>before</code> parameter is now optional. (see {{ bug("182279") }})</li> <li>The {{ HTMLElement("body") }} element's {{ htmlattrxref("background", "body") }} attribute is no longer resolved as a URI; this is in compliance with the current HTML specification.</li> <li>The {{ HTMLElement("option") }} element's {{ htmlattrxref("label", "option") }} attribute now reflects the value of the element's text content if the attribute isn't specified.</li>
</ul>
<h4>Canvas</h4>
<ul> <li>Specifying invalid values when calling <code>setTransform()</code>, <code>bezierCurveTo()</code>, or <code>arcTo()</code> no longer throws an exception; these calls are now correctly silently ignored.</li> <li>The <a href="/en/DOM/CanvasRenderingContext2D#isPointInPath()" title="en/DOM/CanvasRenderingContext2D#isPointInPath()"><code>isPointInPath()</code></a> method now correctly considers the transformation matrix when comparing the specified point to the current path.</li> <li>Calling <code>strokeRect()</code> with a zero width and height now correctly does nothing. (see {{ bug("663190") }})</li> <li>Calling <a href="/en/DOM/CanvasRenderingContext2D#drawImage()" title="en/DOM/CanvasRenderingContext2D#drawImage()"><code>drawImage()</code></a> with a zero width or height {{ HTMLElement("canvas") }} now throws <code>INVALID_STATE_ERR</code>. (see {{ bug("663194") }})</li> <li>Calling <a href="/en/DOM/CanvasRenderingContext2D#drawImage()" title="en/DOM/CanvasRenderingContext2D#drawImage()"><code>drawImage()</code></a> with non-finite coordinates no longer throws an exception.</li> <li><code>toDataURL()</code> method now accepts a second argument to control JPEG quality (see {{ bug("564388") }})</li> <li>Support for the non-standard <code>globalCompositeOperation</code> operations <code>clear</code> and <code>over</code> has been removed (see {{ bug("629870") }}).</li> <li><a href="/en/Canvas_tutorial/Applying_styles_and_colors#Shadows" title="en/Canvas_tutorial/Applying_styles_and_colors#Shadows">Shadows</a> are now only drawn for <code>source-over</code> compositing operations (see {{ bug("656844") }}).</li> <li>You can now configure the fill rule used by canvas by setting the <code>mozFillRule</code> <a href="/en/DOM/CanvasRenderingContext2D#Attributes" title="en/DOM/CanvasRenderingContext2D#Attributes">attribute</a> on the context.</li>
</ul>
<h3>CSS</h3>
<ul> <li>{{ cssxref("text-overflow") }} is now supported.</li> <li>The {{ cssxref("orient", "-moz-orient") }} property has been fixed so that {{ HTMLElement("progress") }} elements that are vertically oriented have appropriate default dimensions.</li>
</ul>
<h3>MathML</h3>
<ul> <li>XLink href has been restored and the MathML3 <code>href</code> attribute is now supported. Developers are encouraged to move to the latter syntax.</li> <li>Support for the <code>voffset</code> attribute on {{ MathMLElement("mpadded") }} elements has been added and behavior of <code>lspace</code> attribute has been fixed.</li> <li>The top-level {{ MathMLElement("math") }} element now accepts any attributes of the {{ MathMLElement("mstyle") }} element.</li> <li>Support for <a class="external" href="http://www.ctan.org/tex-archive/fonts/Asana-Math/">Asana Math</a> fonts has been added.</li> <li>The <code>medium</code> line thickness of fraction bars in {{ MathMLElement("mfrac") }} elements has been corrected to match the default thickness.</li> <li><a href="/en/MathML/Attributes/Values#Constants_(namedspaces)" title="en/MathML/Attributes/Values#Constants_(namedspaces)">Names for negative spaces</a> are now supported.</li>
</ul>
<h3>DOM</h3>
<ul> <li>The {{ domxref("File") }} interface's non-standard methods <code>getAsBinary()</code>, <code>getAsDataURL()</code>, and <code>getAsText()</code> have been removed as well as the non-standard properties <code>fileName</code> and <code>fileSize</code>.</li> <li>The {{ domxref("XMLHttpRequest/FormData", "FormData") }} interface no longer reports the filename as an empty string when sending the <code>Content-Disposition</code> HTTP header if the data was set using a {{ domxref("Blob") }}. This fixes errors that were happening with some servers.</li> <li>The {{ domxref("element.dir") }} attribute now always returns its result as all lower-case, as required by the HTML specification.</li> <li>The {{ domxref("FileReader") }} <code>readAsArrayBuffer()</code> method is now implemented. (see {{ bug("632255") }})</li> <li>{{ domxref("document.createEntityReference") }} has been removed. It was never properly implemented and is not implemented in most other browsers. (see {{ bug("611983") }})</li> <li><code>document.normalizeDocument</code> has been removed. Use {{ domxref("Node.normalize") }} instead. (see {{ bug("641190") }})</li> <li>{{ domxref("DOMTokenList.item") }} now returns <code>undefined</code> if the <code>index</code> is out of bounds, previously it returned <code>null</code>. (see {{ bug("529328") }})</li> <li><code>Node.getFeature</code> has been removed (see {{ bug("659053") }}).</li> <li>The <code>HTMLInsElement</code> and <code>HTMLDelElement</code> interfaces have been removed, since the {{ HTMLElement("ins") }} and {{ HTMLElement("del") }} elements actually use the {{ domxref("HTMLModElement") }} interface.</li> <li>Many {{ domxref("Node") }} properties and methods that Gecko incorrectly exposed on the {{ domxref("Attr") }} interface are <a href="/En/DOM/Attr#Deprecated_properties_and_methods" title="En/DOM/Attr#Deprecated_properties_and_methods">now reporting warnings</a> as we work toward removing them. Currently, our implementation of <code>Attr</code> is inheriting from <code>Node</code>, which it should not be.</li>
</ul>
<h3>JavaScript</h3>
<ul> <li>The <code><a href="/en/JavaScript/Reference/Global_Objects/Function/arity" title="en/JavaScript/Reference/Global_Objects/Function/arity">Function.arity</a></code> property has been removed; use <code><a href="/en/JavaScript/Reference/Global_Objects/Function/length" title="en/JavaScript/Reference/Global_Objects/Function/length">Function.length</a></code> instead.</li>
</ul>
<h3>WebSocket</h3>
<ul> <li>The <code>network.websocket.max-connections</code> preference is used to determine the maximum number of WebSocket connections that can be open at a time. The default value is 200.</li> <li>The underlying WebSocket protocol version 8 (as specified by <a class=" external" href="http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-10" title="http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-10">IETF draft 10</a>) is used now instead of the version 7 protocol used by Firefox 6.</li> <li>WebSocket are now available on Firefox Mobile. (see {{ bug("537787") }})</li>
</ul>
<h3>console API</h3>
<ul> <li>Message logged with <code>console.log</code> before the <a class="link-https" href="https://wiki.mozilla.org/DevTools/Features/WebConsole7">WebConsole</a> is opened are now stored and displayed once the <a class="link-https" href="https://wiki.mozilla.org/DevTools/Features/WebConsole7">WebConsole</a> is opened.</li>
</ul>
<div class="changelog"> <h3>Web timing</h3> <ul> <li>Initial implementation of the <a class="external" href="http://www.w3.org/TR/navigation-timing/">Navigation Timing</a> specification (see {{ bug("570341") }}).</li> </ul> <h3>XML</h3> <ul> <li>In addition to the previously supported <code>text/xsl</code>, XSLT stylesheets can now use the official MIME type <code>application/xslt+xml</code> (in the stylesheet processing instruction or the <a class="external" href="http://tools.ietf.org/html/rfc5988">HTTP Link header field</a>).</li> </ul>
</div>
<h2>Changes for Mozilla and add-on developers</h2>
<div class="note"><strong>Note:</strong> Firefox 7 requires that binary components be recompiled, as do all major releases of Firefox. See <a href="/En/Developer_Guide/Interface_Compatibility#Binary_Interfaces" title="En/Developer_Guide/Interface_Compatibility#Binary_Interfaces">Binary Interfaces</a> for details.</div>
<h3>JavaScript code modules</h3>
<h4>FileUtils.jsm</h4>
<ul> <li>New method <code>openFileOutputStream()</code> opens a file output stream, the non-safe variant, for writing. (see {{ bug("662253") }})</li>
</ul>
<h4>AddonManager.jsm</h4>
<ul> <li>The Add-on Manager has new methods for managing lists of add-ons that changed during applications startup: {{ AMInterface("AddonManager", "addStartupChange") }}, {{ AMInterface("AddonManager", "removeStartupChange") }}, and {{ AMInterface("AddonManager", "getStartupChanges") }}.</li>
</ul>
<h3>XUL</h3>
<ul> <li>{{ xulelem("tree") }} elements can now persist the state of disclosure triangles if the nodes referenced by {{ XULAttr("datasources") }} all have unique IDs specified by "id" attributes.</li> <li>{{ xulelem("panel") }} elements can now be configured to <a href="/en/XUL/PopupGuide/Panels#Letting_panels_be_dragged_by_grabbing_the_background" title="en/XUL/PopupGuide/Panels#Letting_panels_be_dragged_by_grabbing_the_background">let the user drag them by clicking anywhere on their background</a> by using the new {{ XULAttr("backdrag") }} attribute.</li>
</ul>
<h3>XPCOM</h3>
<ul> <li>The new <a href="/en/Components.utils.schedulePreciseGC" title="en/Components.utils.schedulePreciseGC"><code>Components.utils.schedulePreciseGC()</code></a> method lets you schedule a thorough garbage collection cycle to occur at some point in the future when no JavaScript code is executing; a callback is executed once collection is complete.</li> <li>The <a href="/en/Components.utils.unload" title="Components.utils.unload"><code>Components.utils.unload()</code></a> method lets you unload JavaScript code modules previously loaded by calling <a href="/en/Components.utils.load" title="en/Components.utils.load"><code>Components.utils.load()</code></a>.</li>
</ul>
<h3>User experience changes</h3>
<ul> <li>Extension options can now be <a href="/en/Extensions/Inline_Options" title="en/Extensions/Inline_Options">displayed inside the Add-on Manager</a> for both restartless and traditional extensions.</li> <li>The destination of downloads is now remembered on a site-by-site basis. This data can be accessed using <a href="/en/JavaScript_code_modules/DownloadLastDir.jsm" title="en/JavaScript_code_modules/DownloadLastDir.jsm">DownloadLastDir.jsm</a>.</li>
</ul>
<h3>Changes to the build system</h3>
<ul> <li>The ActiveX embedding API is no longer built and support has been removed from the build system. Supporting interfaces have also been removed; see {{ anch("Removed interfaces") }}.</li> <li>You should no longer specify <code>-Zc:wchar_t-</code> when building on Windows. See the <a href="/En/Developer_Guide/Build_Instructions#Build_and_install" title="En/Developer_Guide/Build_Instructions#Build_and_install">updated Build documentation</a> for details.</li>
</ul>
<h3>Interface changes</h3>
<ul> <li>{{ interface("nsISocketTransport") }} now offers a new connection flag: <code>DISABLE_IPV6</code>; this causes a socket to only attempt to connect to IPv4 addresses, ignoring any available IPv6 addresses. In addition, {{ interface("nsIDNSService") }} now offers a new resolve flag: <code>RESOLVE_DISABLE_IPV6</code>; this causes domain name resolution to only consider IPv4 hosts, ignoring any available IPv6 addresses. These changes are used to implement the <a class="external" href="http://tools.ietf.org/html/draft-wing-http-new-tech-00">"happy eyeballs" strategy</a> for improving response time when attempting to connect on hosts that support both IPv4 and IPv6 (especially those that have broken IPv6 connectivity).</li> <li>{{ interface("inIDOMUtils") }} has two new methods, {{ ifmethod("inIDOMUtils","getChildrenForNode") }} which returns a list of child nodes of a node and {{ ifmethod("inIDOMUtils","getUsedFontFaces") }} which returns a list of font faces used in a range. (see {{ bug("467669") }})</li> <li>The <code>nsIMarkupDocumentViewer_MOZILLA_2_0_BRANCH</code> interface has been merged into the {{ interface("nsIMarkupDocumentViewer") }} interface.</li> <li>The <code>nsIDOMWindow2</code> interface has been merged into the {{ interface("nsIDOMWindow") }} interface. (see {{ bug("664543") }})</li> <li>The <code>nsIDOMWindow_2_0_BRANCH</code> interface has been merged into the {{ interface("nsIDOMWindowInternal") }} interface. (see {{ bug("664543") }})</li> <li>{{ interface("nsINavHistoryObserver") }} methods with URI parameters now require a GUID as well.</li> <li>The <code>nsISHistory_2_0_BRANCH</code> interface has been merged into the {{ interface("nsISHistory") }} interface. (see {{ bug("664979") }})</li> <li>{{ interface("nsITelemetry") }} has a new method, {{ ifmethod("nsITelemetry","getHistogramById") }} which returns a histogram by its ID, and a new attribute, <code>canRecord</code> which when set to <code>false</code> disables recording of telemetry statistics. Telemetry statistics are no longer recorded when in Private Browsing Mode. (see {{ bug("661574") }} and {{ bug("661573") }})<br> Telemetry histograms defined with {{ ifmethod("nsITelemetry","newHistogram") }} will not be reported in the telemetry ping. (see {{ bug("668312") }})</li> <li>The {{ interface("nsIMemoryReporter") }} interface has been substantially changed; if you use it, you will need to make some adjustments to your code.</li> <li>{{ interface("nsIXMLHttpRequest") }}, headers set by {{ ifmethod("nsIXMLHttpRequest","setRequestHeader") }} are sent with the request when following a redirect. Previously these headers would not be sent.</li> <li>{{ interface("nsIDocShell") }} has a new <code>allowWindowControl</code> attribute. If <code>true</code>, the docshell's content is allowed to control the window (that is, to move or resize the window).</li> <li>The <code>nsIThreadInternal2</code> interface has been merged into the {{ interface("nsIThreadInternal") }} interface.</li>
</ul>
<h4>New interfaces</h4>
<dl> <dt>{{ interface("nsIDOMFontFace") }}</dt> <dd>(see {{ bug("467669") }})</dd> <dt>{{ interface("nsIDOMFontFaceList") }}</dt> <dd>(see {{ bug("467669") }})</dd>
</dl>
<h4>Removed interfaces</h4>
<p>The following interfaces were implementation details that are no longer needed:</p>
<ul> <li><code>nsIDOM3Attr</code> (see {{ bug("666968") }})</li> <li><code>nsIDOM3Node</code> (see {{ bug("659053") }})</li> <li><code>nsIDOM3TypeInfo</code> (see {{ bug("660539") }})</li> <li><code>nsIDOM3Text</code> (see {{ bug("641333") }})</li> <li><code>nsIDOMDocumentStyle</code> (see {{ bug("658904") }})</li> <li><code>nsIDOMNSDocument</code> (see {{ bug("658906") }})</li> <li><code>nsIDOMNSFeatureFactory</code> (see {{ bug("659053") }})</li> <li>{{ interface("nsIDOMNSHTMLDocument") }} (see {{ bug("659113") }})</li> <li><code>nsIDOMNSHTMLFormElement</code> (see {{ bug("660433") }})</li> <li><code>nsIDOMNSHTMLHRElement</code> (see {{ bug("659990") }})</li> <li><code>nsIDOMNSHTMLTextAreaElement</code> (see {{ bug("660433") }})</li>
</ul>
<p>The following interfaces were removed as part of the removal of the ActiveX embedding API:</p>
<ul> <li><code>DITestScriptHelper</code> (see {{ bug("662023") }})</li> <li><code>DWebBrowserEvents</code> (see {{ bug("662023") }})</li> <li><code>DWebBrowserEvents2</code> (see {{ bug("662023") }})</li> <li>{{ interface("IDispatch") }} (see {{ bug("662000") }})</li> <li><code>IMozControlBridge</code> (see {{ bug("662023") }})</li> <li><code>IMozPluginHostCtrl</code> (see {{ bug("662023") }})</li> <li><code>IWebBrowser</code> (see {{ bug("662023") }})</li> <li><code>IWebBrowser2</code> (see {{ bug("662023") }})</li> <li><code>IWebBrowserApp</code> (see {{ bug("662023") }})</li> <li><code>IXMLDocument</code> (see {{ bug("662023") }})</li> <li><code>IXMLElement</code> (see {{ bug("662023") }})</li> <li><code>IXMLElementCollection</code> (see {{ bug("662023") }})</li> <li><code>IXMLError</code> (see {{ bug("662023") }})</li> <li><code>nsIActiveXSecurityPolicy</code> (see {{ bug("662000") }})</li> <li>{{ interface("nsIDispatchSupport") }} (see {{ bug("662000") }})</li> <li><code>nsIMozAxPlugin</code> (see {{ bug("662023") }})</li> <li><code>nsIScriptEventHandler</code> (see {{ bug("383383") }})</li> <li><code>nsIScriptEventManager</code> (see {{ bug("383383") }})</li>
</ul>
<h2>See also</h2>
<ul> <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_7_for_developers" } ) }}</p>
Revert to this revision