130 lines
3.7 KiB
JSON
130 lines
3.7 KiB
JSON
[
|
|
{
|
|
"namespace": "manifest",
|
|
"types": [
|
|
{
|
|
"$extend": "PermissionPrivileged",
|
|
"choices": [
|
|
{
|
|
"type": "string",
|
|
"enum": ["normandyAddonStudy"]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"namespace": "normandyAddonStudy",
|
|
"description": "Normandy Study API",
|
|
"allowedContexts": ["content", "devtools"],
|
|
"defaultContexts": ["content", "devtools"],
|
|
"permissions": ["normandyAddonStudy"],
|
|
"types": [
|
|
{
|
|
"id": "Study",
|
|
"type": "object",
|
|
"properties": {
|
|
"recipeId": {
|
|
"type": "integer",
|
|
"description": "The ID of the recipe for the study."
|
|
},
|
|
"slug": {
|
|
"type": "string",
|
|
"description": "A slug to identify the study."
|
|
},
|
|
"userFacingName": {
|
|
"type": "string",
|
|
"description": "The name presented on about:studies."
|
|
},
|
|
"userFacingDescription": {
|
|
"type": "string",
|
|
"description": "The description presented on about:studies."
|
|
},
|
|
"branch": {
|
|
"type": "string",
|
|
"description": "The study branch in which the user is enrolled."
|
|
},
|
|
"active": {
|
|
"type": "boolean",
|
|
"description": "The state of the study."
|
|
},
|
|
"addonId": {
|
|
"type": "string",
|
|
"description": "The ID of the extension installed by the study."
|
|
},
|
|
"addonUrl": {
|
|
"type": "string",
|
|
"description": "The URL of the XPI that was downloaded and installed by the study."
|
|
},
|
|
"addonVersion": {
|
|
"type": "string",
|
|
"description": "The version of the extension installed by the study."
|
|
},
|
|
"studyStartDate": {
|
|
"$ref": "extensionTypes.Date",
|
|
"description": "The start date for the study."
|
|
},
|
|
"studyEndDate": {
|
|
"$ref": "extensionTypes.Date",
|
|
"description": "The end date for the study."
|
|
},
|
|
"extensionApiId": {
|
|
"type": "integer",
|
|
"description": "The record ID for the extension in Normandy server's database."
|
|
},
|
|
"extensionHash": {
|
|
"type": "string",
|
|
"description": "A hash of the extension XPI file."
|
|
},
|
|
"extensionHashAlgorithm": {
|
|
"type": "string",
|
|
"description": "The algorithm used to hash the extension XPI file."
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"functions": [
|
|
{
|
|
"name": "getStudy",
|
|
"type": "function",
|
|
"description": "Returns a study object for the current study.",
|
|
"async": true,
|
|
"parameters": []
|
|
},
|
|
{
|
|
"name": "endStudy",
|
|
"type": "function",
|
|
"description": "Marks the study as ended and then uninstalls the addon.",
|
|
"async": true,
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"name": "reason",
|
|
"description": "The reason why the study is ending."
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "getClientMetadata",
|
|
"type": "function",
|
|
"description": "Returns an object with metadata about the client which may be required for constructing survey URLs.",
|
|
"async": true,
|
|
"parameters": []
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"name": "onUnenroll",
|
|
"type": "function",
|
|
"description": "Fired when a user unenrolls from a study but before the addon is uninstalled.",
|
|
"parameters": [
|
|
{
|
|
"type": "string",
|
|
"name": "reason",
|
|
"description": "The reason why the study is ending."
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|