Firefox 35 for developers
Firefox 35 was released on January 13th, 2015. 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
Developer Tools
CSS
- The
mask-type
property has been activated by default (Firefox bug 1058519). - The
filter
property is now activated by default (Firefox bug 1057180). - The
@font-face
at-rule now supports WOFF2 fonts (Firefox bug 1064737). - The
symbols()
functional notation is now supported (Firefox bug 966168). - The CSS Font Loading API has been implemented (Firefox bug 1028497).
- Using
-moz-appearance
with thenone
value on a combobox now remove the dropdown button (Firefox bug 649849). - The property accessor
element.style["css-property-name"]
has been added to match other browsers (Firefox bug 958887).
HTML
- The obsolete and non-conforming
bottommargin
,leftmargin
,rightmargin
andtopmargin
attributes of the<body>
element have been activated in non-quirks mode (Firefox bug 95530).
JavaScript
- The "temporal dead zone" for
let
declarations has been implemented. In conformance with ES2015let
semantics, the following situations now throw errors. See also this newsgroup announcement and Firefox bug 1001090.- Redeclaring existing variables or arguments using
let
within the same scope in function bodies is now a syntax error. - Using a variable declared using
let
in function bodies before the declaration is reached and evaluated is now a runtime error.
- Redeclaring existing variables or arguments using
- ES2015
Symbols
(only available in the Nightly channel) have been updated to conform with recent specification changes:String(Symbol("1"))
now no longer throws aTypeError
; instead a string ("Symbol(1)"
) gets returned (Firefox bug 1058396).
- The various TypedArray constructors now have as their
[[Prototype]]
a single function, denoted%TypedArray%
in ES2015 (but otherwise not directly exposed). Each typed array prototype now inherits from%TypedArray%.prototype
. (%TypedArray%
and%TypedArray%.prototype
inherit fromFunction.prototype
andObject.prototype
, respectively, so that typed array constructors and instances still have the properties found on those objects.) Typed array function properties now reside on%TypedArray%.prototype
and work on any typed array. See TypedArray and Firefox bug 896116 for more information. - ES2015 semantics for prototype mutations using object literals have been implemented (Firefox bug 1061853).
- Now only a single member notated as
__proto__:value
will mutate the[[Prototype]]
in the object literal syntax. - Method members like
__proto__() {}
will not overwrite the[[Prototype]]
anymore.
- Now only a single member notated as
Interfaces/APIs/DOM
navigator.language
andnavigator.languages
are now available to workers onWorkerNavigator
(Firefox bug 925849).- The
Element.closest()
method returns the closest ancestor of the current element (Firefox bug 1055533). - Experimental support for the
CanvasRenderingContext2D.filter
property has been added behind thecanvas.filters.enabled
flag (Firefox bug 927892). - Our experimental implementation of Web Animations progresses with the landing of the
Animation.target
property. This always is behind thedom.animations-api.core.enabled
pref, off by default (Firefox bug 1067701). - The
hasAttributes()
method has been moved fromNode
toElement
as required by the spec (Firefox bug 1055773). - The
crossOrigin
reflected attribute ofHTMLImageElement
,HTMLLinkElement
,HTMLMediaElement
,HTMLScriptElement
, andSVGScriptElement
only accepts valid values, and""
isn't,null
has to be used instead (Firefox bug 880997). - The Resource Timing API has been activated by default (Firefox bug 1002855).
- To match the spec, the first argument of
Selection.containsNode()
cannot benull
anymore (Firefox bug 1068058). - The new
ImageCapture
API has been implemented:ImageCapture.takePhoto()
is available (Firefox bug 916643). - Non-HTTP
XMLHttpRequest
requests now return200
in case of success (instead of the erroneous0
) (Firefox bug 716491). XMLHttpRequest.responseURL
has been adapted to the latest spec and doesn't include the fragment ('#xyz'
) of the URL, if relevant (Firefox bug 1073882).- The internal, non-standard,
File.mozFullPath
property is no more visible from content (Firefox bug 1048293). - The constructor of
File
has been extended to match the specification (Firefox bug 1047483). - An experimental implementation of
AbortablePromise
, a promise that can be aborted by a different entity that the one who created it, has been added. It is prefixed withMoz
and controlled by thedom.abortablepromise.enabled
property, defaulting tofalse
(Firefox bug 1035060). - The non-standard
Navigator.mozIsLocallyAvailable
property has been removed (Firefox bug 1066826). - The preference
network.websocket.enabled
,true
by default, has been removed; Websocket API cannot be deactivated anymore (Firefox bug 1091016). - The non-standard methods and properties of
Crypto
have been removed (Firefox bug 1030963). Only methods and properties defined in the standard WebCrypto API are left. - Our experimental implementation of WebGL 2.0 is going forward!
- The
WebGL2RenderingContext.copyBufferSubData()
method has been implemented (Firefox bug 1048668).
- The
MathML
- The
dtls
OpenType feature (via the CSSfont-feature-settings
on the default stylesheet) is now applied automatically to MathML elements when positioning scripts over it (e.g. dotless i with mathematical hat).
SVG
No change.
Audio/Video
No change.
Network & Security
- HTTP/2 has been implemented and activated, with AEAD ciphers only (Firefox bug 1027720 and Firefox bug 1047594).
- The HTTP/2
alt-svc
header is now supported (Firefox bug 1003448). - The Public Key Pinning Extension for HTTP (HPKP) has been implemented (Firefox bug 787133).
- The CSP 1.1
base-uri
directive is now supported (Firefox bug 1045897). - Path of the source is now considered too when host-source matching happens in CSP (Firefox bug 808292).
Changes for add-on and Mozilla developers
XUL & Add-ons
- The private
_getTabForBrowser()
method on the<xul:tabbrowser>
element has been deprecated. In its place, we've added a new, public, method calledgetTabForBrowser
. This returns, predictably, the<xul:tab>
element that contains the specified<xul:browser>
. Components.utils.now()
, matchingPerformance.now()
has been implemented for non-window chrome code (Firefox bug 969490).
Add-on SDK
Highlights
- Added access keys for context menu.
- Removed
isPrivateBrowsing
fromBrowserWindow
. - Added
toJSON
method toURL
instances.
Details
GitHub commits made between Firefox 34 and Firefox 35. This will not include any uplifts made after this release entered Aurora.
Bugs fixed between Firefox 34 and Firefox 35. This will not include any uplifts made after this release entered Aurora.
Older versions
- 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
- Firefox 17 for developers
- Firefox 16 for developers
- Firefox 15 for developers
- Firefox 14 for developers
- Firefox 13 for developers
- Firefox 12 for developers
- Firefox 11 for developers
- Firefox 10 for developers
- Firefox 9 for developers
- Firefox 8 for developers
- Firefox 7 for developers
- Firefox 6 for developers
- Firefox 5 for developers
- Firefox 4 for developers
- Firefox 3.6 for developers
- Firefox 3.5 for developers
- Firefox 3 for developers
- Firefox 2 for developers
- Firefox 1.5 for developers