title | slug | page-type |
---|---|---|
Firefox 38 for developers |
Mozilla/Firefox/Releases/38 |
firefox-release-notes |
{{FirefoxSidebar}}
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.
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.
-
Support for {{cssxref("ruby-position")}} and {{cssxref("ruby-align")}} have been added and is available by default (Firefox bug 1055676 Firefox bug 1123917 and Firefox bug 1039006).
-
The {{cssxref(":unresolved")}} pseudo-class has been implemented for custom elements (Firefox bug 1111633).
-
The predefined style {{cssxref("list-style-type", "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 {{cssxref("::before")}} and {{cssxref("::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 {{cssxref("width")}} and {{cssxref("height")}}: {{cssxref("block-size")}} and {{cssxref("inline-size")}} (Firefox bug 1117983).
- Direction-independent equivalents of {{cssxref("min-width")}} and {{cssxref("min-height")}}: {{cssxref("min-block-size")}} and {{cssxref("min-inline-size")}} (Firefox bug 1117983).
- Direction-independent equivalents of {{cssxref("max-width")}} and {{cssxref("max-height")}}: {{cssxref("max-block-size")}} and {{cssxref("max-block-size")}} (Firefox bug 1117983).
- Direction-independent equivalents of {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}} and {{cssxref("margin-left")}}: {{cssxref("margin-block-start")}}, {{cssxref("margin-block-end")}}, {{cssxref("margin-inline-start")}} and {{cssxref("margin-inline-end")}} (Firefox bug 649142).
- Direction-independent equivalents of {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} and {{cssxref("padding-left")}}: {{cssxref("padding-block-start")}}, {{cssxref("padding-block-end")}}, {{cssxref("padding-inline-start")}} and {{cssxref("padding-inline-end")}} (Firefox bug 649142).
- Direction-independent equivalents of {{cssxref("border-top")}}, {{cssxref("border-right")}}, {{cssxref("border-bottom")}} and {{cssxref("border-left")}} and their longhands for width, style and color: {{cssxref("border-block-start")}}, {{cssxref("border-block-start-width")}}, {{cssxref("border-block-start-style")}}, {{cssxref("border-block-start-color")}}, {{cssxref("border-block-end")}}, {{cssxref("border-block-end-width")}}, {{cssxref("border-block-end-style")}}, {{cssxref("border-block-end-color")}}, {{cssxref("border-inline-start")}}, {{cssxref("border-inline-start-width")}}, {{cssxref("border-inline-start-style")}}, {{cssxref("border-inline-start-color")}}, {{cssxref("border-inline-end")}}, {{cssxref("border-inline-end-width")}}, {{cssxref("border-inline-end-style")}} and {{cssxref("border-inline-end-color")}} (Firefox bug 649142).
- Direction-independent equivalents of {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} and {{cssxref("left")}}: {{cssxref("inset-block-start")}},
offset-block-end
,offset-inline-start
andoffset-inline-end
(Firefox bug 1120283).
-
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).
- The {{HTMLElement("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 {{HTMLElement("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).
-
{{jsxref("Generator/return", "Generator.prototype.return()")}} is implemented (Firefox bug 1115868).
-
{{jsxref("Functions/set", "Setter")}} with a {{jsxref("Functions/rest_parameters", "rest parameter", "", 1)}} is now a {{jsxref("SyntaxError")}} (Firefox bug 1089632).
-
The {{jsxref("Function/name", "name")}} property of functions is configurable now (Firefox bug 1084019).
-
Several {{jsxref("Array")}} methods have been implemented for typed arrays as well:
- The {{jsxref("TypedArray.of", "of()")}} and {{jsxref("TypedArray.from", "from()")}} methods (Firefox bug 896608).
- The {{jsxref("TypedArray.forEach", "forEach()")}} method (Firefox bug 1107645).
- The {{jsxref("TypedArray.filter", "filter()")}} and {{jsxref("TypedArray.map", "map()")}} methods (Firefox bug 1121936).
- The {{jsxref("TypedArray.slice", "slice()")}} method (Firefox bug 1121935).
-
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 {{jsxref("Map")}}/{{jsxref("Set")}}/{{jsxref("WeakMap")}} constructor is called without {{jsxref("Operators/new", "new")}} (Firefox bug 1108930).
-
The {{jsxref("WeakMap.get", "get")}}, {{jsxref("WeakMap.has", "has")}}, and {{jsxref("WeakMap.delete", "delete")}} methods of {{jsxref("WeakMap")}} objects no longer throw when the
key
parameter is not an object (Firefox bug 1127827). -
The optional and non-standard second
fallback
parameter for {{jsxref("WeakMap.prototype.get()")}} has been removed (Firefox bug 1127827). -
When defining a generator method, "
set
" and "get
" are no longer invalid names (Firefox bug 1073809). -
{{jsxref("RegExp.prototype.source")}} now returns "(?:)" instead of an empty string for empty regular expressions (Firefox bug 1130798).
-
{{jsxref("RegExp.prototype.source")}} and {{jsxref("RegExp.prototype.toString()")}} now escape regular expression patterns properly (e.g. line terminators, "\n") (Firefox bug 1130860).
-
The {{jsxref("Regexp")}} {{jsxref("Regexp.global", "global")}}, {{jsxref("Regexp.ignoreCase", "ignoreCase")}}, {{jsxref("Regexp.multiline", "multiline")}}, and {{jsxref("Regexp.sticky", "sticky")}} properties are now prototype accessor properties rather than own data properties of
RegExp
instances (Firefox bug 1120169). -
The {{jsxref("RegExp.prototype.source")}} property is now prototype accessor property rather than own data property of
RegExp
instances (Firefox bug 1120169). Available only in non-Release version, due to Firefox bug 1150297. -
{{jsxref("Function.prototype.toString()")}} now throws for {{jsxref("Proxy")}} objects (Firefox bug 1100936).
- The Fetch API {{domxref("fetch()")}} method has been implemented (Firefox bug 1039846).
- {{domxref("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.
- {{domxref("CanvasRenderingContext2D.clearHitRegions()")}} has been implemented (Firefox bug 1119527).
- Constants of {{domxref("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. - {{domxref("KeyboardEvent.code")}} is now available; previously it was only available in prerelease builds. (Firefox bug 1126673)
- {{domxref("KeyboardEvent.code")}} now supports special keys on Sun keyboards on Linux, Android, and Firefox OS. (Firefox bug 1020139)
- The {{domxref("TextEncoder.TextEncoder", "TextEncoder()")}} constructor has been changed to match the spec: when an invalid parameter is passed, the
RangeError
{{domxref("DOMException")}} is now raised, rather than the erroneous {{jsxref("TypeError")}} (Firefox bug 1125766). - The User Timing API, adding {{domxref("Performance.mark()")}}, {{domxref("Performance.clearMarks()")}}, {{domxref("Performance.measure()")}}, and {{domxref("Performance.clearMeasures()")}} has been implemented (Firefox bug 782751).
- The prefixed version of {{domxref("Window.indexedDB")}},
mozIndexedDB
, has been removed (Firefox bug 975699). - The {{domxref("Document/DOMContentLoaded_event", "DOMContentLoaded")}} event is no longer cancelable (Firefox bug 1134559).
- You can now use WebSockets in Workers (Firefox bug 504553).
- The {{domxref("XMLHttpRequest.responseType")}} and {{domxref("XMLHttpRequest.withCredentials")}} properties can now be set before calling {{domxref("XMLHttpRequest.open()")}} (Firefox bug 707484).
No change.
No change.
No change.
No change.
- 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
.
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).
sdk/page-worker
e10s updates (Firefox bug 1116004).sdk/content/worker
e10s updates (Firefox bug 1116544).sdk/tabs
e10s updates (Firefox bug 1033838).
No change.
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.
"@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).
{{Firefox_for_developers}}