Source code

Revision control

Other Tools

[
{
"namespace": "manifest",
"types": [{
"$extend": "PermissionNoPrompt",
"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."
}
]
}
]
}
]