Home | History | Annotate | Download | only in test
      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": "contentSettings",
      8     "description": "The contentSettings API.",
      9     "types": [
     10       {
     11         "id": "ResourceIdentifier",
     12         "type": "object",
     13         "properties": {
     14           "id": {
     15             "type": "string",
     16             "description": "The resource identifier for the given content type."
     17           },
     18           "description": {
     19             "type": "string",
     20             "optional": true,
     21             "description": "A human readable description of the resource."
     22           }
     23         },
     24         "description": "The only content type using resource identifiers is <a href=\"contentSettings.html#property-plugins\"><var>plugins</var></a>. For more information, see <a href=\"contentSettings.html#resource-identifiers\">Resource Identifiers</a>."
     25       },
     26       {
     27         "id": "ContentSetting",
     28         "type": "object",
     29         "functions": [
     30           {
     31             "name": "clear",
     32             "type": "function",
     33             "description": "Clear all content setting rules set by this extension.",
     34             "parameters": [
     35               {
     36                 "name": "details",
     37                 "type": "object",
     38                 "properties": {
     39                   "scope": {
     40                     "type": "string",
     41                     "enum": ["regular", "incognito_session_only"],
     42                     "optional": true,
     43                     "description": "Where to set the setting (default: regular). One of<br><var>regular</var>: setting for regular profile (which is inherited by the incognito profile if not overridden elsewhere),<br><var>incognito_session_only</var>: setting for incognito profile that can only be set during an incognito session and is deleted when the incognito session ends (overrides regular settings)."
     44                   }
     45                 }
     46               },
     47               {
     48                 "type": "function",
     49                 "name": "callback",
     50                 "optional": true,
     51                 "parameters": []
     52               }
     53             ]
     54           },
     55           {
     56             "name": "get",
     57             "type": "function",
     58             "description": "Gets the current content setting for a given pair of URLs.",
     59             "parameters": [
     60               {
     61                 "name": "details",
     62                 "type": "object",
     63                 "properties": {
     64                   "primaryUrl": {
     65                     "type": "string",
     66                     "description": "The primary URL for which the content setting should be retrieved. Note that the meaning of a primary URL depends on the content type."
     67                   },
     68                   "secondaryUrl": {
     69                     "type": "string",
     70                     "description": "The secondary URL for which the content setting should be retrieved. Defaults to the primary URL. Note that the meaning of a secondary URL depends on the content type, and not all content types use secondary URLs.",
     71                     "optional": true
     72                   },
     73                   "resourceIdentifier": {
     74                     "$ref": "ResourceIdentifier",
     75                     "optional": true,
     76                     "description": "A more specific identifier of the type of content for which the settings should be retrieved."
     77                   },
     78                   "incognito": {
     79                     "type": "boolean",
     80                     "optional": true,
     81                     "description": "Whether to check the content settings for an incognito session. (default false)"
     82                   }
     83                 }
     84               },
     85               {
     86                 "type": "function",
     87                 "name": "callback",
     88                 "parameters": [
     89                   {
     90                     "name": "details",
     91                     "type": "object",
     92                     "properties": {
     93                       "setting": {
     94                         "type": "any",
     95                         "description": "The content setting. See the description of the individual ContentSetting objects for the possible values."
     96                       }
     97                     }
     98                   }
     99                 ]
    100               }
    101             ]
    102           },
    103           {
    104             "name": "set",
    105             "type": "function",
    106             "description": "Applies a new content setting rule.",
    107             "parameters": [
    108               {
    109                 "name": "details",
    110                 "type": "object",
    111                 "properties": {
    112                   "primaryPattern": {
    113                     "type": "string",
    114                     "description": "The pattern for the primary URL. For details on the format of a pattern, see <a href='contentSettings.html#patterns'>Content Setting Patterns</a>."
    115                   },
    116                   "secondaryPattern": {
    117                     "type": "string",
    118                     "description": "The pattern for the secondary URL. Defaults to matching all URLs. For details on the format of a pattern, see <a href='contentSettings.html#patterns'>Content Setting Patterns</a>.",
    119                     "optional": true
    120                   },
    121                   "resourceIdentifier": {
    122                     "$ref": "ResourceIdentifier",
    123                     "optional": true,
    124                     "description": "The resource identifier for the content type."
    125                   },
    126                   "setting": {
    127                     "type": "any",
    128                     "description": "The setting applied by this rule. See the description of the individual ContentSetting objects for the possible values."
    129                   },
    130                   "scope": {
    131                     "type": "string",
    132                     "enum": ["regular", "incognito_session_only"],
    133                     "optional": true,
    134                     "description": "Where to clear the setting (default: regular). One of<br><var>regular</var>: setting for regular profile (which is inherited by the incognito profile if not overridden elsewhere),<br><var>incognito_session_only</var>: setting for incognito profile that can only be set during an incognito session and is deleted when the incognito session ends (overrides regular settings)."
    135                   }
    136                 }
    137               },
    138               {
    139                 "type": "function",
    140                 "name": "callback",
    141                 "optional": true,
    142                 "parameters": []
    143               }
    144             ]
    145           },
    146           {
    147             "name": "getResourceIdentifiers",
    148             "type": "function",
    149             "description": "",
    150             "parameters": [
    151               {
    152                 "name": "callback",
    153                 "type": "function",
    154                 "parameters": [
    155                   {
    156                     "name": "resourceIdentifiers",
    157                     "type": "array",
    158                     "description": "A list of resource identifiers for this content type, or <var>undefined</var> if this content type does not use resource identifiers.",
    159                     "optional": true,
    160                     "items": {
    161                       "$ref": "ResourceIdentifier"
    162                     }
    163                   }
    164                 ]
    165               }
    166             ]
    167           }
    168         ]
    169       }
    170     ],
    171     "properties": {
    172       "cookies": {
    173         "$ref": "ContentSetting",
    174         "description": "Whether to allow cookies and other local data to be set by websites. One of<br><var>allow</var>: Accept cookies,<br><var>block</var>: Block cookies,<br><var>session_only</var>: Accept cookies only for the current session. <br>Default is <var>allow</var>.<br>The primary URL is the URL representing the cookie origin. The secondary URL is the URL of the top-level frame.",
    175         "value": [
    176           "cookies",
    177           {"type":"string", "enum": ["allow", "block", "session_only"]}
    178         ]
    179       },
    180       "images": {
    181         "$ref": "ContentSetting",
    182         "description": "Whether to show images. One of<br><var>allow</var>: Show images,<br><var>block</var>: Don't show images. <br>Default is <var>allow</var>.<br>The primary URL is the main-frame URL. The secondary URL is the URL of the image.",
    183         "value": [
    184           "images",
    185           {"type":"string", "enum": ["allow", "block"]}
    186         ]
    187       },
    188       "javascript": {
    189         "$ref": "ContentSetting",
    190         "description": "Whether to run JavaScript. One of<br><var>allow</var>: Run JavaScript,<br><var>block</var>: Don't run JavaScript. <br>Default is <var>allow</var>.<br>The primary URL is the main-frame URL. The secondary URL is not used.",
    191         "value": [
    192           "javascript",
    193           {"type":"string", "enum": ["allow", "block"]}
    194         ]
    195       },
    196       "plugins": {
    197         "$ref": "ContentSetting",
    198         "description": "Whether to run plug-ins. One of<br><var>allow</var>: Run plug-ins automatically,<br><var>block</var>: Don't run plug-ins automatically. <br>Default is <var>allow</var>.<br>The primary URL is the main-frame URL. The secondary URL is not used.",
    199         "value": [
    200           "plugins",
    201           {"type":"string", "enum": ["allow", "block"]}
    202         ]
    203       },
    204       "popups": {
    205         "$ref": "ContentSetting",
    206         "description": "Whether to allow sites to show pop-ups. One of<br><var>allow</var>: Allow sites to show pop-ups,<br><var>block</var>: Don't allow sites to show pop-ups. <br>Default is <var>block</var>.<br>The primary URL is the main-frame URL. The secondary URL is not used.",
    207         "value": [
    208           "popups",
    209           {"type":"string", "enum": ["allow", "block"]}
    210         ]
    211       },
    212       "notifications": {
    213         "$ref": "ContentSetting",
    214         "description": "Whether to allow sites to show desktop notifications. One of<br><var>allow</var>: Allow sites to show desktop notifications,<br><var>block</var>: Don't allow sites to show desktop notifications,<br><var>ask</var>: Ask when a site wants to show desktop notifications. <br>Default is <var>ask</var>.<br>The primary URL is the main-frame URL. The secondary URL is not used.",
    215         "value": [
    216           "notifications",
    217           {"type":"string", "enum": ["allow", "block", "ask"]}
    218         ]
    219       }
    220     }
    221   }
    222 ]
    223