Firefox 21 was released on May 14, 2013. This article lists key changes that are useful not only for web developers, but also Firefox and Gecko developers as well as add-on developers.
Changes for Web developers
HTML
- The
scoped
attribute has been added to the<style>
element. It allows to include styles that are isolated from the rest of the document. Such styles can be selected using the:scope
CSS pseudo-element introduced in Firefox 20. (bug 508725). - The new HTML
<main>
element has been implemented (bug 820508).
JavaScript
- E4X, an ancient JavaScript extension, has been removed. Implemented only in Gecko, it never got significant traction (bug 788293).
- parseInt no longer treats strings with leading "0" as octal (bug 786135).
CSS
- The
none
value of-moz-user-select
has now the same behavior than the-moz-none
value, aligning Gecko on WebKit (Chrome, Safari), Presto (Opera) and Trident (Internet Explorer) (bug 816298). - On XHTML content, the
auto
value of-moz-hyphens
incorrectly applied hyphenation rules when the language was not explicitly declared. This is fixed by (bug 702121). - An
auto
value has been added to the CSS-moz-orient
property. Theauto
value is equivalent tohorizontal
when applied to<meter>
and<progress>
(bug 835883). - The media query
-moz-windows-glass
has been added on Windows 7 and earlier Windows system (bug 816803).
DOM
- Support for
RTCPeerConnection
(asMozRTCPeerConnection
) is now enabled by default (bug 796463). It can be disabled again if necessary by settingmedia.peerconnection.enabled
to false. - The
origin
property has been added to thewindow.location
(bug 828261). - The
valueAsDate
andvalueAsNumber
methods have been added for<input type="time">
(bug 781570). - The
min
andmax
attributes now apply to<input type="time">
too (bug 781572). - Some new keyCodes for volume control are supported (bug 674739).
- Some new keyCodes for ancient keyboard layout such as AS/400 are now supported on Windows and Linux (bug 833719).
- Various keyCode values for OEM sepecific keys on Windows are now supported again (bug 833719).
- The function
window.crypto.getRandomValues
has been implemented (bug 440046). - The methods
NodeIterator.expandEntityReferences()
andTreeWalker.expandEntityReferences()
, no more in the latest DOM spec, has been removed (bug 672190). - CSSOM: the method
CSSKeyframesRule
.insertRule
has been removed toCSSKeyframesRule
.appendRule
to match a spec change (bug 841896). - CSSOM If the given parameter given to
CSSStyleSheet.insertRule
contains more than one rule, aDOMException
with aSYNTAX_ERR
is now thrown (bug 765599). - Until now, when the same headers were repeatedly set with
XMLHttpRequest.setRequestHeader
, the last-specified value was used. This behavior has been changed to comply with the spec, so those values will be properly combined (bug 819051).
SVG
- The paint-order attribute has been implemented (bug 828805).
- The
svg.smil.enabled
preference has been removed. SMIL is always on. (bug 835030)
Networking
- We continue to update our CSP implementation to match the CSP 1.0 spec, which reached Candidate Recommendation:
- Support for the spec-compliant
Content-Security-Policy
HTTP header (in addition to the experimentalX-Content-Security-Policy
) has been added (bug 783049). Note: the patch for this new header landed in Firefox 21, it is disabled on builds (bug 842657).
- Support for the spec-compliant
Worker
- The functions
URL.createObjectURL
andURL.revokeObjectURL
are now included in the set of functions available to workers.
Changes for add-on and Mozilla developers
- FUEL applications cannot use the Livemarks service anymore (bug 834492). The Livemarks service is deprecated and phased out in favor of the new async interface.
resource:///modules/
andresource://gre/modules/
are no longer identical (bug 755724). This change was made because of work on the metro version of Firefox. If you load modules usingresource:///modules/
, you should check if you now want to useresource://gre/modules/
instead. Note that some modules also moved from Firefox to Toolkit (bug 840287 and bug 811548 movedNewTabUtils.jsm
and the thumbnail modules, respectively).- The Add-on SDK is now included in Firefox (bug 731779)
- History API saw numerous deprecated API being removed:
- Replaced by
mozIAsyncFavicons
:nsIFaviconService::setFaviconUrlForPage
nsIFaviconService::setFaviconData
nsIFaviconService::getFaviconData
nsIFaviconService::getFaviconForPage
nsIFaviconService::setAndLoadFaviconForPage
nsIFaviconService::getFaviconImageForPage
nsIFaviconService::getFaviconDataAsDataURL
- Replaced by
mozIAsyncLivemarks
:nsILivemarkService::*
PlacesUtils.itemIsLivemark
PlacesUtils.nodeIsLivemarkContainer
PlacesUtils.nodeIsLivemarkItem
- Removed only third argument:
PlacesUIUtils.showBookmarkDialog
- No more implemented by Places, use
mozIAsyncHistory
instead:nsIGlobalHistory2::addURI
nsIGlobalHistory2::isVisited
nsIGlobalHistory2::setPageTitle
- No more needed, use
onDeleteURI
oronItemRemoved
:nsINavHistoryObserver::OnBeforeDeleteURI
nsINavBookmarkObserver::OnBeforeItemRemoved
- Never implemented properly:
nsINavHistoryFullVisitResultNode
- Deprecated, use
mozIAsyncHistory::updatePlaces
instead:nsINavHistoryService::AddVisit
- Replaced by
- Added
nsIHttpChannel.redirectTo()
to enable redirecting HTTP channels without fragile hacks.
See also
Older versions
- 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
- Firefox 19 for developers
- Firefox 18 for developers
Document Tags and Contributors
Tags:
Contributors to this page:
Sheppy,
kohei.yoshino,
teoli,
yyss,
Canuckistani,
kmaglione,
ethertank,
GijsKruitbosch,
myakura,
evilpie,
Jesse,
Masayuki
Last updated by:
Sheppy,