Electrolysis
Contents
- 1 Thanks
- 2 Overview
- 3 Testing
- 4 Schedule and Status
- 5 2017
- 6 2016
- 7 2015
- 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)
Thanks
(5/1/2018) The Electrolysis Project is officially complete. Mozilla continues to work on scaling the Gecko process model through newer projects and work, including our process-per-origin initiative Project Fission. Props and thanks to our entire community for helping us ship this body work. We could not have successfully shipped this without your help!
Overview
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 ('Gecko Media Plugin', a.k.a. 'GMP')
- Web content ('content processes')
- [Fx53] GPU Process (Windows Only) bug 1264543
- [Fx54] file://URL access process bug 1147911
- [Fx55] Web Extensions bug 1190679
- [Fx55, Fx56] ServiceWorker and in the future SharedWorker threads bug 1231208
In the future Electrolysis child processes may be used to handle other browser tasks including audio, networking (bug 1322426), PDFium and Pepper Flash (bug 558184).
In Mozilla documentation "Electrolysis" is often shorted as "e10s".
Testing
Nightly/Aurora
If you're on Nightly e10s-multi is enabled by default with 4 content processes. Soon, Firefox 54 Aurora, will also have e10s-multi (4 processes) 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:
Firefox Beta
If you're currently using Firefox Beta you might be testing e10s already, check about:support and look for a number higher than 0 in the "Multiprocess Windows" entry. If you would like to opt-in to help us test open about:config and toggle browser.tabs.remote.autostart to true. On your next restart, e10s should be active.
Firefox Release
If you're using Firefox 48 or later, you might be using e10s already. Check about:support and look for a number higher than 0 in the "Multiprocess Windows" entry. If you would like to opt-in, open about:config and toggle browser.tabs.remote.autostart to true. On your next restart, e10s should be active.
Force Enable
If you've tried enabling e10s following the instruction above, but your about:support indicates that e10s is disabled (e.g., accessibility, add-ons can trigger this), you can force e10s on for testing purposes. Within about:config create a new boolean pref named browser.tabs.remote.force-enable and set it to true. This is not encouraged, use it at your own risk!
Schedule and Status
View the Multiple Content Process wiki page for more information about release milestones, release criteria, and a gradual roll-out schedule of e10s-multi.
Schedule
The following schedule covers rollout of the single content process feature to release builds up to Firefox 54. Multi process is covered starting in Nightly 54.
What percent of the population actually has e10s enabled?
Date | Trunk | Aurora | Beta | Release |
---|---|---|---|---|
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 [1] | 43 off |
2016-01-25 | 47 default | 46 default | 45 A/B [1] | 44 off |
2016-03-07 | 48 default | 47 default | 46 A/B [1] | 45 off |
2016-04-25 | 49 default | 48 default | 47 50% [1][2] | 46 off |
2016-06-06 | 50 default | 49 default | 48 [1][2] | 47 off |
2016-08-01 | 51 default[6] | 50 default | 49 [2][4] | 48 ON [3] |
2016-09-19 | 52 default [7][8] | 51 default[6] | 50 default [4] | 49 ON [5] |
2016-11-07 | 53 default [8] | 52 default [7] | 51 default [6] | 50 ON [5] |
2017-01-24 | 54 default | 53 default | 52 default [7] | 51 ON |
2017-03-07 | 55 default[9] | 54 default[8] | 53 default | 52 ON |
2017-04-18 | 55 default | n/a | 54 default | 53 ON |
2017-06-13 | 56 default | n/a | 55 default | 54 ON [10] |
[1] qualifying users: users that do not use addons and have not activated accessibility support over 30 days.
[2] full run across the entire beta period
[3] 1% of qualifying users with ramp up to 100% during the release cycle
[4] White listed Add-Ons + Add-Ons created as a WebExtension testing on beta, full cycle
[5] White listed Add-Ons + Add-Ons created as a WebExtension shipping on Release
[6] A11y+ Windows 8 touch screen support enabled, not riding trains
[7] Windows 8 riding trains
[8] E10s Multi Enabled, Not riding trains
[9] A11y Enabled for Windows
[10] E10s multi enabled, riding trains
[*] indicates the goal for the release has yet to be planned
Add-ons Schedule
The following schedule rollout of Electrolysis as it releases specifically to add-ons. Each release of Firefox will add more and more add-ons to the cohort of users who get multi process Firefox.
Users with add-ons not in yet the cohort to get multi-process, will continue to run Firefox (as before) without e10s enabled. The Road to 57 blog post has details and there is a visual of the schedule here.
Version | Cohort |
---|---|
49 | limited experimental set of Extensions and all WebExtensions |
50 | all Extensions marked "multiprocessCompatible" and all WebExtensions [1] |
51 | Moving back to Fx 50 release criteria. All Extensions and all WebExtensions [1], [2], [3], plus 770 add-ons testing in Beta that were not marked either way (initial expansion) had been included. |
52 | all Extensions marked "multiprocessCompatible" and all WebExtensions [1] |
53 | all Extensions marked "multiprocessCompatible" and all WebExtensions [1]. |
54 | all Extensions marked "multiprocessCompatible" and all WebExtensions [1]. |
55 | all Extensions marked "multiprocessCompatible" and all WebExtensions [1]. |
56 | all Extensions marked "multiprocessCompatible" and all WebExtensions [1]. |
57 | ONLY WebExtensions supported [4] |
[1] Before each stage moves from beta to release, there are release criteria (crashes, jank etc) that need to be met. We will delay moving to Release if issues are identified in Beta.
[2] Initially Shims will be available that will help certain add-ons with compatibility. These are a temporary measure due to potential limitations that could impact user experience.
[3] With the exception of Extensions marked explicitly as NOT multiprocessCompatible.
[4] More details in blog post or broader add-on timing schedule see for details on what will be allowed
For information on add-on support rollout see the Add-on/e10s Project Wiki.
Staged Roll-Out Plan
To read a summary of the Roll-Out plan, see Asa's blog.
Windows XP
Due to stability issues Windows XP is currently not leveraging e10s on release channel. XP and Vista will move out to Extended Support Release (ESR) 45 when 45 merges to release (bug 1303827). As such there are no plans to support e10s for XP/Vista in the future.
Weekly Status Reports
2017
2016
- Jan 15
- Jan 29
- Feb 12
- March 29
- April 8
- April 22
- May 6
- May 20
- July 1
- July 8
- July 22
- July 29
- Aug 05
- Aug 12
- Aug 26
- Sept 2
- Sept 9
- Sept 23
- 3 Oct 3
- Oct 11
- Oct 24
- Nov 3
- Dec 1
- Dec 23
2015
Experiments
There's a dedicated page for the experiments: E10s Experiments
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.
For developers interested in helping out, MDN has a good introduction to e10s, useful for both Firefox and add-on developers.
Security Sandboxing
See the Security Sandbox wiki page for more information and status.
Accessibility Support
See the e10s Accessibility wiki page for support implementation detail.
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 https://arewewebextensionsyet.com/.
For more information about Add-on issue mitigation and rollout of e10s to add-on users, see the Add-on Project Wiki page.
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
- 2015-12-15 - bug 1229104 - Beta testing
- 2016-08-01 - Enabled for non-add-on users in Release 48 / Beta testing of add-on users in 49
Communication
Weekly Cross Functional Covering current e10s status, multi-e10s, add-ons rollout, and sandboxing. |
Fridays @ 10am Pacific
|
Weekly Team Meeting (No longer active) |
Weekly Team Meeting Thursday at 9:00am PT
|
Weekly Addons Design Meeting (No longer active) |
|
IRC |
|
Newsgroup/Mailing List |
People
Engineering Management |
|
Product Management |
|
Project Management |
|
QA |
|
Development Team |
|
Meeting Notes
Reference
- 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
Bug Lists
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
Beta blockers
- M7 bugs: http://is.gd/HQGwVi
- M8 bugs: http://is.gd/Au5e7x
GA Blockers
- 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
Summary Lists
- M7–M8 bugs: http://is.gd/YPXLZT
- M4–M8 bugs: http://is.gd/16YH4l
Devtools Lists
- e10s-m7 and e10s-m8 bugs: http://is.gd/zrzaRw
- e10s-m4 through e10s-m8 bugs: http://is.gd/Ra53os
Performance bugs (e10s-perf)
- Complete e10s-perf List: http://is.gd/izIbfl
- P1: http://is.gd/N4Kska
- P2: http://is.gd/tricyk
Future
- 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
Triage Lists
- e10s Triage List: https://is.gd/S0iUXW
- 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
Misc. Trackers
- Accessibility tracker: https://bugzilla.mozilla.org/show_bug.cgi?id=1029143
- Devtools bug tracking: https://etherpad.mozilla.org/devtools-e10s-statuses