"description":"Use the <code>browser.pageAction</code> API to put icons inside the address bar. Page actions represent actions that can be taken on the current page, but that aren't applicable to all pages.",
"permissions":["manifest:page_action"],
"types":[
{
"id":"ImageDataType",
"type":"object",
"isInstanceOf":"ImageData",
"additionalProperties":{"type":"any"},
"postprocess":"convertImageDataToURL",
"description":"Pixel data for an image. Must be an ImageData object (for example, from a <code>canvas</code> element)."
}
],
"functions":[
{
"name":"show",
"type":"function",
"async":"callback",
"description":"Shows the page action. The page action is shown whenever the tab is selected.",
"parameters":[
{"type":"integer","name":"tabId","minimum":0,"description":"The id of the tab for which you want to modify the page action."},
{
"type":"function",
"name":"callback",
"optional":true,
"parameters":[]
}
]
},
{
"name":"hide",
"type":"function",
"async":"callback",
"description":"Hides the page action.",
"parameters":[
{"type":"integer","name":"tabId","minimum":0,"description":"The id of the tab for which you want to modify the page action."},
{
"type":"function",
"name":"callback",
"optional":true,
"parameters":[]
}
]
},
{
"name":"setTitle",
"type":"function",
"description":"Sets the title of the page action. This is displayed in a tooltip over the page action.",
"parameters":[
{
"name":"details",
"type":"object",
"properties":{
"tabId":{"type":"integer","minimum":0,"description":"The id of the tab for which you want to modify the page action."},
"description":"Gets the title of the page action.",
"async":"callback",
"parameters":[
{
"name":"details",
"type":"object",
"properties":{
"tabId":{
"type":"integer",
"description":"Specify the tab to get the title from."
}
}
},
{
"type":"function",
"name":"callback",
"parameters":[
{
"name":"result",
"type":"string"
}
]
}
]
},
{
"name":"setIcon",
"type":"function",
"description":"Sets the icon for the page action. The icon can be specified either as the path to an image file or as the pixel data from a canvas element, or as dictionary of either one of those. Either the <b>path</b> or the <b>imageData</b> property must be specified.",
"async":"callback",
"parameters":[
{
"name":"details",
"type":"object",
"properties":{
"tabId":{"type":"integer","minimum":0,"description":"The id of the tab for which you want to modify the page action."},
"imageData":{
"choices":[
{"$ref":"ImageDataType"},
{
"type":"object",
"additionalProperties":{"$ref":"ImageDataType"}
}
],
"optional":true,
"description":"Either an ImageData object or a dictionary {size -> ImageData} representing icon to be set. If the icon is specified as a dictionary, the actual image to be used is chosen depending on screen's pixel density. If the number of image pixels that fit into one screen space unit equals <code>scale</code>, then image with size <code>scale</code> * 19 will be selected. Initially only scales 1 and 2 will be supported. At least one image must be specified. Note that 'details.imageData = foo' is equivalent to 'details.imageData = {'19': foo}'"
},
"path":{
"choices":[
{"type":"string"},
{
"type":"object",
"additionalProperties":{"type":"string"}
}
],
"optional":true,
"description":"Either a relative image path or a dictionary {size -> relative image path} pointing to icon to be set. If the icon is specified as a dictionary, the actual image to be used is chosen depending on screen's pixel density. If the number of image pixels that fit into one screen space unit equals <code>scale</code>, then image with size <code>scale</code> * 19 will be selected. Initially only scales 1 and 2 will be supported. At least one image must be specified. Note that 'details.path = foo' is equivalent to 'details.imageData = {'19': foo}'"