Electrolysis: Difference between revisions

closing this out.
(closing this out.)
 
(26 intermediate revisions by 7 users not shown)
Line 1: Line 1:
== 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 [https://wiki.mozilla.org/Project_Fission 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 ==
== Overview ==


Line 6: Line 10:


* Legacy NPAPI plugin hosting
* Legacy NPAPI plugin hosting
* Media playback
* Media playback ('Gecko Media Plugin', a.k.a. 'GMP')
* Web content ('content processes')
* Web content ('content processes')
* [Fx53] GPU Process (Windows Only) {{bug|1264543}}  
* [Fx53] GPU Process (Windows Only) {{bug|1264543}}  
Line 13: Line 17:
* [Fx55, Fx56] ServiceWorker and in the future SharedWorker threads {{bug|1231208}}
* [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 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".
In Mozilla documentation "Electrolysis" is often shorted as "e10s".
Line 22: Line 25:
=== Nightly/Aurora ===
=== 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:
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:


[[File:E10s-toggle-in-preferences.png|324x150px|frameless|Nightly > Preferences > General > Enable multi-process]]
[[File:E10s-toggle-in-preferences.png|324x150px|frameless|Nightly > Preferences > General > Enable multi-process]]
Line 39: Line 42:


== Schedule and Status ==
== Schedule and Status ==
As of Firefox 54+ (early 2017), our Multi-Content process model is currently being tested on Nightly (2 processes). Four content processes will be enabled on 54 Aurora and if stable enough, we will begin to roll it out in Firefox 54 Beta experiments. The schedule below covers the rollout to release for both e10s single and e10s-multi. View the [https://wiki.mozilla.org/Electrolysis/Multiple_content_processes Multiple Content Process] wiki page for more information about release milestones, release criteria, and a gradual roll-out schedule.
View the [https://wiki.mozilla.org/Electrolysis/Multiple_content_processes Multiple Content Process] wiki page for more information about release milestones, release criteria, and a gradual roll-out schedule of e10s-multi.


=== Schedule ===
=== Schedule ===


The following schedule covers rollout of the single content process feature to release builds.  
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.
 
[https://sql.telemetry.mozilla.org/queries/972#1659 What percent of the population actually has e10s enabled? ]
   
   
{| class="wikitable"
{| class="wikitable"
|-
|-
! Date !! Trunk !! Aurora !! Beta !! Release !! Target % !! Actual %
! Date !! Trunk !! Aurora !! Beta !! Release  
|-
|-
| 2015-04-30 || 40 default (working on m5) || 39 off || 38 off || 37 off || - || -
| 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-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-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-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-09-21 || 44 default || 43 default || 42 off || 41 off  
|-
|-
| 2015-11-02 || 45 default || 44 default || 43 off || 42 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 || - || -
| 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-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-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-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-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] || 41% || 30-33%
| 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] || + 3-4% || 35%
| 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]|| + 6-12%||
|2016-11-07 || 53 default [8] || 52 default [7]|| 51 default [6] || 50 ON [5]
|-  
|-  
|2017-01-24 || 54 default || 53 default [8] || 52 default [7] || 51 ON [*]|| * ||  
|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-03-07 || 55 default || 54 default || 53 default || 52 ON [*]|| *||
|2017-04-18 || 55 default || n/a || 54 default || 53 ON  
|-
|-
|2017-04-18 || 56 default || 55 default || 54 default || 53 ON [*] || * ||
|2017-06-13 || 56 default || n/a || 55 default || 54 ON [10]  
|}
|}


Line 90: Line 97:
[5] White listed Add-Ons + Add-Ons created as a WebExtension shipping on Release<br/>
[5] White listed Add-Ons + Add-Ons created as a WebExtension shipping on Release<br/>
[6] A11y+ Windows 8 touch screen support enabled, not riding trains<br/>
[6] A11y+ Windows 8 touch screen support enabled, not riding trains<br/>
[7] A11y + Windows 8 riding trains<br/>
[7] Windows 8 riding trains<br/>
[8] E10s Multi Enabled, Not riding trains<br/>
[8] E10s Multi Enabled, Not riding trains<br/>
[9] A11y Enabled for Windows <br/>
[10] E10s multi enabled, riding trains<br/>
[*] indicates the goal for the release has yet to be planned
[*] indicates the goal for the release has yet to be planned


Line 112: Line 121:
| 52 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1]
| 52 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1]
|-
|-
| 53 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1]. Beta testing on add-ons that don't use  compatibility shims (~400 based on telemetry)
| 53 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1].  
|-
|-
| 54 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1].  Possibly add-ons that don't use compatibility shims.
| 54 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1].   
|-
|-
| 55 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1].  Possibly add-ons that don't use compatibility shims.
| 55 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1].   
|-
|-
| 56 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1].  Possibly add-ons that don't use compatibility shims.
| 56 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1].  
|-
|-
| 57 || ONLY webextensions supported [4]
| 57 || ONLY WebExtensions supported [4]
|}
|}


Line 142: Line 151:


==2017==
==2017==
* [https://wiki.mozilla.org/E10s/Status/Feb17 Feb 17]<br>
*[https://wiki.mozilla.org/E10s/Status/Feb17 Feb 17]<br>
* [https://wiki/mozilla.org/E10s/Status/March17 March 17]<br>
*[https://wiki.mozilla.org/E10s/Status/March20 March 20]<br>
*[https://wiki.mozilla.org/E10s/Status/April3 April 3]<br>
*[https://wiki.mozilla.org/E10s/Status/April10 April 10]<br>
*[https://wiki.mozilla.org/E10s/Status/May5 May 5]<br>
*[https://wiki.mozilla.org/E10s/Status/May9 May 9]<br>
*[https://wiki.mozilla.org/E10s/Status/May16 May 16]<br>
*[https://wiki.mozilla.org/E10s/Status/May26 May 26]<br>
*[https://wiki.mozilla.org/E10s/Status/June2 June 2]<br>
*[https://wiki.mozilla.org/E10s/Status/June16 June 16]<br>
*[https://wiki.mozilla.org/E10s/Status/July21 July 21]<br>


==2016==
==2016==
Line 198: Line 216:
== Add-ons Compatibility ==
== Add-ons Compatibility ==


Add-on authors should refer to the MDN [https://developer.mozilla.org/en-US/Add-ons/Working_with_multiprocess_Firefox Firefox Add-on Migration Guide] for porting existing add-ons to e10s. For general design information see the [https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox Multiprocess Firefox] MDN documentation. Add-on testing compatibility is currently available at http://arewee10syet.com.
Add-on authors should refer to the MDN [https://developer.mozilla.org/en-US/Add-ons/Working_with_multiprocess_Firefox Firefox Add-on Migration Guide] for porting existing add-ons to e10s. For general design information see the [https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox 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 [https://wiki.mozilla.org/Add-ons Add-on Project Wiki] page.
For more information about Add-on issue mitigation and rollout of e10s to add-on users, see the [https://wiki.mozilla.org/Add-ons Add-on Project Wiki] page.
Confirmed users
1,983

edits