Home | History | Annotate | Download | only in api
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 [
      6   {
      7     "namespace": "browserAction",
      8     "description": "Use browser actions to put icons in the main Google Chrome toolbar, to the right of the address bar. In addition to its <a href='#icon'>icon</a>, a browser action can also have a <a href='#tooltip'>tooltip</a>, a <a href='#badge'>badge</a>, and a <a href = '#popups'>popup</a>.",
      9     "types": [
     10       {
     11         "id": "ColorArray",
     12         "type": "array",
     13         "items": {
     14           "type": "integer",
     15           "minimum": 0,
     16           "maximum": 255
     17         },
     18         "minItems": 4,
     19         "maxItems": 4
     20       },
     21       {
     22         "id": "ImageDataType",
     23         "type": "object",
     24         "isInstanceOf": "ImageData",
     25         "additionalProperties": { "type": "any" },
     26         "description": "Pixel data for an image. Must be an ImageData object (for example, from a <code>canvas</code> element)."
     27       }
     28     ],
     29     "functions": [
     30       {
     31         "name": "setTitle",
     32         "type": "function",
     33         "description": "Sets the title of the browser action. This shows up in the tooltip.",
     34         "parameters": [
     35           {
     36             "name": "details",
     37             "type": "object",
     38             "properties": {
     39               "title": {
     40                 "type": "string",
     41                 "description": "The string the browser action should display when moused over."
     42               },
     43               "tabId": {
     44                 "type": "integer",
     45                 "optional": true,
     46                 "description": "Limits the change to when a particular tab is selected. Automatically resets when the tab is closed."
     47               }
     48             }
     49           }
     50         ]
     51       },
     52       {
     53         "name": "getTitle",
     54         "type": "function",
     55         "description": "Gets the title of the browser action.",
     56         "parameters": [
     57           {
     58             "name": "details",
     59             "type": "object",
     60             "properties": {
     61               "tabId": {
     62                 "type": "integer",
     63                 "optional": true,
     64                 "description": "Specify the tab to get the title from. If no tab is specified, the non-tab-specific title is returned."
     65               }
     66             }
     67           },
     68           {
     69             "type": "function",
     70             "name": "callback",
     71             "parameters": [
     72               {
     73                 "name": "result",
     74                 "type": "string"
     75               }
     76             ]
     77           }
     78         ]
     79       },
     80       {
     81         "name": "setIcon",
     82         "type": "function",
     83         "description": "Sets the icon for the browser 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.",
     84         "parameters": [
     85           {
     86             "name": "details",
     87             "type": "object",
     88             "properties": {
     89               "imageData": {
     90                 "choices": [
     91                   { "$ref": "ImageDataType" },
     92                   {
     93                     "type": "object",
     94                     "properties": {
     95                       "19": {"$ref": "ImageDataType", "optional": true},
     96                       "38": {"$ref": "ImageDataType", "optional": true}
     97                      }
     98                   }
     99                 ],
    100                 "optional": true,
    101                 "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}'"
    102               },
    103               "path": {
    104                 "choices": [
    105                   { "type": "string" },
    106                   {
    107                     "type": "object",
    108                     "properties": {
    109                       "19": {"type": "string", "optional": true},
    110                       "38": {"type": "string", "optional": true}
    111                     }
    112                   }
    113                 ],
    114                 "optional": true,
    115                 "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}'"
    116               },
    117               "tabId": {
    118                 "type": "integer",
    119                 "optional": true,
    120                 "description": "Limits the change to when a particular tab is selected. Automatically resets when the tab is closed."
    121               }
    122             }
    123           },
    124           {
    125             "type": "function",
    126             "name": "callback",
    127             "optional": true,
    128             "parameters": []
    129           }
    130         ]
    131       },
    132       {
    133         "name": "setPopup",
    134         "type": "function",
    135         "description": "Sets the html document to be opened as a popup when the user clicks on the browser action's icon.",
    136         "parameters": [
    137           {
    138             "name": "details",
    139             "type": "object",
    140             "properties": {
    141               "tabId": {
    142                 "type": "integer",
    143                 "optional": true,
    144                 "minimum": 0,
    145                 "description": "Limits the change to when a particular tab is selected. Automatically resets when the tab is closed."
    146               },
    147               "popup": {
    148                 "type": "string",
    149                 "description": "The html file to show in a popup.  If set to the empty string (''), no popup is shown."
    150               }
    151             }
    152           }
    153         ]
    154       },
    155       {
    156         "name": "getPopup",
    157         "type": "function",
    158         "description": "Gets the html document set as the popup for this browser action.",
    159         "parameters": [
    160           {
    161             "name": "details",
    162             "type": "object",
    163             "properties": {
    164               "tabId": {
    165                 "type": "integer",
    166                 "optional": true,
    167                 "description": "Specify the tab to get the popup from. If no tab is specified, the non-tab-specific popup is returned."
    168               }
    169             }
    170           },
    171           {
    172             "type": "function",
    173             "name": "callback",
    174             "parameters": [
    175               {
    176                 "name": "result",
    177                 "type": "string"
    178               }
    179             ]
    180           }
    181         ]
    182       },
    183       {
    184         "name": "setBadgeText",
    185         "type": "function",
    186         "description": "Sets the badge text for the browser action. The badge is displayed on top of the icon.",
    187         "parameters": [
    188           {
    189             "name": "details",
    190             "type": "object",
    191             "properties": {
    192               "text": {
    193                 "type": "string",
    194                 "description": "Any number of characters can be passed, but only about four can fit in the space."
    195               },
    196               "tabId": {
    197                 "type": "integer",
    198                 "optional": true,
    199                 "description": "Limits the change to when a particular tab is selected. Automatically resets when the tab is closed."
    200               }
    201             }
    202           }
    203         ]
    204       },
    205       {
    206         "name": "getBadgeText",
    207         "type": "function",
    208         "description": "Gets the badge text of the browser action. If no tab is specified, the non-tab-specific badge text is returned.",
    209         "parameters": [
    210           {
    211             "name": "details",
    212             "type": "object",
    213             "properties": {
    214               "tabId": {
    215                 "type": "integer",
    216                 "optional": true,
    217                 "description": "Specify the tab to get the badge text from. If no tab is specified, the non-tab-specific badge text is returned."
    218               }
    219             }
    220           },
    221           {
    222             "type": "function",
    223             "name": "callback",
    224             "parameters": [
    225               {
    226                 "name": "result",
    227                 "type": "string"
    228               }
    229             ]
    230           }
    231         ]
    232       },
    233       {
    234         "name": "setBadgeBackgroundColor",
    235         "type": "function",
    236         "description": "Sets the background color for the badge.",
    237         "parameters": [
    238           {
    239             "name": "details",
    240             "type": "object",
    241             "properties": {
    242               "color": {
    243                 "description": "An array of four integers in the range [0,255] that make up the RGBA color of the badge. For example, opaque red is <code>[255, 0, 0, 255]</code>. Can also be a string with a CSS value, with opaque red being <code>#FF0000</code> or <code>#F00</code>.",
    244                 "choices": [
    245                   {"type": "string"},
    246                   {"$ref": "ColorArray"}
    247                 ]
    248               },
    249               "tabId": {
    250                 "type": "integer",
    251                 "optional": true,
    252                 "description": "Limits the change to when a particular tab is selected. Automatically resets when the tab is closed."
    253               }
    254             }
    255           }
    256         ]
    257       },
    258       {
    259         "name": "getBadgeBackgroundColor",
    260         "type": "function",
    261         "description": "Gets the background color of the browser action.",
    262         "parameters": [
    263           {
    264             "name": "details",
    265             "type": "object",
    266             "properties": {
    267               "tabId": {
    268                 "type": "integer",
    269                 "optional": true,
    270                 "description": "Specify the tab to get the badge background color from. If no tab is specified, the non-tab-specific badge background color is returned."
    271               }
    272             }
    273           },
    274           {
    275             "type": "function",
    276             "name": "callback",
    277             "parameters": [
    278               {
    279                 "name": "result",
    280                 "$ref": "ColorArray"
    281               }
    282             ]
    283           }
    284         ]
    285       },
    286       {
    287         "name": "enable",
    288         "type": "function",
    289         "description": "Enables the browser action for a tab. By default, browser actions are enabled.",
    290         "parameters": [
    291           {
    292             "type": "integer",
    293             "optional": true,
    294             "name": "tabId",
    295             "minimum": 0,
    296             "description": "The id of the tab for which you want to modify the browser action."
    297           }
    298         ]
    299       },
    300       {
    301         "name": "disable",
    302         "type": "function",
    303         "description": "Disables the browser action for a tab.",
    304         "parameters": [
    305           {
    306             "type": "integer",
    307             "optional": true,
    308             "name": "tabId",
    309             "minimum": 0,
    310             "description": "The id of the tab for which you want to modify the browser action."
    311           }
    312         ]
    313       }
    314     ],
    315     "events": [
    316       {
    317         "name": "onClicked",
    318         "type": "function",
    319         "description": "Fired when a browser action icon is clicked.  This event will not fire if the browser action has a popup.",
    320         "parameters": [
    321           {
    322             "name": "tab",
    323             "$ref": "tabs.Tab"
    324           }
    325         ]
    326       }
    327     ]
    328   }
    329 ]
    330