Electrolysis

From MozillaWiki
Revision as of 20:12, 15 January 2016 by JLD (talk | contribs) (→‎Schedule: Fix spelling (spe11ing?))
Jump to navigation Jump to search

Goal

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.

For current status, visit the current project roadmap overview. The e10s team estimates e10s with a single content process will be enabled in Firefox Release by the middle of 2016.

Enabling and Disabling Electrolysis

To enable or disable e10s, open Preferences and check the "Enable multi-process" checkbox and then restart your browser.

Nightly > Preferences > General > Enable multi-process

If your browser breaks in a way that you can't easily recover to change this setting, you can start Firefox in Safe Mode (by holding Alt/Option during start) which should allow you to enter the Preferences dialog and untick the checkbox.

What to Expect

Generally the browser should be stable and usable, without major issues or crashes. Profiles that have lots of older addons will likely experience slowness or other issues. If you run into any trouble, try disabling incompatible add-ons.

Schedule

Date Trunk Aurora Beta Release
3-30 40 default (working on m5) 39 off 38 off 37 off
5-11 41 default (working on m6) 40 prompt 39 off 38 off
6-29 42 default (working on m7/m8) 41 prompt 40 off 39 off
8-10 43 default (working on m8) 42 default 41 off 40 off
9-21 44 default (release criteria driven) 43 default 42 off 41 off
11-02 45 default (release criteria driven) 44 default 43 off 42 off
12-14 46 default (release criteria driven) 45 default 44 A/B 43 off
1-25 47 default (release criteria driven) 46 default 45 A/B 44 off
3-07 48 default (release criteria driven) 47 default 46 50-50 (addons & a11y = off) 45 off
4-18 49 default (release criteria driven 48 default 47 50-50 (addons & a11y = off) 46 on (addons & a11y = off)

Contributing

The simplest way to help out is to test a release that has e10s enabled, and file bug when you find them. Please try to find duplicates prior to filing.

  • The project roadmap overview provides current bug lists slated for development based on a set of 2015 milestones.
  • The current incoming e10s weekly triage bug list. Check this for "fresh" issues recently filed.
  • Here's a bugzilla template link for filing a new e10s bug: http://is.gd/aTza8A
  • When filing a new bug, please add the tracking-e10s:? flag or place 'e10s' in the bug title so that it shows up in the team's weekly triage bug list.

For developers interested in helping out, MDN has a good introduction to e10s, useful for both Firefox and add-on developers.

Accessibility Support

Accessibility clients require direct access to information about content. In non-e10s this information is queried directly using sync calls into the DOM. These calls generally arrive on the application main or UI thread and expect a response on return. With e10s, the chrome process generally communicates with content through asynchronous interfaces. This is incompatible with current a11y clients. As such the Accessibility Team is currently working on a two phase approach to getting accessibility working under e10s:

  • Initial support with sync chrome -> content calls for most common apis, with light weight caching to cut down on the heaviest api traffic. (Partly complete.)
  • A black list of clients known to have issues with e10s will be added for roll out to Aurora and beyond. When a blacklisted client is detected Firefox will prompt the user to disable e10s and restart. This work is covered by meta bug 1159326.
  • Gradual improvement using chrome side caching of DOM state, working toward a mostly asynchronous interface.
  • Eventual removal of the blacklist once we are ready to drop support for non-e10s and A11y caching support is fully implemented.

Tracking bugs:

  • bug 1159326 - Tracking e10s / a11y mitigation work for roll out to Aurora
  • bug 1029143 - Implement accessibility for sandboxed e10s

Add-ons Compatibility

Add-on authors should refer to the MDN Firefox Add-on Migration Guide for porting existing add-ons to e10s. For general design information see the Multiprocess Firefox MDN documentation.

Add-on testing compatibility is currently available at http://arewee10syet.com.

Past Milestones

  • 2014-09-11 - bug 1064885 - Enable opt-in option for Nightly
  • 2014-11-13 - bug 1093691 - Enabled for Nightly builds
  • 2015-05-08 - bug 1161260 - Enable opt-in option for Aurora
  • 2015-07-28 - bug 1182097 - Disabled on Aurora for about 1 week due to a bug in a11y prompting
  • 2015-07-31 - bug 1188605 - Enabled for Aurora builds

Communication

Weekly Team Meeting Weekly Team Meeting Thursday at 9:00am PT
  • Vidyo: "e10s"
  • Invitation: Contact blassey, jimm, or larissa to get added to the meeting invite list.
  • Meeting Notes
Weekly Addons Strategy Meeting
IRC
  • Server: irc.mozilla.org
  • Channel: #e10s
Newsgroup/Mailing List

People

Engineering Management
  • Brad Lassey
Project Management
  • Erin Lancaster - e10s Go to Market
  • Shell Escalante - Add-Ons
QA
  • Tracy Walker (e10s Quality Assurance Lead)
Development Team
  • Mike Conley
  • Felipe Gomes
  • Blake Kaplan
  • Gabor Krizsanits
  • William McCloskey
  • Jim Mathies
  • David Parks
  • Tom Schuster
  • Dave Townsend
  • George Wright
Other Teams
  • Accessibility: Trevor Saunders (bug 1029143)
  • Addon Developer Relations: Jorge Villalobos
  • Developer Tools: Rob Campbell (bug 875871)
  • IME: Makoto Kato, Masayuki Nakano (bug 926798)
  • Jetpack: Dave Townsend
  • Sandboxing: Bob Owen (bug 925570)
  • WebRTC: Randell Jesup or Eric Rescorla.
  • e10s tests: Mark Hammond

Reference

Bug Lists

Meeting Notes

Link

Weekly Status