files/en-us/mozilla/firefox/releases/12/index.md
Firefox 12 was shipped on April 24, 2012. This page summarizes the changes in Firefox 12 that affect developers. This article provides information about the new features and key bugs fixed in this release, as well as links to more detailed documentation for both web developers and add-on developers.
title attribute now supports newline characters to allow multi-line tooltips.crossorigin attribute is now supported on {{HTMLElement("video")}}.timeout property and "timeout" event, as well as the ontimeout event handler on the {{domxref("XMLHttpRequestEventTarget")}} interface.data: URLs.responseType set to "moz-blob" and the response being a {{domxref("Blob")}} containing all of the data received so far. This lets progress handlers begin processing data without having to wait for it all to arrive.input event is now sent whenever the contents of the element being edited have been changed; this happens after the compositionupdate event has been sent to indicate that the IME's text has been changed. You can use the input event handler, therefore, to monitor changes to the actual content of the element.whatToShow and filter parameters optional and removes the non-standard fourth parameter, entityReferenceExpansion.slice() method was affected by a bug that prevented it from properly accepting start and end values outside the range of a signed 64-bit integer; this has been fixed.crossOrigin property is now supported by {{domxref("HTMLMediaElement")}}.window.navigator.mozTelephony has been implemented and provides support for dialing, answering, and managing phone calls on a device.window.navigator.mozSms is now available for mobile devices to send SMS text messages.window.screen.mozEnabled and window.screen.mozBrightness have been added to control the device's screen.SVGTests DOM API, see Firefox bug 607854length property see Firefox bug 711958dir attribute is now supported on the {{MathMLElement("math")}}, {{MathMLElement("mrow")}}, and {{MathMLElement("mstyle")}} elements as well as on MathML Token Elements. This is particularly important for some Arabic mathematical notations.align defined in MathML3 has been implemented for {{MathMLElement("munder")}}, {{MathMLElement("mover")}}, and {{MathMLElement("munderover")}}.CLOSE_NORMAL when a WebSocket channel was closed due to an unexpected error, or if it was closed due to an error condition that the specification doesn't cover. Now CLOSE_GOING_AWAY is reported instead.Mozilla has been working on integrating its own Web developer tools that complement the popular Firebug add-on. You can get more information about these tools as well as see a list of resources external to Firefox that will help you with your Web development. The entire list is located at Web developer tools.
resetUndo() method was added; this lets you clear the undo stack.find(), findNext(), and findPrevious().chromemargin attribute has changed slightly, to make it easier to make cross-platform XUL code look good on platforms with different default window border widths.nsISupports proxies are no longer supported. You should be using runnables instead.Components.utils.getWeakReference() to throw an exception when the object reference is null; the previous behavior of silently failing has been restored.PRUint64 data type was incorrectly essentially identical to PRint64 when used with XPConnect. This has been fixed.nsIScreen_MOZILLA_2_0_BRANCH interface has been merged into nsIScreen. The APIs defined in that interface (for controlling minimum screen brightness) had not previously been documented, but now they are.nsIScriptError2 interface has been merged into nsIScriptError.nsIDownloadManager.addDownload() is now handled asynchronously rather than synchronously.imgIContainerObserver.frameChanged() method now receives as its first parameter an imgIRequest object identifying the corresponding request.nsIDOMWindowUtils.sendTouchEvent() method has been added to allow synthesizing touch events.SCROLL_CENTER_VERTICALLY as the scroll constant when calling nsISelectionController.scrollSelectionIntoView().nsIMemoryMultiReporter.explicitNonHeap attribute has been added; this is a more efficient way to obtain the sum of all of the multi-reporter's measurements that have a path that starts with "explicit" and are of the kind KIND_NONHEAP.nsIDOMWindowUtils.paintingSuppressed attribute has been added; this boolean value indicates whether or not painting is currently suppressed on the window. This is used on mobile to prevent bouncy rendering that occurs when attempts to draw the page begin before enough content is available to do so smoothly.nsIDocCharset and nsIDocumentCharsetInfo interfaces have been merged into nsIDocShell. As part of this work, the old forcedDetector attribute has been removed; it never did anything.JSThread has been eliminated.JSThreadData has been merged into JSRuntime.