Trainspotting: Firefox 38

Trainspotting is a series of articles highlighting features in the latest version of Firefox, that are live now in production code, ready for you to use in your work. A new version of Firefox is shipped every six weeks – we at Mozilla call this pattern “release trains.”

Has it been six weeks already?? Firefox 38 is here, and with it come some snazzy new additions to the Web platform. Here are a few highlights:

For a full list of changes and additions, take a look at the Firefox 38 release notes.

Responsive Image Support

Support for both the <picture> element and <img srcset> are now in a stable Firefox! There are lots of great articles available to get you familiar with the new techniques, and a polyfill available so you can take advantage of them today! There is one caveat for Firefox 38 – responsive images will load using the correct media queries, but presently do not respond to viewport resizing. This bug is being actively worked on and tracked here, and will be fixed in a near-future version of Firefox.

You got WebSockets in my Web Worker!

Firefox 38 now allows code running in a Web Worker to open up a WebSocket connection. This is great for games or other collaborative applications, which can now do their multiplayer/realtime logic in a separate thread from the UI.

HTML5 <ruby> markup support

Ruby Annotation

Better typography for Japanese and Chinese language sites is now possible without clunky libraries or extensions by using <ruby> markup.

BroadcastChannel- postMessage All the Windows!

If you’re building a webapp with multiple tabs or windows, keeping them all in sync, apprised of events and state changes can be a pain. BroadcastChannel is a fully client-side message passing API that lets any scripts running on the same origin broadcast messages to their peers.

// one tab
var ch = new BroadcastChannel('test');
ch.postMessage('this is a test');

// another tab
ch.addEventListener('message', function (e) {
    alert('I got a message!',;

// yet another tab
ch.addEventListener('message', function (e) {
    alert('Avast! a message!';

Developer Tools

Network requests coming from XMLHttpRequest are now marked in the Web Console:

XMLHttpRequest requests marked in the Web Console

Need to grab a value from your page? The special copy method available in the Web Console has you covered:


But Wait

There are tons more improvements and bug fixes in Firefox 38 I haven’t covered here – check out the Firefox 38 release notes, Developer Release Notes, or even the list of bugs fixed in this release for more information.



  1. Dave

    38 seems to have broken the bookmarks toolbar… mine draws blank now until I hide/show it, then it draws correctly.

    This process has to repeat every time I close/open a new window.

    May 12th, 2015 at 09:56

    1. Potch

      I don’t see any bugs on file for that issue- could you ask about it at ? I hope we can help get it figured out!

      May 13th, 2015 at 10:20

  2. Fida Hussain Ghalloo

    How wonderful Firefox 38 !

    May 12th, 2015 at 10:21

  3. nikomo

    Don’t copy that floppy :(

    May 12th, 2015 at 20:03

  4. Wyatt

    You copied thatFloppy! You’re Hart-less.

    May 13th, 2015 at 09:23

  5. RubyRubyRubyRuby

    support has been a long time coming, fantastic news.
    What’s the timeline for layout.css.vertical-text.enabled being default?

    May 13th, 2015 at 11:52

  6. John

    Where did the “About Firefox” menu option go? All I see under the File menu on the Mac is Quit. After some hunting I found where they put the Preference menu, but how do you check the Firefox version?

    May 14th, 2015 at 05:05

    1. RubyRubyRubyRuby

      It’s in the “Help” menu on Linux.

      May 20th, 2015 at 11:49

  7. IlyasF

    Oh goodness ) It’s very useful. We used to use localstorage for synchronizing tabs, but this one looks more understandable and easier.

    May 18th, 2015 at 02:52

  8. Arne

    Still no fix for dotted border radius :D

    May 20th, 2015 at 05:16

Comments are closed for this article.