Electrolysis: Difference between revisions

closing this out.
(closing this out.)
 
(50 intermediate revisions by 9 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}}
* [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 graphical composition, and addon hosting for addons that leverage the new [[WebExtensions]] apis.
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".
In Mozilla documentation "Electrolysis" is often shorted as "e10s".
Line 17: 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 34: Line 42:


== Schedule and Status ==
== Schedule and Status ==
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.


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 [https://wiki.mozilla.org/Electrolysis/Multiple_content_processes Multiple Content Process] wiki page for more information.
=== Schedule ===


=== 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.


The following schedule covers rollout of the single content process feature to release builds.
[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% || 31%
| 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] || 45% ||
| 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]|| 57% ||  
|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]
|}
|}


Line 80: 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


=== Add-ons Schedule ===
=== Add-ons Schedule ===
Line 87: Line 107:
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.   
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.
Users with add-ons not in yet the cohort to get multi-process, will continue to run Firefox (as before) without e10s enabled.  The [https://blog.mozilla.org/addons/2017/02/16/the-road-to-firefox-57-compatibility-milestones/ Road to 57 blog post] has details and there is a [https://wiki.mozilla.org/Firefox/AddOns/Status/current#Schedule visual of the schedule here].
   
   
{| class="wikitable"
{| class="wikitable"
Line 95: Line 115:
| 49 || limited experimental set of Extensions and all WebExtensions  
| 49 || limited experimental set of Extensions and all WebExtensions  
|-
|-
| 50 || all Extensions marked "multiProcessCompatible" and all WebExtensions [1]
| 50 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1]
|-
|-
| 51 || all Extensions and all WebExtensions [1], [2], [3]
| 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 || as in 51 [2], [3]
| 52 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1]
|-
|-
| 53 || as in 52 [2], [3]
| 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]
|}
|}


Line 108: Line 136:
[2] Initially [https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Multiprocess_Firefox_and_the_SDK#Testing_your_add-on Shims] will be available that will help certain add-ons with compatibility.  These are a temporary measure due to potential [https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox/Cross_Process_Object_Wrappers#Limitations_of_CPOWs limitations] that could impact user experience.
[2] Initially [https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Multiprocess_Firefox_and_the_SDK#Testing_your_add-on Shims] will be available that will help certain add-ons with compatibility.  These are a temporary measure due to potential [https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox/Cross_Process_Object_Wrappers#Limitations_of_CPOWs limitations] that could impact user experience.


[3] With the exception of Extensions marked explicitly as NOT multiProcessCompatible.
[3] With the exception of Extensions marked explicitly as NOT multiprocessCompatible.


For information on add-on support rollout see the [https://wiki.mozilla.org/Add-ons Add-on Project Wiki].
[4] [https://blog.mozilla.org/addons/2017/02/16/the-road-to-firefox-57-compatibility-milestones/ More details in blog post] or [https://wiki.mozilla.org/Firefox/AddOns/Status/current#Schedule broader add-on timing schedule] see [https://wiki.mozilla.org/Add-ons/Firefox57 for details on what will be allowed]
 
For information on add-on support rollout see the [https://wiki.mozilla.org/Firefox/AddOns/Status/current#Add-ons.2Fe10s_Program_Status_Report Add-on/e10s Project Wiki].


===Staged Roll-Out Plan===
===Staged Roll-Out Plan===
Line 120: Line 150:
=== Weekly Status Reports ===
=== Weekly Status Reports ===


* [https://wiki.mozilla.org/E10s/Status/Nov13 Nov 13]<br>
==2017==
* [https://wiki.mozilla.org/E10s/Status/Nov20 Nov 20]<br>
*[https://wiki.mozilla.org/E10s/Status/Feb17 Feb 17]<br>
* [https://wiki.mozilla.org/E10s/Status/Nov27 Nov 27]<br>
*[https://wiki.mozilla.org/E10s/Status/March20 March 20]<br>
* [https://wiki.mozilla.org/E10s/Status/Dec4 Dec 4]<br>
*[https://wiki.mozilla.org/E10s/Status/April3 April 3]<br>
* [https://wiki.mozilla.org/E10s/Status/Dec22 Dec 22]<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==
* [https://wiki.mozilla.org/E10s/Status/Jan15 Jan 15]<br>
* [https://wiki.mozilla.org/E10s/Status/Jan15 Jan 15]<br>
* [https://wiki.mozilla.org/E10s/Status/Jan29 Jan 29]<br>
* [https://wiki.mozilla.org/E10s/Status/Jan29 Jan 29]<br>
* [https://wiki.mozilla.org/E10s/Status/Feb12 Feb 12]<br>
* [https://wiki.mozilla.org/E10s/Status/Feb12 Feb 12]<br>
* [https://groups.google.com/a/mozilla.com/forum/?hl=en#!topic/e10s-stakeholders/og10V58T2fU March 4]<br>
* [https://groups.google.com/a/mozilla.com/forum/?hl=en#!topic/e10s-stakeholders/AFxTILtrzeQ March 11]<br>
* [https://wiki.mozilla.org/E10s/Status/March29 March 29]<br>
* [https://wiki.mozilla.org/E10s/Status/March29 March 29]<br>
* [https://wiki.mozilla.org/E10s/Status/April8 April 8]<br>
* [https://wiki.mozilla.org/E10s/Status/April8 April 8]<br>
Line 147: Line 184:
* [https://wiki.mozilla.org/E10s/Status/Oct 3 Oct 3]<br>
* [https://wiki.mozilla.org/E10s/Status/Oct 3 Oct 3]<br>
* [https://wiki.mozilla.org/E10s/Status/Oct11 Oct 11]<br>
* [https://wiki.mozilla.org/E10s/Status/Oct11 Oct 11]<br>
* [https://wiki.mozilla.org/E10s/Status/Oct24 Oct 24]<br>
* [https://wiki.mozilla.org/E10s/Status/Nov3 Nov 3]<br>
* [https://wiki.mozilla.org/E10s/Status/Dec1 Dec 1]<br>
* [https://wiki.mozilla.org/E10s/Status/Dec23 Dec 23]<br>
==2015==
* [https://wiki.mozilla.org/E10s/Status/Nov13 Nov 13]<br>
* [https://wiki.mozilla.org/E10s/Status/Nov20 Nov 20]<br>
* [https://wiki.mozilla.org/E10s/Status/Nov27 Nov 27]<br>
* [https://wiki.mozilla.org/E10s/Status/Dec4 Dec 4]<br>
* [https://wiki.mozilla.org/E10s/Status/Dec22 Dec 22]<br>


== Experiments ==
== Experiments ==
Line 166: 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,982

edits