• 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 41 for developers

Firefox 41 for developers

In This Article
  1. Changes for Web developers
    1. Developer Tools
    2. CSS
    3. HTML
    4. JavaScript
    5. Interfaces/APIs/DOM
      1. HTML Editing API
      2. Events
      3. Web Crypto
      4. Canvas API
      5. Service Workers
      6. WebGL
      7. WebRTC
      8. Miscellaneous
    6. MathML
      1. New default and fallback font handling
    7. SVG
    8. Audio/Video
  2. Networking
  3. Security
  4. Changes for add-on and Mozilla developers
    1. XUL
    2. JavaScript code modules
    3. XPCOM
    4. Interfaces
    5. Other
  5. See also
  6. Older versions
To test the latest developer features of Firefox,
install Firefox Developer Edition
Firefox 41 was released on September 22, 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:

  • Take a screenshot of a DOM node
  • Copy as HAR/save as HAR
  • "Add Rule" button in the Rules view
  • View source in a tab (Disabled by default)
  • More options to copy CSS rules
  • Copy image as data: URI in the Rules view
  • Added command to GCLI to display CSP info

All devtools bugs fixed between Firefox 40 and Firefox 41: note that many of these bugs, especially those relating to the performance tools, were uplifted to Firefox 40.

CSS

  • Support for laying out vertical scripts has been activated by default (bug 1138384). That means that the following CSS properties are now available:
    • Choosing the direction of writing: writing-mode.
    • Controlling orientation of characters: text-orientation.
    • Direction-independent equivalents of width and height: block-size and inline-size.
    • Direction-independent equivalents of min-width and min-height: min-block-size and min-inline-size.
    • Direction-independent equivalents of max-width and max-height: max-block-size and max-block-size.
    • 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.
    • 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.
    • 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.
    • Direction-independent equivalents of top, right, bottom and left: offset-block-start, offset-block-end, offset-inline-start and offset-inline-end.
  • Support the transform-origin property in SVG and implement the transform-box property  (bug 923193).

HTML

  • <a> without an href attribute is no longer classified as interactive content. Clicking it inside <label> will activate labelled content (bug 1167816).
  • SVG icons are now supported for site icons, that is favicons and shortcut icons (bug 366324).
  • The crossorigin attribute is now supported for <link rel='preconnect'> (bug 1174152).
  •  The picture element does not react to resize/viewport changes (bug 1135812).

JavaScript

  • Date.prototype is now an ordinary object, not a Date instance anymore (bug 861219).
  • Date.prototype.toString is now a generic method (bug 861219).
  • Symbol.species has been added (bug 1131043).
  • Map[@@species] and Set[@@species] getters have been added (bug 1131043).
  • Non-standard let expression support has been dropped (bug 1023609).
  • Destructured parameters with default value assignment are now supported (bug 1018628).
  • Per ES2015, curly braces are required for method definitions. Syntax without them will fail from now on (bug 1150855).
  • Method definitions (except for generator methods) are not constructable anymore (bug 1059908 and bug 1166950).
  • As part of ES2015 specification compliance, parenthesized destructuring patterns, like ([a, b]) = [1, 2] or ({a, b}) = { a: 1, b: 2 }, are now considered invalid and will throw a SyntaxError. See Jeff Walden's blog post for more details.
  • The new.target syntax has been added (bug 1141865).

Interfaces/APIs/DOM

HTML Editing API

  • Cut, copy and paste commands handling has been revamped and now allow programmatic copying and cutting from JS for Web content:
    • With the 'paste' command as argument, Document.queryCommandSupported() now returns false if has insufficient privileges to actually perform the action (bug 1161721).
    • With the 'cut' or 'copy' command as argument, Document.queryCommandSupported() now returns true if called within the context of a user-initiated or privileged code (bug 1162952).
    • With the 'cut' or 'copy' command as argument, Document.execCommand() now works, but only within the context of user-initiated or privileged code (bug 1012662).
    • Instead of raising an exception, Document.execCommand() when the command is not supported or enabled (bug 1027560).

Events

  • The non-standard CloseEvent.initCloseEvent() method and the ability to create a CloseEvent using the Event.createEvent('CloseEvent') method has been removed; use the standard constructor, CloseEvent() instead (bug 1161950).
  • On Desktop, PointerEvent is now activated by default in Nightly; it is not activated in Developer Edition, Beta or Release and won't be for at least some versions (bug 1166347).
  • The unprefixed version of MouseEvent.movementX and MouseEvent.movementY}} have been added; the prefixed versions are deprecated and will be removed at some point in the future (bug 1164981).

Web Crypto

  • SubtleCrypto.importKey() and SubtleCrypto.exportKey() now supports ECDH keys (bug 1050175).

Canvas API

  • HTMLCanvasElement.captureStream() and CanvasCaptureMediaStream have been added and allow to stream the display of a <canvas> in real-time (bug 1032848).
  • MediaStream.id now returns the unique id of a stream (bug 1089798).
  • The initial value of CanvasRenderingContext2D.filter is now correctly set to none (bug 1163124).

Service Workers

  • Improvement to our experimental Service Worker implementation:
    • ServiceWorkerGlobalScope.skipWaiting() has been implemented (bug 1131352).
    • Clients.claim() has been added (bug 1130684).
    • The other functional events of Service Workers have been made to inherit from ExtendableEvent, giving them access to the waitUntil() method (bug 1160527).
  • The CacheStorage and Cache interfaces are now supported (bug 1110144).

WebGL

  • The failIfMajorPerformanceCaveat WebGL context attribute has been added and can be set when creating a WebGL context with HTMLCanvasElement.getContext() to indicate if a context creation should fail if the system performance is low (bug 1164970).

WebRTC

  • Firefox no longer offers a default STUN server to be used if none are specified when constructing a new RTCPeerConnection. You'll need to provide one in order to successfully establish a WebRTC connection.

Miscellaneous

  • On OS X and Windows, Navigator.onLine now changes regarding network connectivity (it always returned true, , unless "Work offline" mode was selected) before (bug 654579).
  • MessagePort and MessageChannel now available in Web workers, and are enabled by default in all contexts (bug 952139) and (bug 911972).
  • The User Timing API is now available in Web workers (bug 1155761).
  • The Notifications API is now available in Web workers (bug 916893).
  • DOMRequest and DOMCursor are now available in Web workers (bug 1167650).
  • The CSS Font Loading API has been completely implemented and is now enabled by default (bug 1149381).
  • Shared workers can no longer be shared between private (i.e. browsing in a private window) and non-private documents (see bug 1177621).
  • The URLUtilsSearchParams.searchParams property is now read-only (bug 1174731).
  • The URLUtils.hash property no longer decodes URL fragment (bug 1093611).

MathML

New default and fallback font handling

Mathematical formulas require special fonts. So far, these fonts were hard-coded in the mathml.css user agent stylesheet (which sets the font-family on <math> tag) and in the preference option font.mathfont-family (which sets the fallback fonts to use for stretchy and large operators). Firefox 41 introduces, an internal x-math language that is automatically set on the <math> tag as well as corresponding preference options (e.g. font.name.serif.x-math). The user agent stylesheet now sets font-family to serif on the <math> tag and the preference option font.mathfont-family is replaced with font.name.serif.x-math.  All platforms now essentially use the same list of fallback fonts, with "Latin Modern Math" as first one. The default/fallback fonts can be configured from the standard per-language font preference menu. For more details, see bug 947654 and bug 1160456.

SVG

  • Site icons (favicons, shortcut icons) now support SVG (bug 366324).

Audio/Video

  • The media.autoplay.enabled preference now also apply to untrusted HTMLMediaElement.play() invocations too, that is calls from non-users activated scripts (bug 659285).

Networking

  • The X-Content-Duration header is no longer supported (bug 1160695).
  • Draft versions of the HTTP/2 protocol are no more supported (bug 1132357).

Security

  • The CSP 1.1 manifest-src directive is now supported (bug 1089255).
  • Previous versions of Firefox incorrectly expected the Content Security Policy referrer directive's value origin-when-cross-origin to be spelled origin-when-crossorigin. This has been corrected to include the missing dash character.

Changes for add-on and Mozilla developers

XUL

No change.

JavaScript code modules

No change.

XPCOM

Interfaces

No change.

Other

  • A new, internal, and chrome-context-only API to render the root widget of a window into a <canvas> has been added: CanvasRenderingContext2D.drawWidgetAsOnScreen(). This API uses the operating system to snapshot the widget on-screen. For more details see bug 1167477.

See also

  • Site Compatibility for Firefox 41

Older versions

  • Firefox 40 for developers
  • Firefox 39 for developers
  • Firefox 38 for developers
  • 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

Document Tags and Contributors

Tags: 
  • Firefox
  • Firefox 41
  • Releases
 Contributors to this page: Sebastianz, kdex, Sheppy, yisibl, teoli, evilpie, fscholz, kohei.yoshino, Bolaram, mattbrundage, Ehsan, chrisdavidmills, arai, wbamberg, mkato, adria, bholley, fred.wang
 Last updated by: Sebastianz, Feb 7, 2017, 12:41:02 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