• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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": "Use the <code>chrome.contentSettings</code> API to change settings that control whether websites can use features such as cookies, JavaScript, and plug-ins. More generally speaking, content settings allow you to customize Chrome's behavior on a per-site basis instead of globally.",
9    "compiler_options": {
10      "generate_type_functions": true
11    },
12    "types": [
13      {
14        "id": "ResourceIdentifier",
15        "type": "object",
16        "properties": {
17          "id": {
18            "type": "string",
19            "description": "The resource identifier for the given content type."
20          },
21          "description": {
22            "type": "string",
23            "optional": true,
24            "description": "A human readable description of the resource."
25          }
26        },
27        "description": "The only content type using resource identifiers is $ref:contentSettings.plugins. For more information, see <a href=\"contentSettings.html#resource-identifiers\">Resource Identifiers</a>."
28      },
29      {
30        "id": "ContentSetting",
31        "js_module": "ContentSetting",
32        "type": "object",
33        "functions": [
34          {
35            "name": "clear",
36            "type": "function",
37            "description": "Clear all content setting rules set by this extension.",
38            "parameters": [
39              {
40                "name": "details",
41                "type": "object",
42                "properties": {
43                  "scope": {
44                    "type": "string",
45                    "enum": ["regular", "incognito_session_only"],
46                    "optional": true,
47                    "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)."
48                  }
49                }
50              },
51              {
52                "type": "function",
53                "name": "callback",
54                "optional": true,
55                "parameters": []
56              }
57            ]
58          },
59          {
60            "name": "get",
61            "type": "function",
62            "description": "Gets the current content setting for a given pair of URLs.",
63            "parameters": [
64              {
65                "name": "details",
66                "type": "object",
67                "properties": {
68                  "primaryUrl": {
69                    "type": "string",
70                    "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."
71                  },
72                  "secondaryUrl": {
73                    "type": "string",
74                    "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.",
75                    "optional": true
76                  },
77                  "resourceIdentifier": {
78                    "$ref": "ResourceIdentifier",
79                    "optional": true,
80                    "description": "A more specific identifier of the type of content for which the settings should be retrieved."
81                  },
82                  "incognito": {
83                    "type": "boolean",
84                    "optional": true,
85                    "description": "Whether to check the content settings for an incognito session. (default false)"
86                  }
87                }
88              },
89              {
90                "type": "function",
91                "name": "callback",
92                "parameters": [
93                  {
94                    "name": "details",
95                    "type": "object",
96                    "properties": {
97                      "setting": {
98                        "type": "any",
99                        "description": "The content setting. See the description of the individual ContentSetting objects for the possible values."
100                      }
101                    }
102                  }
103                ]
104              }
105            ]
106          },
107          {
108            "name": "set",
109            "type": "function",
110            "description": "Applies a new content setting rule.",
111            "parameters": [
112              {
113                "name": "details",
114                "type": "object",
115                "properties": {
116                  "primaryPattern": {
117                    "type": "string",
118                    "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>."
119                  },
120                  "secondaryPattern": {
121                    "type": "string",
122                    "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>.",
123                    "optional": true
124                  },
125                  "resourceIdentifier": {
126                    "$ref": "ResourceIdentifier",
127                    "optional": true,
128                    "description": "The resource identifier for the content type."
129                  },
130                  "setting": {
131                    "type": "any",
132                    "description": "The setting applied by this rule. See the description of the individual ContentSetting objects for the possible values."
133                  },
134                  "scope": {
135                    "type": "string",
136                    "enum": ["regular", "incognito_session_only"],
137                    "optional": true,
138                    "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)."
139                  }
140                }
141              },
142              {
143                "type": "function",
144                "name": "callback",
145                "optional": true,
146                "parameters": []
147              }
148            ]
149          },
150          {
151            "name": "getResourceIdentifiers",
152            "type": "function",
153            "description": "",
154            "parameters": [
155              {
156                "name": "callback",
157                "type": "function",
158                "parameters": [
159                  {
160                    "name": "resourceIdentifiers",
161                    "type": "array",
162                    "description": "A list of resource identifiers for this content type, or <var>undefined</var> if this content type does not use resource identifiers.",
163                    "optional": true,
164                    "items": {
165                      "$ref": "ResourceIdentifier"
166                    }
167                  }
168                ]
169              }
170            ]
171          }
172        ]
173      }
174    ],
175    "properties": {
176      "cookies": {
177        "$ref": "ContentSetting",
178        "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.",
179        "value": [
180          "cookies",
181          {"type":"string", "enum": ["allow", "block", "session_only"]}
182        ]
183      },
184      "images": {
185        "$ref": "ContentSetting",
186        "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.",
187        "value": [
188          "images",
189          {"type":"string", "enum": ["allow", "block"]}
190        ]
191      },
192      "javascript": {
193        "$ref": "ContentSetting",
194        "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.",
195        "value": [
196          "javascript",
197          {"type":"string", "enum": ["allow", "block"]}
198        ]
199      },
200      "plugins": {
201        "$ref": "ContentSetting",
202        "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.",
203        "value": [
204          "plugins",
205          {"type":"string", "enum": ["allow", "block"]}
206        ]
207      },
208      "popups": {
209        "$ref": "ContentSetting",
210        "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.",
211        "value": [
212          "popups",
213          {"type":"string", "enum": ["allow", "block"]}
214        ]
215      },
216      "notifications": {
217        "$ref": "ContentSetting",
218        "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.",
219        "value": [
220          "notifications",
221          {"type":"string", "enum": ["allow", "block", "ask"]}
222        ]
223      }
224    }
225  }
226]
227