Confirmed users
1,094
edits
Sescalante (talk | contribs) (→Risks & Issues: up) |
Sescalante (talk | contribs) (→Schedule: udpare) |
||
(47 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. | ||
*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) | |||
**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). | |||
**In 49 and 50 the | **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 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. | |||
** | * [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 | == 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 37: | 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:// | |[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 == | ||
[[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 109: | Line 53: | ||
|- | |- | ||
| | |50 Experiment Definition/selection | ||
|<!-- 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=1297755 Target continues to contain MPC:webextensions and all MPC:true]. Was 6.4% of Beta population qualifies (112,000 users) - estimated at 6-10% of Release. | ||
| | | | ||
| | |50 | ||
|- | |- | ||
|} | |} | ||
== Projects to ease the transition == | == Projects to ease the transition == | ||
Line 262: | 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. | |||
Line 270: | Line 227: | ||
=<big>'''Add-ons WebExtensions Status Report'''</big>= | =<big>'''Add-ons WebExtensions Status Report'''</big>= | ||
Here is the [https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK current list of how WebExtensions correlate to the JetPack SDK] and links to documentation. The idea is if something is developed for Chrome it will take no to minimal effort to move to Firefox. Microsoft Edge and Safari are also adopting this model. WebExtensions are being built multi-process (e10s) compliant. Whenever possible we are focusing on creating WebExtensions APIs first that also assist the most Firefox add-ons with upgrading to multi-process compatibility. | Here is the [https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK current list of how WebExtensions correlate to the JetPack SDK] and links to documentation. The idea is if something is developed for Chrome it will take no to minimal effort to move to Firefox. Microsoft Edge and Safari are also adopting this model. WebExtensions are being built multi-process (e10s) compliant. Whenever possible we are focusing on creating WebExtensions APIs first that also assist the most Firefox add-ons with upgrading to multi-process compatibility. | ||
== Exec Summary/Hot Topics - Nov | == Exec Summary/Hot Topics - Nov 30, 2016 == | ||
*WebExtensions has been the [http://bit.ly/2e7dp8j most popular platform for new add-ons since July] | *WebExtensions has been the [http://bit.ly/2e7dp8j most popular platform for new add-ons since July] | ||
*[https://blog.mozilla.org/addons/2016/11/23/add-ons-in-2017/ Add-on plans for 2017 blog]. There will be many more going into the details for different scenarios. | |||
*Communication coming end of November for 2017 plans and updates around add-on development platform | *Communication coming end of November for 2017 plans and updates around add-on development platform | ||
*Adoption: | *Adoption: | ||
Line 333: | Line 291: | ||
[[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>--> | ||
| align="left"|Fx | | align="left"|Fx 54 | ||
|- | |- | ||
| align="left"| DevTools API | | align="left"| DevTools API | ||
Line 347: | Line 305: | ||
| align="left"| Some Chrome APIs have the concept of notifying/getting permission from users when certain access is required. In the Firefox webextension implementation - we need to provide that notification capability. | | align="left"| Some Chrome APIs have the concept of notifying/getting permission from users when certain access is required. In the Firefox webextension implementation - we need to provide that notification capability. | ||
More importantly that trying to copy Chrome is that it gives power and visibility to a user about what an add-on is doing. In legacy Firefox add-ons there really is no way to tell what an add-on does. This improves communication, empowerment and all that stuff we care about for the users. | More importantly that trying to copy Chrome is that it gives power and visibility to a user about what an add-on is doing. In legacy Firefox add-ons there really is no way to tell what an add-on does. This improves communication, empowerment and all that stuff we care about for the users. | ||
Starting with Install permissions and expanding to Upgrade and Update. | |||
| align="left"| [https://bugzilla.mozilla.org/show_bug.cgi?id=1197420 bug 1197420] | | align="left"| [https://bugzilla.mozilla.org/show_bug.cgi?id=1197420 bug 1197420] | ||
|<!-- 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 --> | ||
Line 372: | Line 330: | ||
<!--[[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> | ||
| align="left"| | | align="left"| Fx53 | ||
|- | |- | ||
Line 405: | Line 363: | ||
|- | |- | ||
| align="left"| | | align="left"| Out of Process | ||
| align="left"| | | align="left"| Besides setting the remote=true attribute on the browser elements used for extensions, we'll need to move the API-injected code to the other process (via content scripts or something). We'll also need platform support to ensure that all the <browser> elements for a given add-on run in the same process. | ||
| align="left"| | | align="left"| [https://bugzilla.mozilla.org/show_bug.cgi?id=1190679 bug 1190679] | ||
|<!-- 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> | ||
| align="left"| | | align="left"| Fx53 | ||
|- | |- | ||
| align="left"| | | align="left"| Comms | ||
| align="left"| | | align="left"| Establish and document process for WebExtensions APIs decisions and communicate broadly. Triage criteria for "design-decision-approved" APIs to encourage community contributions. One-on-one outreach to top 20-30 add-ons to help them migrate to WebExtensions. | ||
| align="left"| | | align="left"| | ||
|<!-- 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 --> | ||
Line 423: | Line 381: | ||
[[File:Green-sm.jpg|frameless|25px]]<br> | [[File:Green-sm.jpg|frameless|25px]]<br> | ||
| align="left"| | | align="left"| | ||
|} | |} | ||