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:
- Bypass audio nodes in Web Audio Editor
- "copy" command in Web Console
- Highlight and filter XmlHttpRequests in Web Console
- See optimized-out variables in the Debugger
- See security warnings in the Network Monitor
- See transferred sizes in the Network Monitor
- Play/pause all animations in the page
All devtools bugs fixed between Firefox 37 and Firefox 38.
CSS
- Support for
ruby-position
andruby-align
have been added and is available by default (bug 1055676 bug 1123917 and bug 1039006). - The
:unresolved
pseudo-class has been implemented for custom elements (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 (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 (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
(bug 1117983). - Direction-independent equivalents of
min-width
andmin-height
:min-block-size
andmin-inline-size
(bug 1117983). - Direction-independent equivalents of
max-width
andmax-height
:max-block-size
andmax-block-size
(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
(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
(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
(bug 649142). - Direction-independent equivalents of
top
,right
,bottom
andleft
:offset-block-start
,offset-block-end
,offset-inline-start
andoffset-inline-end
(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 (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 (bug 229925). - The
<picture>
element has been activated by default (bug 1017875). - The
<meta name="referrer">
is supported for navigations from the context menu or via a middle-click (bug 1113431).
JavaScript
Generator.prototype.return()
is implemented (bug 1115868).Setter
with a rest parameter is now aSyntaxError
(bug 1089632).- The
name
property of functions is configurable now (bug 1084019). - Several
Array
methods have been implemented for typed arrays as well:- The
of()
andfrom()
methods (bug 896608). - The
forEach()
method (bug 1107645). - The
filter()
andmap()
methods (bug 1121936). - The
slice()
method (bug 1121935).
- The
- Duplicated parameter name is no longer allowed when rest-parameter is present (bug 1096376).
- Duplicated parameter name is no longer allowed in arrow functions (bug 1096377).
- Duplicated parameter name is no longer allowed in concise method definitions (bug 1096378).
- Warning is shown when
Map
/Set
/WeakMap
constructor is called withoutnew
(bug 1108930). - The
get
,has
, anddelete
methods ofWeakMap
objects no longer throw when thekey
parameter is not an object (bug 1127827). - The optional and non-standard second
fallback
parameter forWeakMap.prototype.get()
has been removed (bug 1127827). - When defining a generator method, "
set
" and "get
" are no longer invalid names (bug 1073809). RegExp.prototype.source
now returns "(?:)" instead of an empty string for empty regular expressions (bug 1130798).RegExp.prototype.source
andRegExp.prototype.toString()
now escape regular expression patterns properly (e.g. line terminators, "\n") (bug 1130860).- The
Regexp
global
,ignoreCase
,multiline
, andsticky
properties are now prototype accessor properties rather than own data properties ofRegExp
instances (bug 1120169). - The
RegExp.prototype.source
property is now prototype accessor property rather than own data property ofRegExp
instances (bug 1120169). Available only in non-Release version, due to bug 1150297. Function.prototype.toString()
now throws forProxy
objects (bug 1100936).
Interfaces/APIs/DOM
- The Fetch API
fetch()
method has been implemented (bug 1039846). BroadcastChannel
API has been implemented and is available in Web Workers (bug 966439 and bug 1121420).- The Console API is now available in Web Workers.
CanvasRenderingContext2D.clearHitRegions()
has been implemented (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 (bug 936313. KeyboardEvent.code
is now available; previously it was only available in prerelease builds. (bug 1126673)KeyboardEvent.code
now supports special keys on Sun keyboards on Linux, Android, and Firefox OS. (bug 1020139)- The
TextEncoder()
constructor has been changed to match the spec: when an invalid parameter is passed, theRangeError
exception is now raised, rather than the erroneousTypeError
(bug 1125766). - The User Timing API, adding
Performance.mark()
,Performance.clearMarks()
,Performance.measure()
, andPerformance.clearMeasures()
has been implemented (bug 782751). - The prefixed version of
indexedDB
,mozIndexedDB
has been removed (bug 975699). - The
DOMContentLoaded
event is no longer cancelable (bug 1134559). - You can now use WebSockets in Workers (bug 504553).
- The
XMLHttpRequest.responseType
andXMLHttpRequest.withCredentials
properties can now be set before callingXMLHttpRequest.open()
(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 (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 whitelisted Web sites. This whitelist is an interim measure until those sites are fixed (bug 1124039). This fallback is controlled by the
security.tls.unrestricted_rc4_fallback
preference,true
by default for the moment (bug 1138882). - Web sites 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 (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 (bug 1070952).sdk/addon/bootstrap
was implemented (bug 1075541).sdk/windows/loader
was removed (bug 970135).- Fix for default language detection on Linux (bug 1114712).
toolkit/loader
now has opt-in module compatibility checking, which is enabled for all jpm add-ons (bug 1037235).
Electrolysis (E10s) updates
sdk/page-worker
e10s updates (bug 1116004).sdk/content/worker
e10s updates (bug 1116544).sdk/tabs
e10s updates (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
(bug 1117580).nsICompositionStringSynthesizer
andnsIDOMWindowUtils.sendCompositionEvent()
have been removed. Instead, usensITextInputProcessor
. (bug 917322)nsIDOMWindowUtils.sendKeyEvent()
is now deprecated. Instead, usensITextInputProcessor
(bug 1119609).
See also
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
Document Tags and Contributors
Tags:
Contributors to this page:
Sebastianz,
teoli,
kohei.yoshino,
arai,
chrisdavidmills,
Sheppy,
Sonnyp,
Havi Hoffman,
fscholz,
evold,
adria,
wbamberg,
Masayuki,
yisibl,
ziyunfei
Last updated by:
Sebastianz,