Confirmed users
587
edits
m (Created page with "{{draft}} == The current state of things == Originally the plan for this was someone uploads an add-on, AMO sends the add-on to Talos (build machines), the build machines insta...") |
|||
| Line 23: | Line 23: | ||
*** Operating System: '''No version'''. Options: Windows, OS X, Linux, Android | *** Operating System: '''No version'''. Options: Windows, OS X, Linux, Android | ||
*** Application: '''No version'''. Options: Firefox | *** Application: '''No version'''. Options: Firefox | ||
*** | *** Performance metric: Options: startup, memory, general | ||
*** Severity: Options: no impact, small impact, major impact | *** Severity: Options: no impact, small impact, major impact | ||
*** Notes: An optional field for any notes from the reviewer | *** Notes: An optional field for any notes from the reviewer | ||
* Hook up the performance warning div's on the details pages, adjusting the wording for the new severity levels | * Hook up the performance warning div's on the details pages, adjusting the wording for the new severity levels | ||
* Send the new performance data through the API: | * Send the new performance data through the API: | ||
** ' | |||
=== API === | |||
A <tt><warnings></tt> element would be added to the <tt><addon></tt> element, which contains <tt><performance></tt> elements to describe performance warnings. It would be present in: | |||
* Keyword search API (to display warnings when searching for addons to install) | |||
* GUID search API (to display warnings for installed addons, and in install confirmation dialogs) | |||
This also apples to non-hosted addons, although they would only be returned in a GUID search. All <tt><addon></tt> elements would indicate if the addon was hosted or not (same as the <tt><addon_compatibility></tt> elements do). If an non-hosted addon has no warnings, then the returned data would not include a <tt><addon></tt> element for that addon. If a hosted addon has no warnings, then the <warnings> element would not be included (as opposed to being included, but empty). | |||
Warnings for all versions of the addon need to be included, as the installed version may not be the latest version. Although, this is only a hard requirement for GUID search - keyword search can potentially only include data for the latest version. | |||
Based on the assumption that many warnings will apply to more than one OS, the <tt>os</tt> attribute of <tt><performance></tt> elements is a comma-separated list of OS names. If warnings are different for the different OSes, then multiple <tt><performance></tt> elements can be included, with different values for the <tt>os</tt> attribuite. The values need to match the strings used by <tt>nsIXULRuntime.OS</tt> - "Darwin" for OSX, "WINNT" for Windows, "Linux" for Linux, "Android" for Android. | |||
Each performance metric has a severity. Rather than use numeric values like usual (which has caused issues in the past when retroactively adding levels), the value would be a string. If the severity is "no impact", then that metric isn't included. | |||
<?xml version="1.0" encoding="utf-8" ?> | |||
<searchresults total_results="1"> | |||
<addon hosted="false"> | |||
<name>Addon Xtreme</name> | |||
<guid>xtreme@mozzarella.com</guid> | |||
<warnings> | |||
<performance application="{firefox-guid}" os="WINNT" version="1.2.3"> | |||
<metric type="startup" severity="minor"/> | |||
<metric type="general" severity="major"/> | |||
</performance> | |||
<performance application="{firefox-guid}" os="Darwin,Linux,WINNT" version="1.2.0"> | |||
<metric type="memory" severity="major"/> | |||
</performance> | |||
</warnings> | |||
</addon> | |||
</searchresults> | |||
== Open Questions == | == Open Questions == | ||