Electrolysis: Difference between revisions

closing this out.
(closing this out.)
 
(32 intermediate revisions by 8 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% || 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 || 54 default || 53 default || 52 ON [*]|| *||
|2017-03-07 || 55 default[9] || 54 default[8] || 53 default || 52 ON  
|-
|-
|2017-04-18 || 56 default || 55 default || 54 default || 53 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 86: 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 104: Line 117:
| 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], plus 770 add-ons testing in Beta that were not marked either way (initial expansion)
| 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 || All add-ons not specifically marked MPC=False [2], [3]
| 53 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1].
|-
|-
| 54 || All add-ons not specifically marked MPC=False [2], [3]
| 54 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1]
|-
|-
| 55 || All add-ons not specifically marked MPC=False [2], [3]
| 55 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1]
|-
|-
| 56 || All add-ons not specifically marked MPC=False [2], [3]
| 56 || all Extensions marked "multiprocessCompatible" and all WebExtensions [1].
|-
|-
| 57 || Only webextensions supported, add-ons fully e10s [4]
| 57 || ONLY WebExtensions supported [4]
|}
|}


Line 125: Line 138:
[3] With the exception of Extensions marked explicitly as NOT multiprocessCompatible.
[3] With the exception of Extensions marked explicitly as NOT multiprocessCompatible.


[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]
[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].
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].
Line 136: Line 149:


=== Weekly Status Reports ===
=== Weekly Status Reports ===
==2015==
 
* [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==
==2016==
* [https://wiki.mozilla.org/E10s/Status/Jan15 Jan 15]<br>
* [https://wiki.mozilla.org/E10s/Status/Jan15 Jan 15]<br>
Line 168: Line 189:
* [https://wiki.mozilla.org/E10s/Status/Dec23 Dec 23]<br>
* [https://wiki.mozilla.org/E10s/Status/Dec23 Dec 23]<br>


==2017==
==2015==
* [https://wiki.mozilla.org/E10s/Status/Feb17 Feb 17]<br>
* [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 189: 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