Extract SIGPIPE ignoring code to a common place.
[chromium-blink-merge.git] / chrome / common / extensions / api / bookmarks.json
blobbad4bd39eed4ad92506fcdc591b0a9f8bd8dfe78
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": "bookmarks",
8     "uses_feature_system": true,
9     "channel": "stable",
10     "dependencies": ["permission:bookmarks"],
11     "contexts": ["blessed_extension"],
12     "properties": {
13       "MAX_WRITE_OPERATIONS_PER_HOUR": {
14         "value": 100,
15         "description": "The maximum number of <code>move</code>, <code>update</code>, <code>create</code>, or <code>remove</code> operations that can be performed each hour. Updates that would cause this limit to be exceeded fail."
16       },
17       "MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE": {
18         "value": 2,
19         "description": "The maximum number of <code>move</code>, <code>update</code>, <code>create</code>, or <code>remove</code> operations that can be performed each minute, sustained over 10 minutes. Updates that would cause this limit to be exceeded fail."
20       }
21     },
22     "types": [
23       {
24         "id": "BookmarkTreeNode",
25         "type": "object",
26         "description": "A node (either a bookmark or a folder) in the bookmark tree.  Child nodes are ordered within their parent folder.",
27         "properties": {
28           "id": {
29             "type": "string",
30             "minimum": 0,
31             "description": "The unique identifier for the node. IDs are unique within the current profile, and they remain valid even after the browser is restarted."
32           },
33           "parentId": {
34             "type": "string",
35             "minimum": 0,
36             "optional": true,
37             "description": "The <code>id</code> of the parent folder.  Omitted for the root node."
38           },
39           "index": {
40             "type": "integer",
41             "optional": true,
42             "description": "The 0-based position of this node within its parent folder."
43           },
44           "url": {
45             "type": "string",
46             "optional": true,
47             "description": "The URL navigated to when a user clicks the bookmark. Omitted for folders."
48           },
49           "title": {
50             "type": "string",
51             "description": "The text displayed for the node."
52           },
53           "dateAdded": {
54             "type": "number",
55             "optional": true,
56             "description": "When this node was created, in milliseconds since the epoch (<code>new Date(dateAdded)</code>)."
57           },
58           "dateGroupModified": {
59             "type": "number",
60             "optional": true,
61             "description": "When the contents of this folder last changed, in milliseconds since the epoch."
62           },
63           "children": {
64             "type": "array",
65             "optional": true,
66             "items": { "$ref": "BookmarkTreeNode" },
67             "description": "An ordered list of children of this node."
68           }
69         }
70       }
71     ],
72     "functions": [
73       {
74         "name": "get",
75         "type": "function",
76         "description": "Retrieves the specified BookmarkTreeNode(s).",
77         "parameters": [
78           {
79             "name": "idOrIdList",
80             "description": "A single string-valued id, or an array of string-valued ids",
81             "choices": [
82               {
83                 "type": "string",
84                 "serialized_type": "int64"
85               },
86               {
87                 "type": "array",
88                 "items": {
89                   "type": "string",
90                   "serialized_type": "int64"
91                 },
92                 "minItems": 1
93               }
94             ]
95           },
96           {
97             "type": "function",
98             "name": "callback",
99             "parameters": [
100               {
101                 "name": "results",
102                 "type": "array",
103                 "items": { "$ref": "BookmarkTreeNode" }
104               }
105             ]
106           }
107         ]
108       },
109       {
110         "name": "getChildren",
111         "type": "function",
112         "description": "Retrieves the children of the specified BookmarkTreeNode id.",
113         "parameters": [
114           {
115             "type": "string",
116             "serialized_type": "int64",
117             "name": "id"
118           },
119           {
120             "type": "function",
121             "name": "callback",
122             "parameters": [
123               {
124                 "name": "results",
125                 "type": "array",
126                 "items": { "$ref": "BookmarkTreeNode"}
127               }
128             ]
129           }
130         ]
131       },
132       {
133         "name": "getRecent",
134         "type": "function",
135         "description": "Retrieves the recently added bookmarks.",
136         "parameters": [
137           {
138             "type": "integer",
139             "minimum": 1,
140             "name": "numberOfItems",
141             "description": "The maximum number of items to return."
142           },
143           {
144             "type": "function",
145             "name": "callback",
146             "parameters": [
147               {
148                 "name": "results",
149                 "type": "array",
150                 "items": { "$ref": "BookmarkTreeNode" }
151               }
152             ]
153           }
154         ]
155       },
156       {
157         "name": "getTree",
158         "type": "function",
159         "description": "Retrieves the entire Bookmarks hierarchy.",
160         "parameters": [
161           {
162             "type": "function",
163             "name": "callback",
164             "parameters": [
165               {
166                 "name": "results",
167                 "type": "array",
168                 "items": { "$ref": "BookmarkTreeNode" }
169               }
170             ]
171           }
172         ]
173       },
174       {
175         "name": "getSubTree",
176         "type": "function",
177         "description": "Retrieves part of the Bookmarks hierarchy, starting at the specified node.",
178         "parameters": [
179           {
180             "type": "string",
181             "serialized_type": "int64",
182             "name": "id",
183             "description": "The ID of the root of the subtree to retrieve."
184           },
185           {
186             "type": "function",
187             "name": "callback",
188             "parameters": [
189               {
190                 "name": "results",
191                 "type": "array",
192                 "items": { "$ref": "BookmarkTreeNode" }
193               }
194             ]
195           }
196         ]
197       },
198       {
199         "name": "search",
200         "type": "function",
201         "description": "Searches for BookmarkTreeNodes matching the given query.",
202         "parameters": [
203           {
204             "type": "string",
205             "name": "query"
206           },
207           {
208             "type": "function",
209             "name": "callback",
210             "parameters": [
211               {
212                 "name": "results",
213                 "type": "array",
214                 "items": { "$ref": "BookmarkTreeNode" }
215               }
216             ]
217           }
218         ]
219       },
220       {
221         "name": "create",
222         "type": "function",
223         "description": "Creates a bookmark or folder under the specified parentId.  If url is NULL or missing, it will be a folder.",
224         "parameters": [
225           {
226             "type": "object",
227             "name": "bookmark",
228             "properties": {
229               "parentId": {
230                 "type": "string",
231                 "serialized_type": "int64",
232                 "optional": true,
233                 "description": "Defaults to the Other Bookmarks folder."
234               },
235               "index": {
236                 "type": "integer",
237                 "minimum": 0,
238                 "optional": true
239               },
240               "title": {
241                 "type": "string",
242                 "optional": true
243               },
244               "url": {
245                 "type": "string",
246                 "optional": true
247               }
248             }
249           },
250           {
251             "type": "function",
252             "name": "callback",
253             "optional": true,
254             "parameters": [
255               {
256                 "name": "result",
257                 "$ref": "BookmarkTreeNode"
258               }
259             ]
260           }
261         ]
262       },
263       {
264         "name": "move",
265         "type": "function",
266         "description": "Moves the specified BookmarkTreeNode to the provided location.",
267         "parameters": [
268           {
269             "type": "string",
270             "serialized_type": "int64",
271             "name": "id"
272           },
273           {
274             "type": "object",
275             "name": "destination",
276             "properties": {
277               "parentId": {
278                 "type": "string",
279                 "optional": true
280               },
281               "index": {
282                 "type": "integer",
283                 "minimum": 0,
284                 "optional": true
285               }
286             }
287           },
288           {
289             "type": "function",
290             "name": "callback",
291             "optional": true,
292             "parameters": [
293               {
294                 "name": "result",
295                 "$ref": "BookmarkTreeNode"
296               }
297             ]
298           }
299         ]
300       },
301       {
302         "name": "update",
303         "type": "function",
304         "description": "Updates the properties of a bookmark or folder. Specify only the properties that you want to change; unspecified properties will be left unchanged.  <b>Note:</b> Currently, only 'title' and 'url' are supported.",
305         "parameters": [
306           {
307             "type": "string",
308             "serialized_type": "int64",
309             "name": "id"
310           },
311           {
312             "type": "object",
313             "name": "changes",
314             "properties": {
315               "title": {
316                 "type": "string",
317                 "optional": true
318               },
319               "url": {
320                 "type": "string",
321                 "optional": true
322               }
323             }
324           },
325           {
326             "type": "function",
327             "name": "callback",
328             "optional": true,
329             "parameters": [
330               {
331                 "name": "result",
332                 "$ref": "BookmarkTreeNode"
333               }
334             ]
335           }
336         ]
337       },
338       {
339         "name": "remove",
340         "type": "function",
341         "description": "Removes a bookmark or an empty bookmark folder.",
342         "parameters": [
343           {
344             "type": "string",
345             "serialized_type": "int64",
346             "name": "id"
347           },
348           {
349             "type": "function",
350             "name": "callback",
351             "optional": true,
352             "parameters": []
353           }
354         ]
355       },
356       {
357         "name": "removeTree",
358         "type": "function",
359         "description": "Recursively removes a bookmark folder.",
360         "parameters": [
361           {
362             "type": "string",
363             "serialized_type": "int64",
364             "name": "id"
365           },
366           {
367             "type": "function",
368             "name": "callback",
369             "optional": true,
370             "parameters": []
371           }
372         ]
373       },
374       {
375         "name": "import",
376         "type": "function",
377         "description": "Imports bookmarks from a chrome html bookmark file",
378         "nodoc": "true",
379         "parameters": [
380           {
381             "type": "function",
382             "name": "callback",
383             "optional": true,
384             "parameters": []
385           }
386         ]
387       },
388       {
389         "name": "export",
390         "type": "function",
391         "description": "Exports bookmarks to a chrome html bookmark file",
392         "nodoc": "true",
393         "parameters": [
394           {
395             "type": "function",
396             "name": "callback",
397             "optional": true,
398             "parameters": []
399           }
400         ]
401       }
402     ],
403     "events": [
404       {
405         "name": "onCreated",
406         "type": "function",
407         "description": "Fired when a bookmark or folder is created.",
408         "parameters": [
409           {
410             "type": "string",
411             "name": "id"
412           },
413           {
414             "$ref": "BookmarkTreeNode",
415             "name": "bookmark"
416           }
417         ]
418       },
419       {
420         "name": "onRemoved",
421         "type": "function",
422         "description": "Fired when a bookmark or folder is removed.  When a folder is removed recursively, a single notification is fired for the folder, and none for its contents.",
423         "parameters": [
424           {
425             "type": "string",
426             "name": "id"
427           },
428           {
429             "type": "object",
430             "name": "removeInfo",
431             "properties": {
432               "parentId": { "type": "string" },
433               "index": { "type": "integer" }
434             }
435           }
436         ]
437       },
438       {
439         "name": "onChanged",
440         "type": "function",
441         "description": "Fired when a bookmark or folder changes.  <b>Note:</b> Currently, only title and url changes trigger this.",
442         "parameters": [
443           {
444             "type": "string",
445             "name": "id"
446           },
447           {
448             "type": "object",
449             "name": "changeInfo",
450             "properties": {
451               "title": { "type": "string" },
452               "url": {
453                 "type": "string",
454                 "optional": true
455               }
456             }
457           }
458         ]
459       },
460       {
461         "name": "onMoved",
462         "type": "function",
463         "description": "Fired when a bookmark or folder is moved to a different parent folder.",
464         "parameters": [
465           {
466             "type": "string",
467             "name": "id"
468           },
469           {
470             "type": "object",
471             "name": "moveInfo",
472             "properties": {
473               "parentId": { "type": "string" },
474               "index": { "type": "integer" },
475               "oldParentId": { "type": "string" },
476               "oldIndex": { "type": "integer" }
477             }
478           }
479         ]
480       },
481       {
482         "name": "onChildrenReordered",
483         "type": "function",
484         "description": "Fired when the children of a folder have changed their order due to the order being sorted in the UI.  This is not called as a result of a move().",
485         "parameters": [
486           {
487             "type": "string",
488             "name": "id"
489           },
490           {
491             "type": "object",
492             "name": "reorderInfo",
493             "properties": {
494               "childIds": {
495                 "type": "array",
496                 "items": { "type": "string" }
497               }
498             }
499           }
500         ]
501       },
502       {
503         "name": "onImportBegan",
504         "type": "function",
505         "description": "Fired when a bookmark import session is begun.  Expensive observers should ignore handleCreated updates until onImportEnded is fired.  Observers should still handle other notifications immediately.",
506         "parameters": []
507       },
508       {
509         "name": "onImportEnded",
510         "type": "function",
511         "description": "Fired when a bookmark import session is ended.",
512         "parameters": []
513       }
514     ]
515   }