Confirmed users
1,094
edits
Sescalante (talk | contribs) |
Sescalante (talk | contribs) (→Schedule: udpare) |
||
(31 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=<big>'''Add-ons/e10s Program Status Report'''</big>= | =<big>'''Add-ons/e10s Program Status Report'''</big>= | ||
== Exec Summary/Hot Topics - | == Exec Summary/Hot Topics - Feb 14th == | ||
<p></p> | |||
<p></p>''' | '''53''' | ||
* | *The goal in 53 is to allow e10s to expand to all users, unless they have add-ons marked specifically MPC=False (not multiprocess compatible) | ||
* | '''52''' | ||
*Beta has the same criteria as 51. Ensuring that the targeting add-on accurately keeps e10s from users with add-ons marked MPC=False | |||
'''51''' | '''51''' | ||
*Beta 51 | *Release 51 expanded to several hundred add-ons that were not marked (either MPC=True or MPC=False). These add-ons were in Beta and did not cause issues with Firefox performance or stability (functionality could not be tested, but if reported the add-ons were removed from sample). These are in addition Release 50 criteria of MPC=True and webextensions. | ||
**In 49 and 50 the qualification criteria limited the number of users activated at once. Beta 51 Release expansion would be more users than we want to activate at once. If the Beta goes well, Release expansion criteria will be Release 50 requirements (MPC=True and webextensions) and a list of all add-ons that hit a threshold of use in Beta 51 (threshold TBD). | *Beta 51 expanded [https://bugzilla.mozilla.org/show_bug.cgi?id=1314429 e10s to all users with add-ons unless they are specifically marked MPC=False] or specifically excluded (due to issues found) | ||
**Goal: See if "shims" impacts performance/stability significantly in Beta. | **In 49 and 50 the qualification criteria limited the number of users activated at once. | ||
**Beta 51 Release expansion would be more users than we want to activate at once. If the Beta goes well, Release expansion criteria will be Release 50 requirements (MPC=True and webextensions) and a list of all add-ons that hit a threshold of use in Beta 51 (threshold TBD). | |||
**Beta Goal: See if "shims" impacts performance/stability significantly in Beta. | |||
**The first 5 Betas will be a Baseline - using the same criteria as Release 50 | **The first 5 Betas will be a Baseline - using the same criteria as Release 50 | ||
**The expanded addons-e10s experiment will be turned on in Beta 6 (~Dec 10) until Jan 13th | **The expanded addons-e10s experiment will be turned on in Beta 6 (~Dec 10) until Jan 13th | ||
**We need the Baseline to correlate issues to specific add-ons if needed, using direct profile comparison. | **We need the Baseline to correlate issues to specific add-ons if needed, using direct profile comparison. | ||
* [https://sql.telemetry.mozilla.org/dashboard/stability-metrics-for-e10s-add-ons-experiment-release-49-50-51- Release stability metrics] continue to have no significant difference between stability for e10s without add-ons and e10s with add-ons. | |||
**SDK Performance fixes were excepted late into Beta 50 cycle - delaying 50 Release to Nov 15, 2016. Anecdotal evidence showed noticeable improvements (patches landed in Nightly [https://bugzilla.mozilla.org/show_bug.cgi?id=1309351 Oct 17] & [https://bugzilla.mozilla.org/show_bug.cgi?id=1309350 Oct 24)] and telemetry showed fewer hangs and shorter duration. | |||
== | == Release 51 Details == | ||
[[File:Green-sm.jpg|frameless|15px]] On track, issues well managed [[File:Yellow-sm.jpg|frameless|15px]] Some risks, unknowns without clear mitigations [[File:Red-sm.jpg|frameless|15px]] Blocked on deliverables, needs decision, escalation required | [[File:Green-sm.jpg|frameless|15px]] On track, issues well managed [[File:Yellow-sm.jpg|frameless|15px]] Some risks, unknowns without clear mitigations [[File:Red-sm.jpg|frameless|15px]] Blocked on deliverables, needs decision, escalation required | ||
Line 29: | Line 30: | ||
|- | |- | ||
| | |Add-on/e10s Criteria | ||
|<!-- For Red/Yellow/Green Status un-comment for the color you are reporting --> | |<!-- For Red/Yellow/Green Status un-comment for the color you are reporting --> | ||
<!--[[File:Red-sm.jpg|frameless|25px]]<br>--> | <!--[[File:Red-sm.jpg|frameless|25px]]<br>--> | ||
<!-- [[File:Yellow-sm.jpg|frameless|25px]]<br>--> | <!-- [[File:Yellow-sm.jpg|frameless|25px]]<br>--> | ||
[[File:Green-sm.jpg|frameless|25px]]<br> | [[File:Green-sm.jpg|frameless|25px]]<br> | ||
|[https://bugzilla.mozilla.org/show_bug.cgi?id=1314429 | |[https://bugzilla.mozilla.org/show_bug.cgi?id=1314429 Webextension add-ons and those marked MPC=True continue to get e10s. Additionally expanded e10s to 770 add-ons that were not marked (either MPC=True or MPC=False)]. The add-ons were selected based on having over 50 beta users, that did not show impact to performance or stability. This is an intermediary step for throttle-ing the numbers of users added to e10s in one release. | ||
| | | | ||
| | | | ||
|- | |- | ||
|} | |} | ||
== Release 50 Details == | == Release 50 Details == | ||
[[File:Green-sm.jpg|frameless|15px]] On track, issues well managed [[File:Yellow-sm.jpg|frameless|15px]] Some risks, unknowns without clear mitigations [[File:Red-sm.jpg|frameless|15px]] Blocked on deliverables, needs decision, escalation required | [[File:Green-sm.jpg|frameless|15px]] On track, issues well managed [[File:Yellow-sm.jpg|frameless|15px]] Some risks, unknowns without clear mitigations [[File:Red-sm.jpg|frameless|15px]] Blocked on deliverables, needs decision, escalation required | ||
Line 71: | Line 63: | ||
|- | |- | ||
|} | |} | ||
== Projects to ease the transition == | == Projects to ease the transition == | ||
Line 246: | Line 175: | ||
|} | |} | ||
== Schedule == | |||
The following schedule covers steps in the transition to webextensions by November. There is a [https://blog.mozilla.org/addons/2017/02/16/the-road-to-firefox-57-compatibility-milestones/ blog post with the detailed plan], this is the visual. | |||
{| class="wikitable" | |||
|- | |||
! Date !! Nightly !! Aurora !! Beta !! Release !! Target % !! Submission Criteria | |||
|- | |||
|2017-01-24 || Fx 54: Sandboxing and multi content processes [A] || 53 default|| Fx 52: All but MPC=False|| Fx 51: everything from Fx50 and ~750 add-ons not marked MPC=True [B]. || 22 || | |||
|- | |||
|2017-03-07 || Fx 55: Disabling webextensions and MPC=True add-ons. There is a pref to work-around as needed. Motivation is limiting factors impacting performance metrics as speed changes are landed. ||Fx 54: Sandboxing and multi content processes [A]. Multiprocess won't ride to Release.||Fx 53: Look at extensions that don't use compatibility shims (not marked webextensions or MPC=True|| Fx 52: All WebExtensions and MPC=True get e10s|| 14|| | |||
|- | |||
|2017-04-18 || Fx 56 || 55 default ||Fx 54: Sandboxing and multi content processes [A].||Fx 53: All WebExtensions and MPC=True get e10s||15 || Submissions: Stop accepting new Legacy [D] add-ons (still accepting Legacy updates). New Webextensions only. | |||
|- | |||
|2017-06-12 ||Fx 57: Supporting only Webextension. Removing compatibility shims [E]. Stop running Legacy add-ons [D][C]|| 56 default || 55 default ||Fx 54: Sandboxing [A]. All WebExtensions and MPC=True get e10s || 20 || | |||
|- | |||
|2017-08-07 || Fx 58 ||Fx 57: Supporting only Webextension. Removing compatibility shims [E]. Stop running Legacy add-ons [D][C]||Fx 56 || Fx 55: Multi content processes, potentially throttled roll-out [A]. All WebExtensions and MPC=True get e10s || 22 || | |||
|- | |||
|2017-10-02|| Fx 59 || 58 default ||Fx 57: Supporting only Webextension. Removing compatibility shims [E]. Stop running Legacy add-ons [D][C]|| 56: All WebExtensions and MPC=True get e10s || 25 || | |||
|- | |||
|2017-11-15|| Fx 60 || 59 default || 58 default ||Fx 57: Supporting only Webextension. Removing compatibility shims [E]. Stop running Legacy add-ons [D][C]||38 || Submissions: Only webextensions and updatese to webextensions for Firefox Release channel. | |||
|} | |||
*[A] [https://wiki.mozilla.org/Firefox/AddOns/Status/current#Sandboxing Sandboxing and Multicontent processes details] | |||
*[B] [https://wiki.mozilla.org/Firefox/AddOns/Status/current#Add-ons.2Fe10s_Program_Status_Report detailed write up on roll-out and Beta plans] | |||
*[C] [https://blog.mozilla.org/addons/2017/02/16/the-road-to-firefox-57-compatibility-milestones/ High level view of the next few months changes] | |||
*[D] [https://blog.mozilla.org/addons/2017/02/16/the-road-to-firefox-57-compatibility-milestones/ Definition of legacy (all non-webextensions)] | |||
*[E] [https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Multiprocess_Firefox_and_the_SDK#Testing_your_add-on Compatibility shims explanation] | |||
=== Sandboxing === | |||
Content security sandboxing in Firefox is a security measure that restricts operating system access malicious content can gain through security vulnerabilities. Add-ons which interact with the file system through [https://developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts content scripts] will be impacted by [https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox/Limitations_of_frame_scripts this feature]. Currently file system write restrictions are rolling out on various platforms in Firefox 50 and Firefox 52. File system read restrictions will start rolling out in Firefox 54. Add-on authors should familiarize themselves with [https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox/Limitations_of_frame_scripts areas of the file system that will be blocked by these features] as they roll out, and adjust their Add-on code to avoid any potential issues. | |||
This wiki has the exact details of how security.sandbox.content.level [https://wiki.mozilla.org/Sandbox/OS_X_Rule_Set#How_security.sandbox.content.level_Affects_File_Access affects file access]. We don’t expect add-on issues with sandboxing level “1” (write access). This has already begun rolling out in Firefox 50. It required e10s, or sandboxing will not be applied. | |||
The [https://wiki.mozilla.org/Security/Sandbox sandboxing] capability that could impact certain add-ons is read access, which starts riding the trains in Firefox 54. It will be implemented by OS. You can find the [https://wiki.mozilla.org/Security/Sandbox#Current_Status planned releases for OS and sandboxing level here]. | |||
There is a preference you can use to see if content sandboxing is enabled. In about:config, a Security.sandbox.content.level of “0” means that sandboxing is not enabled. Levels “1” or “2” control the [https://wiki.mozilla.org/Security/Sandbox#Content_Levels level of content sandboxing]. To troubleshoot if your add-on is experiencing issues with sandboxing (and what level of sandboxing), you can reset the number to “1” and/or “0” to see if the issue goes away. | |||
=== Multiplecontent Processes === | |||
A [https://wiki.mozilla.org/Electrolysis/Multiple_content_processes multiple content processes] model (e10s-multi) is starting to roll out in Nightly 55. It required e10s, or multi content processes will not be applied. It is not expected to go to release until mid-2017 and for the most part should not impact add-ons. | |||
<p></p> | |||
Possible [https://wiki.mozilla.org/Electrolysis/Multiple_content_processes#Add-ons add-ons] that could be impacted: | |||
*SDK based add-ons can come with a big memory overhead per process. If the SDK loader (especially [https://bugzilla.mozilla.org/show_bug.cgi?id=1308860#c0 node.js]) is slow, it will be slow multiple times now in each process. | |||
*With multi-content processes, JSM has to be loaded for every process. If JSM is loaded only once and expected to run globally, the add-on may break. Process script is the suggested way for observer registration instead of JSMs. | |||
*If the add-on assumes that they only have one content process, it could falsely expect that observer and category registration to run only once. Instead it will run once per content process. If the add-on then uses it for something else (ex: to try sending some important message to the parent side that the content side is active) the parent may get multiple messages and some of the messages may arrive before other content processes are ready. | |||
<p></p> | |||
There is a preference you can check to see if multiple content processes are enabled. In about:config, a dom.ipc.processCount of 1 means that multiple content processes are not enabled. Any number higher than 1 and the browser is using multiple processes. To troubleshoot if your add-on is experiencing issues from multiple content processes, you can reset the number to 1 to see if the issue goes away. | |||