- 1 Overview
- 2 Enabling and Disabling Electrolysis on Nightly/Aurora
- 3 Enabling and Disabling Electrolysis on Beta
- 4 Enabling and Disabling Electrolysis on Release
- 5 Force-enabling e10s
- 6 What to Expect
- 7 Schedule and Status
- 8 Experiments
- 9 Contributing
- 10 Security Sandboxing
- 11 Accessibility Support
- 12 Add-ons Compatibility
- 13 Past Milestones
- 14 Communication
- 15 People
- 16 Meeting Notes
- 17 Reference
- 18 Bug Lists
- 18.1 Nightly enable blockers
- 18.2 Aurora uplift blockers (plus dev. tools)
- 18.3 Beta blockers
- 18.4 GA Blockers
- 18.5 Summary Lists
- 18.6 Devtools Lists
- 18.7 Performance bugs (e10s-perf)
- 18.8 Future
- 18.9 Triage Lists
- 18.10 Misc. Trackers
- 18.11 Uplift candidates: (M9 and P1 tracking+ bugs fixed in FF 48 but not 47)
Electrolysis functionality hosts, renders, or executes web related content in background child processes which communicate with the "parent" Firefox browser via various ipdl protocols. The two major advantages of this model are security and performance. Security improvements are accomplished through security sandboxing, performance improvements are born out of the fact that multiple processes better leverage available client computing power.
Electrolysis child processes are currently in use for the following tasks within Firefox:
- Legacy NPAPI plugin hosting
- Media playback
- Web content ('content processes')
In the future Electrolysis child processes may be used to handle other browser tasks including graphical composition, and addon hosting for addons that leverage the new WebExtensions apis.
In Mozilla documentation "Electrolysis" is often shorted as "e10s".
Enabling and Disabling Electrolysis on Nightly/Aurora
If you're on Nightly or Aurora, e10s is already enabled by default! A user facing checkbox is available for controlling Electrolysis functionality. Open Preferences and check the "Enable multi-process" checkbox and then restart your browser:
For release builds (Beta, Release, ESR) enabling Electrolysis is controlled through an internal preference.
Enabling and Disabling Electrolysis on Beta
If you're on beta, you might be using / have already used e10s for some periods of time as we're running experiments to evaluate its stabililty.
However, if you want to permanently opt-in, you can do so with a simple pref change. Just go to about:config and toggle browser.tabs.remote.autostart to true. On your next restart, e10s should be active. To verify that it is active, go to about:support and look for a number higher than 0 in "Multiprocess Windows".
Enabling and Disabling Electrolysis on Release
Multiprocess is not yet available on the release channel. Stay tuned! If you really want to test it we suggest you to use Beta and help us test it!
If you've tried to enable e10s, but you see information in about:support saying that it is disabled by some reason (e.g., Add-ons), you can create and set to true a pref called browser.tabs.remote.force-enable. That is not encouraged though, so use it at your own risk, and only if you know what you're doing.
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 and Status
A single content process model is currently being tested on Nightly, Aurora and Beta channels. See the schedule below for planned rollout to release. A multiple content process model will roll out in a follow up release. View the Multiple Content Process wiki page for more information.
The following schedule covers rollout of the single content process feature to release builds.
|2015-04-30||40 default (working on m5)||39 off||38 off||37 off|
|2015-05-11||41 default (working on m6)||40 prompt||39 off||38 off|
|2015-06-29||42 default (working on m7/m8)||41 prompt||40 off||39 off|
|2015-08-10||43 default (working on m8)||42 default||41 off||40 off|
|2015-09-21||44 default||43 default||42 off||41 off|
|2015-11-02||45 default||44 default||43 off||42 off|
|2015-12-14||46 default||45 default||44 A/B ||43 off|
|2016-01-25||47 default||46 default||45 A/B ||44 off|
|2016-03-07||48 default||47 default||46 A/B ||45 off|
|2016-04-25||49 default||48 default||47 50% ||46 off|
|2016-06-06||50 default||49 default||48 ||47 off|
|2016-08-01||51 default||50 default||49 ||48 |
|2016-09-12||52 default||51 default||50 [4?]||49 |
 qualifying users: users that do not use addons and have not activated accessibility support over 30 days.
 full run across the entire beta period
 1% of qualifying users with ramp up during the cycle
 white listed addons testing on beta
 100% of qualifying users
Weekly Status Reports
- Nov 13
- Nov 20
- Nov 27
- Dec 4
- Dec 22
- Jan 15
- Jan 29
- Feb 12
- March 4
- March 11
- March 29
- April 8
- April 22
- May 6
- May 20
There's a dedicated page for the experiments: E10s Experiments
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.
See the Security Sandbox wiki page for more information and status.
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 which is incompatible with current accessibility clients. As such the e10s and Accessibility Teams are working on a new approaches for accessibility clients.
Currently accessibility support is enabled for Linux. Windows support should be running in Nightly builds by the end of June with release support rolling out this fall. OSX support rollout is currently TBD.
OSX and Linux
- Sync chrome -> content calls for most common apis, with light weight caching to cut down on the heaviest api traffic.
- Gradual improvement using chrome side caching of DOM state, working toward a mostly asynchronous interface.
See the Windows e10s Accessibility wiki page for support implementation detail.
Add-on testing compatibility is currently available at http://arewee10syet.com.
- 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
- 2015-12-15 - bug 1229104 - Beta testing
|Weekly Team Meeting||Weekly Team Meeting Thursday at 9:00am PT|
|Weekly Addons Strategy Meeting|
- MDN: Working with multiprocess Firefox
- The message manager
- Cross-process object wrappers
- Archive of past content on this page
- Electrolysis platform notes
- Notes on the Chromium IPC library
- Addon Compatibility Test Results
- IDL comments about Message Manager
- Tim Taubert's "Firefox Electrolysis 101" blog post (2011)
- Tips for converting tests to be e10s compatible
- Performance optimization tips
- Download Beta, Developer, or Release
- Download Nightly
Nightly enable blockers
- M2 bugs: http://tinyurl.com/mjywvmb (one leftover bug, assigned m5+, 1047603)
- M3 bugs: http://tinyurl.com/n7jekh6 (all resolved + dependencies resolved)
Aurora uplift blockers (plus dev. tools)
- M4 bugs: http://is.gd/fi3ByM
- M5 bugs: http://is.gd/hNTLWk
- M6 bugs: http://is.gd/1Dw8gN
- M4–M6 bugs: http://is.gd/drPSBc
- M9 Actionable Bugs: http://is.gd/qufPe0
- M9 plus RC Meta Bugs: http://is.gd/tv81Zf
- M9 RC Metas: http://is.gd/hTHo9U
- RC Meta Children: http://is.gd/eKcXxH
Performance bugs (e10s-perf)
- tracking-e10s:+ P1: http://is.gd/ztBxgX (no tests or sdk bugs)
- tracking-e10s:+ P1: http://is.gd/syKhQ8 (everything)
- tracking-e10s:+ P2: http://is.gd/NnCvUQ
- tracking-e10s:+ P3: http://is.gd/PD3PI8
- tracking-e10s:+ P4: http://is.gd/K6dCIq
- tracking-e10s:later: http://is.gd/B1cfnm
- e10s Triage List: http://is.gd/sJWCv7
- e10s-perf Triage List: http://is.gd/5R5Leo
- e10s needinfo Triage List: http://is.gd/MoraEb
- tracking-e10s:? specific needinfo List: http://is.gd/vsPqdk
- Add-on triage List: http://is.gd/P2aqLC
- tracking-e10s:+ List: http://is.gd/ybrg68
- minus needinfos
- minus Summary containing 'intermittent', 'test', 'addon', 'add-on'
- minus Keywords containing 'meta', 'qawanted'
- minus bugs with a priority set
- not blocking bug apz-desktop, bug e10s-tests, bug e10s-perf, bug e10s-addons, bug e10s-gfx, bug e10s-sdk, bug e10sa11y2, bug e10s-ime, bug dte10s, bug e10s-social, bug e10s-multi, bug e10s-harness
- tracking-e10s:+ needinfos List: http://is.gd/YADITg
- RTL Blockers: http://is.gd/cKUiNa
- Accessibility tracker: https://bugzilla.mozilla.org/show_bug.cgi?id=1029143
- Devtools bug tracking: https://etherpad.mozilla.org/devtools-e10s-statuses