Firefox 38 for developers
Firefox 38 was released on May 12th, 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
Highlights:
CSS
- Support for
ruby-position
andruby-align
have been added and is available by default (Firefox bug 1055676 Firefox bug 1123917 and Firefox bug 1039006). - The
:unresolved
pseudo-class has been implemented for custom elements (Firefox bug 1111633). - The predefined style
ethiopic-numeric
now uses a space, instead of a dot, as the suffix to match a recent change to the spec (Firefox bug 1120721). - CSS transitions on generated content (with
::before
and::after
) on both an inline and the block that splits them now start as expected by the specification (Firefox bug 1110277). - The implementation of CSS Logical Properties made big progress. The following properties are available behind the
layout.css.vertical-text.enabled
flag (false
by default):- Direction-independent equivalents of
width
andheight
:block-size
andinline-size
(Firefox bug 1117983). - Direction-independent equivalents of
min-width
andmin-height
:min-block-size
andmin-inline-size
(Firefox bug 1117983). - Direction-independent equivalents of
max-width
andmax-height
:max-block-size
andmax-block-size
(Firefox bug 1117983). - Direction-independent equivalents of
margin-top
,margin-right
,margin-bottom
andmargin-left
:margin-block-start
,margin-block-end
,margin-inline-start
andmargin-inline-end
(Firefox bug 649142). - Direction-independent equivalents of
padding-top
,padding-right
,padding-bottom
andpadding-left
:padding-block-start
,padding-block-end
,padding-inline-start
andpadding-inline-end
(Firefox bug 649142). - Direction-independent equivalents of
border-top
,border-right
,border-bottom
andborder-left
and their longhands for width, style and color:border-block-start
,border-block-start-width
,border-block-start-style
,border-block-start-color
,border-block-end
,border-block-end-width
,border-block-end-style
,border-block-end-color
,border-inline-start
,border-inline-start-width
,border-inline-start-style
,border-inline-start-color
,border-inline-end
,border-inline-end-width
,border-inline-end-style
andborder-inline-end-color
(Firefox bug 649142). - Direction-independent equivalents of
top
,right
,bottom
andleft
:inset-block-start
,offset-block-end
,offset-inline-start
andoffset-inline-end
(Firefox bug 1120283).
- Direction-independent equivalents of
- How CSS transitions start has been modified to match a recent change of the specifications, aiming at having an interoperable behavior between browsers (Firefox bug 960465).
HTML
- The
<label>
element no longer dispatches events to the label target element if interactive content is found between the event target and the label (Firefox bug 229925). - The
<picture>
element has been activated by default (Firefox bug 1017875). - The
<meta name="referrer">
is supported for navigations from the context menu or via a middle-click (Firefox bug 1113431).
JavaScript
Generator.prototype.return()
is implemented (Firefox bug 1115868).Setter
with a rest parameter is now aSyntaxError
(Firefox bug 1089632).- The
name
property of functions is configurable now (Firefox bug 1084019). - Several
Array
methods have been implemented for typed arrays as well:- The
of()
andfrom()
methods (Firefox bug 896608). - The
forEach()
method (Firefox bug 1107645). - The
filter()
andmap()
methods (Firefox bug 1121936). - The
slice()
method (Firefox bug 1121935).
- The
- Duplicated parameter name is no longer allowed when rest-parameter is present (Firefox bug 1096376).
- Duplicated parameter name is no longer allowed in arrow functions (Firefox bug 1096377).
- Duplicated parameter name is no longer allowed in concise method definitions (Firefox bug 1096378).
- Warning is shown when
Map
/Set
/WeakMap
constructor is called withoutnew
(Firefox bug 1108930). - The
get
,has
, anddelete
methods ofWeakMap
objects no longer throw when thekey
parameter is not an object (Firefox bug 1127827). - The optional and non-standard second
fallback
parameter forWeakMap.prototype.get()
has been removed (Firefox bug 1127827). - When defining a generator method, "
set
" and "get
" are no longer invalid names (Firefox bug 1073809). RegExp.prototype.source
now returns "(?:)" instead of an empty string for empty regular expressions (Firefox bug 1130798).RegExp.prototype.source
andRegExp.prototype.toString()
now escape regular expression patterns properly (e.g. line terminators, "\n") (Firefox bug 1130860).- The
Regexp
global
,ignoreCase
,multiline
, andsticky
properties are now prototype accessor properties rather than own data properties ofRegExp
instances (Firefox bug 1120169). - The
RegExp.prototype.source
property is now prototype accessor property rather than own data property ofRegExp
instances (Firefox bug 1120169). Available only in non-Release version, due to Firefox bug 1150297. Function.prototype.toString()
now throws forProxy
objects (Firefox bug 1100936).
Interfaces/APIs/DOM
- The Fetch API
fetch()
method has been implemented (Firefox bug 1039846). BroadcastChannel
API has been implemented and is available in Web Workers (Firefox bug 966439 and Firefox bug 1121420).- The Console API is now available in Web Workers.
CanvasRenderingContext2D.clearHitRegions()
has been implemented (Firefox bug 1119527).- Constants of
KeyboardEvent.location
,DOM_KEY_LOCATION_MOBILE
and DOM_KEY_LOCATION_JOYSTICK, have been removed, since they were removed from the DOM Level 3 Spec (Firefox bug 936313. KeyboardEvent.code
is now available; previously it was only available in prerelease builds. (Firefox bug 1126673)KeyboardEvent.code
now supports special keys on Sun keyboards on Linux, Android, and Firefox OS. (Firefox bug 1020139)- The
TextEncoder()
constructor has been changed to match the spec: when an invalid parameter is passed, theRangeError
DOMException
is now raised, rather than the erroneousTypeError
(Firefox bug 1125766). - The User Timing API, adding
Performance.mark()
,Performance.clearMarks()
,Performance.measure()
, andPerformance.clearMeasures()
has been implemented (Firefox bug 782751). - The prefixed version of
Window.indexedDB
,mozIndexedDB
, has been removed (Firefox bug 975699). - The
DOMContentLoaded
event is no longer cancelable (Firefox bug 1134559). - You can now use WebSockets in Workers (Firefox bug 504553).
- The
XMLHttpRequest.responseType
andXMLHttpRequest.withCredentials
properties can now be set before callingXMLHttpRequest.open()
(Firefox bug 707484).
MathML
No change.
SVG
No change.
Audio/Video
No change.
Networking
No change.
Security
- In Firefox, the
autocomplete
=false
attribute is now ignored when dealing with a login form (Firefox bug 1025703). This is intended to encourage the use of more secure passwords by allowing password manager tools to work more reliably. - RC4 is now disabled when using TLS, except for a few specifically allowed websites. This whitelist is an interim measure until those sites are fixed (Firefox bug 1124039). This fallback is controlled by the
security.tls.unrestricted_rc4_fallback
preference,true
by default for the moment (Firefox bug 1138882). - Websites needing to fall back to an insecure version of TLS in order to work are now in a hardcoded whitelist which will shrink over time (Firefox bug 1114816). The whitelist can be disabled by setting
security.tls.insecure_fallback_hosts.use_static_list
tofalse
.
Changes for add-on and Mozilla developers
Add-on SDK
Highlights
sdk/context-menu@2
was implemented (Firefox bug 1070952).sdk/addon/bootstrap
was implemented (Firefox bug 1075541).sdk/windows/loader
was removed (Firefox bug 970135).- Fix for default language detection on Linux (Firefox bug 1114712).
toolkit/loader
now has opt-in module compatibility checking, which is enabled for all jpm add-ons (Firefox bug 1037235).
Electrolysis (E10s) updates
sdk/page-worker
e10s updates (Firefox bug 1116004).sdk/content/worker
e10s updates (Firefox bug 1116544).sdk/tabs
e10s updates (Firefox bug 1033838).
Details
XUL
No change.
JavaScript code modules
Downloads.jsm
DownloadTarget
objects now haveexists
andsize
properties, allowing you to determine the existence of and the size of the download's target file on disk, as well as a newrefresh()
method, which asks that these values be updated.
XPCOM
"@mozilla.org/network/atomic-file-output-stream;1"
and"@mozilla.org/network/safe-file-output-stream;1"
now throw an exception ifPR_APPEND
is passed withoutPR_TRUNCATE
(Firefox bug 1117580).nsICompositionStringSynthesizer
andnsIDOMWindowUtils.sendCompositionEvent()
have been removed. Instead, usensITextInputProcessor
. (Firefox bug 917322)nsIDOMWindowUtils.sendKeyEvent()
is now deprecated. Instead, usensITextInputProcessor
(Firefox bug 1119609).
Older versions
- 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
- 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