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-positionandruby-alignhave been added and is available by default (bug 1055676 bug 1123917 and bug 1039006).
- The :unresolvedpseudo-class has been implemented for custom elements (bug 1111633).
- The predefined style ethiopic-numericnow 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 ::beforeand::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.enabledflag (falseby default):- Direction-independent equivalents of widthandheight:block-sizeandinline-size(bug 1117983).
- Direction-independent equivalents of min-widthandmin-height:min-block-sizeandmin-inline-size(bug 1117983).
- Direction-independent equivalents of max-widthandmax-height:max-block-sizeandmax-block-size(bug 1117983).
- Direction-independent equivalents of margin-top,margin-right,margin-bottomandmargin-left:margin-block-start,margin-block-end,margin-inline-startandmargin-inline-end(bug 649142).
- Direction-independent equivalents of padding-top,padding-right,padding-bottomandpadding-left:padding-block-start,padding-block-end,padding-inline-startandpadding-inline-end(bug 649142).
- Direction-independent equivalents of border-top,border-right,border-bottomandborder-leftand 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-styleandborder-inline-end-color(bug 649142).
- Direction-independent equivalents of top,right,bottomandleft:offset-block-start,offset-block-end,offset-inline-startandoffset-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).
- Setterwith a rest parameter is now a- SyntaxError(bug 1089632).
- The nameproperty of functions is configurable now (bug 1084019).
- Several Arraymethods 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/WeakMapconstructor is called withoutnew(bug 1108930).
- The get,has, anddeletemethods ofWeakMapobjects no longer throw when thekeyparameter is not an object (bug 1127827).
- The optional and non-standard second fallbackparameter 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.sourcenow returns "(?:)" instead of an empty string for empty regular expressions (bug 1130798).
- RegExp.prototype.sourceand- RegExp.prototype.toString()now escape regular expression patterns properly (e.g. line terminators, "\n") (bug 1130860).
- The Regexpglobal,ignoreCase,multiline, andstickyproperties are now prototype accessor properties rather than own data properties ofRegExpinstances (bug 1120169).
- The RegExp.prototype.sourceproperty is now prototype accessor property rather than own data property ofRegExpinstances (bug 1120169). Available only in non-Release version, due to bug 1150297.
- Function.prototype.toString()now throws for- Proxyobjects (bug 1100936).
Interfaces/APIs/DOM
- The Fetch API fetch()method has been implemented (bug 1039846).
- BroadcastChannelAPI 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_MOBILEand DOM_KEY_LOCATION_JOYSTICK, have been removed, since they were removed from the DOM Level 3 Spec (bug 936313.
- KeyboardEvent.codeis now available; previously it was only available in prerelease builds. (bug 1126673)
- KeyboardEvent.codenow 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, theRangeErrorexception 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,mozIndexedDBhas been removed (bug 975699).
- The DOMContentLoadedevent is no longer cancelable (bug 1134559).
- You can now use WebSockets in Workers (bug 504553).
- The XMLHttpRequest.responseTypeandXMLHttpRequest.withCredentialsproperties 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=falseattribute 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_fallbackpreference,trueby 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_listtofalse.
Changes for add-on and Mozilla developers
Add-on SDK
Highlights
- sdk/context-menu@2was implemented (bug 1070952).
- sdk/addon/bootstrapwas implemented (bug 1075541).
- sdk/windows/loaderwas removed (bug 970135).
- Fix for default language detection on Linux (bug 1114712).
- toolkit/loadernow has opt-in module compatibility checking, which is enabled for all jpm add-ons (bug 1037235).
Electrolysis (E10s) updates
- sdk/page-workere10s updates (bug 1116004).
- sdk/content/workere10s updates (bug 1116544).
- sdk/tabse10s updates (bug 1033838).
Details
XUL
No change.
JavaScript code modules
Downloads.jsm
- DownloadTargetobjects now have- existsand- sizeproperties, 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_APPENDis passed without- PR_TRUNCATE(bug 1117580).
- nsICompositionStringSynthesizerand- nsIDOMWindowUtils.sendCompositionEvent()have been removed. Instead, use- nsITextInputProcessor. (bug 917322)
- nsIDOMWindowUtils.sendKeyEvent()is now deprecated. Instead, use- nsITextInputProcessor(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,