Electrolysis: Difference between revisions
(Firefox Release) |
(Force Enable) |
||
Line 31: | Line 31: | ||
=== Force Enable === | === Force Enable === | ||
If you've tried enabling e10s but ''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! | 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! | ||
== What to Expect == | == What to Expect == |
Revision as of 22:39, 3 August 2016
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
- 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".
Testing
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:
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!
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 (e10s-multi) will roll out in a follow up release. View the Multiple Content Process wiki page for more information.
Schedule
The following schedule covers rollout of the single content process feature to release builds.
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 | 50 default | 49 [1][2] | 48 [3] |
2016-09-12 | 52 default | 51 default | 50 [1][2][4?] | 49 [5] |
[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 during the cycle
[4] white listed addons testing on beta
[5] 100% of qualifying users
Staged Roll-Out Plan
To read a summary of the Roll-Out plan, see Asa's blog. For information on add-on support rollout see the Add-on Project Wiki.
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
- July 1
- July 8
- July 22
- July 29
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.
- 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.
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 http://arewee10syet.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
Communication
Weekly Team Meeting | Weekly Team Meeting Thursday at 9:00am PT
|
Weekly Addons Strategy Meeting |
|
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