Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / tools / json_schema_compiler / test / content_settings.json
blobf8778faba467149334624f9e349b01aa289fe510
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.
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 plugins. One of<br><var>allow</var>: Run plugins automatically,<br><var>block</var>: Don't run plugins 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   }