• Skip to main content
  • Select language
  • Skip to search
MDN Web Docs
  • Technologies
    • HTML
    • CSS
    • JavaScript
    • Graphics
    • HTTP
    • APIs / DOM
    • WebExtensions
    • MathML
  • References & Guides
    • Learn web development
    • Tutorials
    • References
    • Developer Guides
    • Accessibility
    • Game development
    • ...more docs
Firefox
  1. MDN
  2. Mozilla
  3. Firefox
  4. Firefox developer release notes
  5. Firefox 38 for developers

Firefox 38 for developers

In This Article
  1. Changes for Web developers
    1. Developer Tools
    2. CSS
    3. HTML
    4. JavaScript
    5. Interfaces/APIs/DOM
    6. MathML
    7. SVG
    8. Audio/Video
  2. Networking
  3. Security
  4. Changes for add-on and Mozilla developers
    1. Add-on SDK
      1. Highlights
      2. Electrolysis (E10s) updates
      3. Details
    2. XUL
    3. JavaScript code modules
      1. Downloads.jsm
    4. XPCOM
  5. See also
  6. Older versions

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 and ruby-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 and height: block-size and inline-size (bug 1117983).
    • Direction-independent equivalents of min-width and min-height: min-block-size and min-inline-size (bug 1117983).
    • Direction-independent equivalents of max-width and max-height: max-block-size and max-block-size (bug 1117983).
    • Direction-independent equivalents of margin-top, margin-right, margin-bottom and margin-left: margin-block-start, margin-block-end, margin-inline-start and margin-inline-end (bug 649142).
    • Direction-independent equivalents of padding-top, padding-right, padding-bottom and padding-left: padding-block-start, padding-block-end, padding-inline-start and padding-inline-end (bug 649142).
    • Direction-independent equivalents of border-top, border-right, border-bottom and border-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 and border-inline-end-color (bug 649142).
    • Direction-independent equivalents of top, right, bottom and left: offset-block-start, offset-block-end, offset-inline-start and offset-inline-end (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 (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 a SyntaxError (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() and from() methods (bug 896608).
    • The forEach() method (bug 1107645).
    • The filter() and map() methods (bug 1121936).
    • The slice() method (bug 1121935).
  • 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 without new (bug 1108930).
  • The get, has, and delete methods of WeakMap objects no longer throw when the key parameter is not an object (bug 1127827).
  • The optional and non-standard second fallback parameter for WeakMap.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 and RegExp.prototype.toString() now escape regular expression patterns properly (e.g. line terminators, "\n") (bug 1130860).
  • The Regexp global, ignoreCase, multiline, and sticky properties are now prototype accessor properties rather than own data properties of RegExp instances (bug 1120169).
  • The RegExp.prototype.source property is now prototype accessor property rather than own data property of RegExp instances (bug 1120169). Available only in non-Release version, due to bug 1150297.
  • Function.prototype.toString() now throws for Proxy 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, the RangeError exception is now raised, rather than the erroneous TypeError (bug 1125766).
  • The User Timing API, adding Performance.mark(), Performance.clearMarks(), Performance.measure(), and Performance.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 and XMLHttpRequest.withCredentials properties can now be set before calling XMLHttpRequest.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  to false.

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

  • Github commits made between Firefox 37 and Firefox 38.

XUL

No change.

JavaScript code modules

Downloads.jsm

  • DownloadTarget objects now have exists and size properties, allowing you to determine the existence of and the size of the download's target file on disk, as well as a new refresh() 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 if PR_APPEND is passed without PR_TRUNCATE (bug 1117580).
  • nsICompositionStringSynthesizer and nsIDOMWindowUtils.sendCompositionEvent() have been removed. Instead, use nsITextInputProcessor. (bug 917322)
  • nsIDOMWindowUtils.sendKeyEvent() is now deprecated. Instead, use nsITextInputProcessor (bug 1119609).

See also

  • Site Compatibility for Firefox 38

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: 
  • Firefox
  • Release
 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, Feb 7, 2017, 12:43:53 PM
  1. Add-ons
    1. Firefox developer release notes
    2. Add-ons
    3. Add-on guidelines
    4. Add-on Manager
    5. Extensions
    6. OpenSearch plug-ins
    7. Plugins
    8. Themes
  2. Firefox internals
    1. Firefox developer release notes
    2. Mozilla project
    3. Gecko
    4. JavaScript code modules
    5. JS-ctypes
    6. MathML project
    7. MFBT
    8. Mozilla projects
    9. Preference system
    10. WebIDL bindings
    11. XPCOM
    12. XUL
  3. Building and contributing
    1. Build instructions
    2. Configuring build options
    3. How the build system works
    4. Mozilla source code
    5. Localization
    6. Mercurial
    7. Quality assurance
    8. Using Mozilla code in other projects