Firefox 15 shipped on August 28, 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.
Changes for Web developers
HTML
- The
size
attribute of the<font>
element is now handled according to the HTML5 specification. It means that all integer values greater than 10 or less than -10 are now considered equivalent to 10 and -10, respectively. - Support for
font-weight
andpoint-size
attributes on the<font>
element has been removed; these were non-standard and Gecko was the only engine that supported them. - The Opus codec is now supported for audio in Ogg containers for the HTML
<audio>
and<video>
elements. - The
<source>
element now supports themedia
attribute. - The
<audio>
and<video>
elements now support the played attribute, which provides aTimeRanges
object listing the time ranges of the media that have been played back so far.
CSS
- The
font-feature-settings
property has been updated to the latest syntax:font-feature-settings: "lnum" 1;
- The CSS
text-transform
property has been extended to correctly handle Unicode ligature characters (likefi
). - The CSS
word-break
property has been implemented. - The
border-image
property has been updated to match the latest Specification and properties have been unprefixed. (bug 713643) - The
skew()
transform
function dropped in Firefox 14 has been restored due to existing site compatibility. Authors are however, advised to useskewX()
andskewY(
) functions instead. - The value
plaintext
of CSSunicode-bidi
property now applies to inline elements too. (bug 746987).
DOM
- The DOM Events Level 3 methods
KeyboardEvent.getModifierState()
andMouseEvent.getModifierState()
, which let you query the state of modifier keys, likeCtrl
orShift
, have been implemented (bugs 630811 and 731878). But the behavior conforms to the latest D3E draft. So, some modifier key names are different from IE (bug 769190). - On mouse events, support for querying the state of the mouse buttons using the
MouseEvent.buttons
attribute, has been implemented. - On keyboard events, support for querying the key location (standard, left or right of modifier key, in the Numpad) using the KeyboardEvent.location attribute, has been implemented (bug 166240).
- KeyboardEvent.keycode result has been computed from better rules which were almost same on Windows/Linux/Mac. And now they are available on some keyboard layouts which are not ASCII capable layouts on Linux and Mac, such as Arabic, Cyrillic, Thai and so on. See the document for virtual key codes.
- The
range.detach()
method has been transformed in a no-op and will probably be removed in the future. - The method
HTMLVideoElement.mozHasAudio()
has been implemented. It indicates if there is an audio track associated to a given video element. (bug 480376) - The
Performance
API has a new method,now()
, supporting high resolution timers of typeDOMHighResTimeStamp
. (bug 539095). - The WebSMS API has been updated and now supports a
read
attribute indicating whether an SMS text message is read or unread. - The FileHandle API has been implemented.
- The
Blob
constructor now takesArrayBufferView
as a member ofblobParts
parameter in addition toArrayBuffer
. (bug 752402) - The
DeviceLightEvent
specified in the Ambient Light Events Working Draft has been implemented. - The
DeviceProximityEvent
andUserProximityEvent
Proximity Events have been implemented. - The
File
lastModifiedDate
property has been implemented. (bug 673586)
JavaScript
- Support for the
DataView
interface from the Typed Arrays specification has been added. This provides low-level access to the data contained in anArrayBuffer
. - Support for new ECMAScript 6 built-ins:
Number.isNaN()
,Number.toInteger()
,Number.isInteger()
,Number.isFinite()
has been added. (bug 749818, bug 761495, bug 761480). - Support for ECMAScript 6 default parameters has been added. (bug 757676).
- Support for ECMAScript 6 rest parameters has been added. (bug 574132).
WebGL
- Support for the
WEBGL_compressed_texture_s3tc
extension has been added. Compressed textures reduce the amount of memory needed to store a texture on the GPU, allowing for higher resolution textures or more of the same resolution textures.
MathML
- Mathematical operators can now use downloadable fonts specified with
@font-face
. This makes the MathML-fonts add-on work with stretchy operators too. - The
selection
attribute of the<maction>
is now only taken into account with thetoggle
actiontype. - Deprecated namedspace binding has been removed (bug 673759).
- Supported syntax for Length and
<mpadded>
values have been made closer to the one specified in MathML3 spec. - New MathML mirrorable operators for Arabic math have been added to the operator dictionary (bug 757125).
SVG
- Added support for the
<view>
element (bug 512525).
Network
- Support for the SPDY v3 protocol has landed. It is disabled by default and can be enabled by setting the preference
network.http.spdy.enabled.v3
to true. (bug 737470)
Changes for add-on and Mozilla developers
Interface changes
nsIDOMWindowUtils
aModifiers
ofsendMouseEvent()
,sendTouchEvent()
,sendMouseEventToWindow()
,sendMouseScrollEvent()
andsendKeyEvent()
supports all modifier keys which are supported byKeyboardEvent.getModifierState()
. UseMODIFIER_*
values. And now the 5th parameter ofsendKeyEvent()
is changed fromboolean
tounsigned long
. For backward compatibility, if caller passestrue
orfalse
to it, the behavior isn't changed. This change allows callers to specify the key's location.nsIBrowserHistory
- The
hidePage()
method was never implemented, and has been removed entirely in this release. TheaddPageWithDetails()
method has also been removed as part of the ongoing work to make all Places APIs asynchronous; usemozIAsyncHistory.updatePlaces()
instead. Also, thecount
attribute was removed; it had not returned an actual count in some time (instead, it was simply indicating whether or not any entries existed). You can usensINavHistoryService.hasHistoryEntries
instead. inIDOMUtils
- The
inlDOMUtils.parseStyleSheet()
method has been added and allows the (re-)parsing of Cascading Style Sheets. nsIINIParserWriter
- The
nsIINIParserWriter.writeFile()
method now accepts aflags
property. This currently offers only one option: you can now tell it to write the file in UTF-16 format instead of UTF-8, for better compatibility with Windows and certain installers.
New interfaces
nsISpeculativeConnect
- Provides a way to hint to the networking layer that you are likely to ask to open a connection to a given URI sometime in the near future. This lets the network layer begin the sometimes high-latency process of opening a new network connection ahead of time.
Removed interfaces
The following interfaces have been removed.
See also
- Firefox 50 for developers
- Firefox 49 for developers
- Firefox 48 for developers
- Firefox 47 for developers
- Firefox 46 for developers
- Firefox 45 for developers
- Firefox 44 for developers
- Firefox 43 for developers
- Firefox 42 for developers
- Firefox 41 for developers
- Firefox 40 for developers
- Firefox 39 for developers
- Firefox 38 for developers
- Firefox 37 for developers
- Firefox 36 for developers
- Firefox 35 for developers
- Firefox 34 for developers
- Firefox 33 for developers
- Firefox 32 for developers
- Firefox 31 for developers
- Firefox 30 for developers
- Firefox 29 for developers
- Firefox 28 for developers
- Firefox 27 for developers
- Firefox 26 for developers
- Firefox 25 for developers
- Firefox 24 for developers
- Firefox 23 for developers
- Firefox 22 for developers
- Firefox 21 for developers
- Firefox 20 for developers
Document Tags and Contributors
Tags:
Contributors to this page:
Sebastianz,
Sheppy,
fscholz,
teoli,
ethertank,
MattBrubeck,
trevorh,
Sol_Shkr,
myakura,
saneyuki_s,
evilpie,
@@@@,
ziyunfei,
mattbrundage,
Potappo,
fred.wang,
Masayuki,
janv,
pdmdn,
mkato
Last updated by:
Sebastianz,