Electrolysis

From MozillaWiki
Jump to: navigation, 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 end of 2015.

Enabling and Disabling Electrolysis

To enable or disable e10s, open Nightly's Preferences and check the "Enable E10S" checkbox. You will need to restart Nightly.

Nightly > Preferences > General > Enable E10s

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

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.

What to Expect

Basic browsing should work as expected. Tabs that are loaded remotely (i.e., in a separate process) will have their title underlined. By default, all tabs share just one content process. If one tab crashes, they all crash. Process-per-tab, like Google Chrome, is on our roadmap.

Common Issues

Common issues you might run into when testing e10s:

ID Summary Whiteboard Keywords Assigned to Status Tracking e10s
960836 [TSF] TSF support on e10s dogfood, inputmethod Makoto Kato (:m_kato) (m_kato) NEW +
1029143 Implement accessibility for sandboxed e10s. dogfood, meta Trevor Saunders (:tbsaunde) (tbsaunde+mozbugs) NEW m6+
1050869 Can't load page that redirects when e10s is enabled dogfood, steps-wanted Blake Kaplan (:mrbkap) (please use needinfo!) (mrbkap) NEW +
1051567 Crash in mozilla::ipc::MessageChannel::OnChannelErrorFromLink dogfood, testcase Blake Kaplan (:mrbkap) (please use needinfo!) (mrbkap) NEW +
1055464 "Warn me when websites try to redirect or reload the page" broken with e10s dogfood NEW +
1060338 [e10s] OS X "Look Up" dictionary trackpad gesture does not work in e10s dogfood NEW +
1066729 [e10s] YouTube Video Description Not Showing and comments load forever with Adblock Plus installed dogfood UNCONFIRMED +
1090602 [e10s] <option> events do not bubble up through parent <select> dogfood Mike Conley (:mconley) - Needinfo me! (mconley) ASSIGNED m8+
1092216 [meta] crash in mozalloc_abort(char const* const) | NS_DebugBreak | mozilla::ipc::MessageChannel::DebugAbort(char const*, int, char const*, char const*, bool) | mozilla::ipc::MessageChannel::Send(IPC::Message*, IPC::Message*) crash, dogfood, meta REOPENED +
1101100 [e10s] Make “Save As… Complete Document” work in e10s tabs dogfood Jed Davis [:jld] {UTC-7} (jld) NEW m8+

10 Total; 10 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Add-ons Compatibility

A list of tested add-ons (compatible and incompatible) is available at http://arewee10syet.com.

Popular add-ons that are currently broken with e10s:

ID Summary Whiteboard Keywords Assigned to Status Tracking e10s
947030 [e10s] Ghostery addon does not block tracking cookies with e10s [e10s-top-addon] addon-compat, dogfood NEW +
1008768 [e10s] LastPass add-on doesn't detect and fill form fields [e10s-top-addon] addon-compat, dogfood NEW +
1042195 1Password Extension does not work with e10s e10s-top-addon addon-compat, dogfood NEW +
1053007 Mozilla's "Lightbeam" add-on's buttons do not work with e10s addon-compat, dogfood NEW +
1058542 [e10s] "NoScript" add-on does not work with e10s [e10s-top-addon] addon-compat, dogfood NEW +
1062555 "avast! Online Security" add-on does not work with e10s [e10s-top-addon] addon-compat, dogfood NEW +
1066223 [e10s] Ghostery add-on's settings page doesn't work addon-compat, dogfood UNCONFIRMED +
1095748 [e10s] VimFx keyboard shortcut bindings broken addon-compat, dogfood NEW +

8 Total; 8 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Communication

Weekly Team Meeting Weekly Team Meeting Thursday at 9:00am PT for 30 mins
IRC
  • Server: irc.mozilla.org
  • Channel: #e10s
Tracking bugs
Newsgroup/Mailing List
Project branch

People

Project Champion
  • Andreas Gal ( A )
High Level Oversight
  • Johnathan Nightingale ( I )
  • Gavin Sharp ( A )
Engineering Management
  • Brad Lassey ( R )
Project Management
  • Chris Peterson ( R )
  • Larissa Shapiro ( R )
QA
  • Juan Becerra (QA lead)
  • Tracy Walker
Development Team
  • Nicholas Alexander ( R )
  • Mike Conley ( R )
  • Felipe Gomes (Firefox front-end) ( R )
  • Blake Kaplan ( R )
  • William McCloskey ( R )
  • Jim Mathies ( R )
  • Allison Naaktgeboren ( R )
  • John Schoenick (plugins) ( R )
  • Tom Schuster ( R )
  • Tomislav Jovanovic (addon-sdk) ( R )
Other Teams
  • Accessibility: Alexander Surkov and Trevor Saunders (bug 646596)
  • Addon Developer Relations: Jorge Villalobos
  • Developer Tools: Rob Campbell (bug 875871)
  • IME: Makoto Kato (alternately, Masayuki Nakano) (bug 926798)
  • Jetpack: Dave Townsend
  • OMTC/Windows: Nick Cameron (bug 756608)
  • Printing: bz (bug 927188)
  • Plugins: Josh Aas (OS X), Karl Tomlinson (Linux)
  • Sandboxing: Brian Bondy, Sid Stamm (bug 925570)
  • WebAudio: Ehsan Akhgari (WebAudio works fine in e10s.)
  • WebRTC: Randell Jesup or Eric Rescorla. WebRtc is currently getting ready to go into B2G - mozGetUserMedia will be in 26/1.2, and PeerConnections will be in 28/1.3.
  • e10s tests: Mark Hammond

Here is what the letters following each name stand for, those higher on the list include all those below:

  • R = Responsible for deliverable, in most cases this is anyone writing code.
  • A = Accountable for the final decision making on some aspect of the project, often leadership that is not working on code but have go, no go decision making.
  • C = Needs to be consulted on key topics, often this would be for subject mater experts that need to be consulted but don't have decision making power.
  • I = Needs to be kept informed, those that just need regular status reports sent to them.

Reference

Bug Lists

Schedule

Nightly Release Version
2014-11-28 2015-04-07 Firefox 37
2015-01-12 2015-05-19 Firefox 38
2015-02-23 2015-06-30 Firefox 39
2015-03-30 2015-08-11 Firefox 40
2015-05-11 2015-09-22 Firefox 41
2015-06-29 2015-11-03 Firefox 42
2015-08-10 2015-12-15 Firefox 43
  • current ship plan:
    • e10s in Aurora 40
    • e10s in Beta 41
    • e10s in Release 42
    • (FYI: Firefox 43 is last release of 2015)

Meeting Notes

For latest meeting notes, see the Meeting Notes Etherpad.

Create a new weekly agenda from the template:

2015

Electrolysis/Meetings/2015-01-08Electrolysis/Meetings/2015-01-15Electrolysis/Meetings/2015-04-09

2014

Electrolysis/Meetings/2014-07-03Electrolysis/Meetings/2014-07-10Electrolysis/Meetings/2014-07-17
Electrolysis/Meetings/2014-07-24Electrolysis/Meetings/2014-07-31Electrolysis/Meetings/2014-08-07
Electrolysis/Meetings/2014-08-14Electrolysis/Meetings/2014-08-21Electrolysis/Meetings/2014-08-28
Electrolysis/Meetings/2014-09-04Electrolysis/Meetings/2014-09-11Electrolysis/Meetings/2014-09-18
Electrolysis/Meetings/2014-09-25Electrolysis/Meetings/2014-10-02Electrolysis/Meetings/2014-10-09
Electrolysis/Meetings/2014-10-16Electrolysis/Meetings/2014-10-23Electrolysis/Meetings/2014-11-06
Electrolysis/Meetings/2014-11-13Electrolysis/Meetings/2014-11-20Electrolysis/Meetings/2014-12-11
Electrolysis/Meetings/2014-12-18

2013

Electrolysis/Meetings/2013-05-28Electrolysis/Meetings/2013-05-29Electrolysis/Meetings/2013-06-04
Electrolysis/Meetings/2013-06-18Electrolysis/Meetings/2013-06-25Electrolysis/Meetings/2013-07-02
Electrolysis/Meetings/2013-07-09Electrolysis/Meetings/2013-07-16Electrolysis/Meetings/2013-10-08
Electrolysis/Meetings/2013-10-17Electrolysis/Meetings/2013-10-24Electrolysis/Meetings/2013-10-31
Electrolysis/Meetings/2013-11-07Electrolysis/Meetings/2013-11-14

2012

2011

Electrolysis/Meetings/2011-10-13

2010

Electrolysis/Meetings/2010-01-13Electrolysis/Meetings/2010-01-20Electrolysis/Meetings/2010-01-27
Electrolysis/Meetings/2010-02-03Electrolysis/Meetings/2010-02-10Electrolysis/Meetings/2010-02-17
Electrolysis/Meetings/2010-03-03Electrolysis/Meetings/2010-03-10Electrolysis/Meetings/2010-03-17

2009

Electrolysis/Meetings/2009-05-15Electrolysis/Meetings/2009-08-14-pluginsElectrolysis/Meetings/2009-08-26-macplugins
Electrolysis/Meetings/2009-08-28-testingElectrolysis/Meetings/2009-09-21-session historyElectrolysis/Meetings/2009-09-21-validation document navigation