files/en-us/mozilla/firefox/releases/3.5/index.md
Firefox 3.5 (released June 30, 2009) introduces a number of new features, as well as additional and improved support for a wide variety of web standards. This article offers an extensive list, with links to articles covering the major improvements.
::before and ::after pseudo-elements have been updated to full CSS 2.1 support, adding support for the position, float, list-style-*, and some display properties.ch units for length
ch unit can now be used anywhere that accepts a length. 1ch is the width of the "0" (zero) character.-moz-opacity Mozilla extension to CSS has been removed in favor of the standard opacity property.text-shadow property, which allows web content to specify shadow effects to apply to text and text decorations, is now supported.white-space property supports the pre-line value
pre-line value.-moz-box-shadow, -moz-border-image, -moz-column-rule, -moz-column-rule-width, -moz-column-rule-style, -moz-column-rule-color
-moz-nativehyperlinktext color value
-moz-window-shadow property and the :-moz-system-metric(mac-graphite-theme) pseudo-class
-moz-appearance
-moz-win-glass and -moz-mac-unified-toolbar values have been added to -moz-appearance.localStorage property, which provides a way for web applications to store data locally on the client's computer.NodeIterator object
NodeIterator object provides support for iterating over the list of the nodes in a DOM subtree.MozAfterPaint event
MozMousePixelScroll event
Object.getPrototypeOf()
String object now has trim(), trimLeft(), and trimRight() methods.XMLHttpRequest, to work across domains if the server supports it.XMLHttpRequest
XMLHttpRequest support
XMLHttpRequest.canvas elements
canvas
createImageData()
createImageData() is now supported, allowing code to specifically create an ImageData object instead of requiring it to be done automatically. This can improve performance of other ImageData methods by preventing them from having to create the object.moz-opaque attribute
moz-opaque attribute, which lets the canvas know whether or not translucency will be a factor. If the canvas knows there's no translucency, painting performance can be optimized. See also {{domxref("HTMLCanvasElement.mozOpaque")}}.defer attribute is now supported on script elements
wholeText property and Text.replaceWholeText() method have been implemented.element.children has been added. It returns a collection of child elements of the given element.cloneNode().getBoxObjectFor() DOM method has been removed. You should be using getBoundingClientRect() instead.XPConnect wrapper containing the thrown object.foreignObject.GetSVGDocument() method has been added to object and iframe elements for compatibility.gDownloadLastDir.path variable has been renamed to gDownloadLastDir.file since it refers to an nsIFile, not a path.gDownloadLastDirPath variable has been renamed to gDownloadLastDirFile since it refers to an nsIFile, not a path.data: bindings in chrome packages that get XPCNativeWrapper automation.If you're an extension developer, you should start by reading Updating extensions for Firefox 3.5, which offers a helpful overview of what changes may affect your extension.
textbox widget now offers a search type, for use as search fields.browser widget now has a swapDocShells() method.level attribute to the panel element; this specifies whether panels appear on top of other applications, or just on top of the window the panel is contained within.clientHeight, clientWidth, scrollHeight, and scrollWidth properties.keyset now include a disabled attribute.keysets can now be removed using the node's removeChild() method.mozIStorageStatement had the initialize() method removed; consumers should use the createStatement() method instead to get a new statement object.nsICookie2 interface now exposes the time at which cookies were created in its new creationTime attribute.nsIProtocolHandler (URI_IS_LOCAL_RESOURCE) that is checked during chrome registration to make sure a protocol is allowed to be registered./usr/lib/mozilla/plugins on Linux, as well as the previously supported locations.NPN_GetValue() to query the state of private browsing mode using the variable NPNVprivateModeBool.