The State Of Various Firefox Features

Written by Eric Griffith in Software on 18 May 2015 at 11:40 AM EDT. Page 1 of 2. 49 Comments.

Today's post by the new Phoronix intern is looking at the state of various new (and experimental) features within Mozilla's Firefox web-browser. Covered in this article is the Electrolysis e10s multi-process model, Encrypted Media Extensions, Media Source Extensions, Skia, off-main thread compositing, and sandboxing.

Electrolysis e10s Multiprocess Model

From the Electrolysis feature page: "The goal of the current Electrolysis project ("e10s" for short) is to render and execute web related content in a single background 'content' process which communicates with the main Firefox process via various ipdl protocols. The two major advantages of this model are security and performance. Security improvements are accomplished through sandboxing, performance improvements are born out of the fact that multiple processes better leverage available client computing power."

Certain add-ons will work without change, or with minimal change, in e10s mode while others require more comprehensive changes. A listing of known add-on incompatibilities can be found here.

If you'd like to test it yourself you'll need to download Firefox Nightly where it is currently enabled by default. Enabling it manually in Stable appears to be disallowed. To confirm that you are in fact using e10s go to about:support and look for Multiprocess Windows.

Unfortunately, due to Nightly being unstable and constantly hanging, I wasn't able to grab a screenshot where it is enabled. Can't blame it entirely on e10s, Nightly didn't work at all for me, the screenshot above is snagged from Fedora's stable build.

Here's the e10s meta-bug. The current hope is to have e10s enabled by default in a released version of Firefox by the end of 2015, likely in Firefox 42 or 43.

Encrypted Media Extensions – EME Support

From Henri Sivonen's "What is EME?":

Encrypted Media Extensions (EME) is a JavaScript API for playing DRMed video content in HTML. A DRM component called a Content Decryption Module (CDM) decrypts, decodes, and displays the video. A JavaScript program coordinates the process using the EME API to pass messages between the CDM and a server that provides decryption keys and content.

Firefox 38, released a few days ago, includes support for the Adobe CDM on Windows platforms. Currently this still a work-in-progress for OS X and Linux builds. On the bright side, Netflix has started to experiment with Adobe-CDM enabled streaming, thus removing the need for Silverlight.

Windows users wishing to not have the CDM available to them can download a EME-less build here.

Andreas Gal posted a technical overview of the feature, and an overview of EME the day of the release.

There are currently 72 open bugs against the EME implementation via this meta-bug.

Media Source Extensions – MSE Support

From the w3.org overview: "[MSE] extends HTMLMediaElement to allow JavaScript to generate media streams for playback. Allowing JavaScript to generate streams facilitates a variety of use cases like adaptive streaming and time shifting live streams."

The best known application using MSE is Youtube, who uses it to automatically adjust playback quality based upon bandwidth availability. For Firefox the feature is currently limited to WebM playback, though H.264 is expected eventually.

Users wishing to enable Firefox's MSE support need to set two about:config option:

media.mediasource.enabled = true
media.mediasource.webm.enabled = true

Setting those options should cause www.youtube.com/html5 to change thusly:

Currently MSE-enabled versions of Firefox default to using the lowest quality available, though it can be forced to use a higher-quality by specifying one using the gear settings for the video. This issue is due to this bug.

There are currently 122 open bugs against MSE support via this meta-bug.

Related Articles