Home | History | Annotate | Download | only in devtools
      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": "devtools.panels",
      8     "description": "Use the <code>chrome.devtools.panels</code> API to integrate your extension into Developer Tools window UI: create your own panels, access existing panels, and add sidebars.",
      9     "nocompile": true,
     10     "types": [
     11       {
     12         "id": "ElementsPanel",
     13         "type": "object",
     14         "description": "Represents the Elements panel.",
     15         "events": [
     16           {
     17             "name": "onSelectionChanged",
     18             "description": "Fired when an object is selected in the panel."
     19           }
     20         ],
     21         "functions": [
     22           {
     23             "name": "createSidebarPane",
     24             "type": "function",
     25             "description": "Creates a pane within panel's sidebar.",
     26             "parameters": [
     27               {
     28                 "name": "title",
     29                 "type": "string",
     30                 "description": "Text that is displayed in sidebar caption."
     31               },
     32               {
     33                 "name": "callback",
     34                 "type": "function",
     35                 "description": "A callback invoked when the sidebar is created.",
     36                 "optional": true,
     37                 "parameters": [
     38                   {
     39                     "name": "result",
     40                     "description": "An ExtensionSidebarPane object for created sidebar pane.",
     41                     "$ref": "ExtensionSidebarPane"
     42                   }
     43                 ]
     44               }
     45             ]
     46           }
     47         ]
     48       },
     49       {
     50         "id": "ExtensionPanel",
     51         "type": "object",
     52         "description": "Represents a panel created by extension.",
     53         "functions": [
     54           {
     55             "name": "createStatusBarButton",
     56             "description": "Appends a button to the status bar of the panel.",
     57             "parameters": [
     58               {
     59                 "name": "iconPath",
     60                 "type": "string",
     61                 "description": "Path to the icon of the button. The file should contain a 64x24-pixel image composed of two 32x24 icons. The left icon is used when the button is inactive; the right icon is displayed when the button is pressed."
     62               },
     63               {
     64                 "name": "tooltipText",
     65                 "type": "string",
     66                 "description": "Text shown as a tooltip when user hovers the mouse over the button."
     67               },
     68               {
     69                 "name": "disabled",
     70                 "type": "boolean",
     71                 "description": "Whether the button is disabled."
     72               }
     73             ],
     74             "returns": { "$ref": "Button" }
     75           }
     76         ],
     77         "events": [
     78           {
     79             "name": "onSearch",
     80             "description": "Fired upon a search action (start of a new search, search result navigation, or search being canceled).",
     81             "parameters": [
     82               {
     83                 "name": "action",
     84                 "type": "string",
     85                 "description": "Type of search action being performed."
     86               },
     87               {
     88                 "name": "queryString",
     89                 "type": "string",
     90                 "optional": true,
     91                 "description": "Query string (only for 'performSearch')."
     92               }
     93             ]
     94           },
     95           {
     96             "name": "onShown",
     97             "type": "function",
     98             "description": "Fired when the user switches to the panel.",
     99             "parameters": [
    100               {
    101                 "name": "window",
    102                 "$ref": "windows.Window",
    103                 "description": "The <code>window</code> object of panel's page."
    104               }
    105             ]
    106           },
    107           {
    108             "name": "onHidden",
    109             "type": "function",
    110             "description": "Fired when the user switches away from the panel."
    111           }
    112         ]
    113       },
    114       {
    115         "id": "ExtensionSidebarPane",
    116         "type": "object",
    117         "description": "A sidebar created by the extension.",
    118         "functions": [
    119           {
    120             "name": "setHeight",
    121             "type": "function",
    122             "description": "Sets the height of the sidebar.",
    123             "parameters": [
    124               {
    125                 "name": "height",
    126                 "type": "string",
    127                 "description": "A CSS-like size specification, such as <code>'100px'</code> or <code>'12ex'</code>."
    128               }
    129             ]
    130           },
    131           {
    132             "name": "setExpression",
    133             "type": "function",
    134             "description": "Sets an expression that is evaluated within the inspected page. The result is displayed in the sidebar pane.",
    135             "parameters": [
    136               {
    137                 "name": "expression",
    138                 "type": "string",
    139                 "description": "An expression to be evaluated in context of the inspected page. JavaScript objects and DOM nodes are displayed in an expandable tree similar to the console/watch."
    140               },
    141               {
    142                 "name": "rootTitle",
    143                 "type": "string",
    144                 "optional": true,
    145                 "description": "An optional title for the root of the expression tree."
    146               },
    147               {
    148                 "name": "callback",
    149                 "type": "function",
    150                 "optional": true,
    151                 "description": "A callback invoked after the sidebar pane is updated with the expression evaluation results."
    152               }
    153             ]
    154           },
    155           {
    156             "name": "setObject",
    157             "type": "function",
    158             "description": "Sets a JSON-compliant object to be displayed in the sidebar pane.",
    159             "parameters": [
    160               {
    161                 "name": "jsonObject",
    162                 "type": "string",
    163                 "description": "An object to be displayed in context of the inspected page. Evaluated in the context of the caller (API client)."
    164               },
    165               {
    166                 "name": "rootTitle",
    167                 "type": "string",
    168                 "optional": true,
    169                 "description": "An optional title for the root of the expression tree."
    170               },
    171               {
    172                 "name": "callback",
    173                 "type": "function",
    174                 "optional": true,
    175                 "description": "A callback invoked after the sidebar is updated with the object."
    176               }
    177             ]
    178           },
    179           {
    180             "name": "setPage",
    181             "type": "function",
    182             "description": "Sets an HTML page to be displayed in the sidebar pane.",
    183             "parameters": [
    184               {
    185                 "name": "path",
    186                 "type": "string",
    187                 "description": "Relative path of an extension page to display within the sidebar."
    188               }
    189             ]
    190           }
    191         ],
    192         "events": [
    193           {
    194             "name": "onShown",
    195             "type": "function",
    196             "description": "Fired when the sidebar pane becomes visible as a result of user switching to the panel that hosts it.",
    197             "parameters": [
    198               {
    199                 "name": "window",
    200                 "$ref": "windows.Window",
    201                 "optional": true,
    202                 "description": "The <code>window</code> object of the sidebar page, if one was set with the <code>setPage()</code> method."
    203               }
    204             ]
    205           },
    206           {
    207             "name": "onHidden",
    208             "type": "function",
    209             "description": "Fired when the sidebar pane becomes hidden as a result of the user switching away from the panel that hosts the sidebar pane."
    210           }
    211         ]
    212       },
    213       {
    214         "id": "Button",
    215         "type": "object",
    216         "description": "A button created by the extension.",
    217         "functions": [
    218           {
    219             "name": "update",
    220             "description": "Updates the attributes of the button. If some of the arguments are omitted or <code>null</code>, the corresponding attributes are not updated.",
    221             "parameters": [
    222               {
    223                 "name": "iconPath",
    224                 "type": "string",
    225                 "optional": true,
    226                 "description": "Path to the new icon of the button."
    227               },
    228               {
    229                 "name": "tooltipText",
    230                 "type": "string",
    231                 "optional": true,
    232                 "description": "Text shown as a tooltip when user hovers the mouse over the button."
    233               },
    234               {
    235                 "name": "disabled",
    236                 "type": "boolean",
    237                 "optional": true,
    238                 "description": "Whether the button is disabled."
    239               }
    240             ]
    241           }
    242         ],
    243         "events": [
    244           {
    245             "name": "onClicked",
    246             "type": "function",
    247             "description": "Fired when the button is clicked."
    248           }
    249         ]
    250       }
    251     ],
    252     "properties": {
    253       "elements": {
    254         "$ref": "ElementsPanel",
    255         "description": "Elements panel."
    256       }
    257     },
    258     "functions": [
    259       {
    260         "name": "create",
    261         "type": "function",
    262         "description": "Creates an extension panel.",
    263         "parameters": [
    264           {
    265             "name": "title",
    266             "type": "string",
    267             "description": "Title that is displayed next to the extension icon in the Developer Tools toolbar."
    268           },
    269           {
    270             "name": "iconPath",
    271             "type": "string",
    272             "description": "Path of the panel's icon relative to the extension directory."
    273           },
    274           {
    275             "name": "pagePath",
    276             "type": "string",
    277             "description": "Path of the panel's HTML page relative to the extension directory."
    278           },
    279           {
    280             "name": "callback",
    281             "type": "function",
    282             "optional": true,
    283             "description": "A function that is called when the panel is created.",
    284             "parameters": [
    285               {
    286                 "name": "panel",
    287                 "description": "An ExtensionPanel object representing the created panel.",
    288                 "$ref": "ExtensionPanel"
    289               }
    290             ]
    291           }
    292         ]
    293       },
    294       {
    295         "name": "setOpenResourceHandler",
    296         "type": "function",
    297         "description": "Specifies the function to be called when the user clicks a resource link in the Developer Tools window. To unset the handler, either call the method with no parameters or pass null as the parameter.",
    298         "parameters": [
    299           {
    300             "name": "callback",
    301             "type": "function",
    302             "optional": true,
    303             "description": "A function that is called when the user clicks on a valid resource link in Developer Tools window. Note that if the user clicks an invalid URL or an XHR, this function is not called.",
    304             "parameters": [
    305               {
    306                 "name": "resource",
    307                 "$ref": "devtools.inspectedWindow.Resource",
    308                 "description": "A $ref:devtools.inspectedWindow.Resource object for the resource that was clicked."
    309               }
    310             ]
    311           }
    312         ]
    313       }
    314     ]
    315   }
    316 ]
    317