blob: e16836298db89ae005350118d90f2ca2eace6870 [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
[
{
"namespace": "bookmarks",
"description": "Use the <code>chrome.bookmarks</code> API to create, organize, and otherwise manipulate bookmarks. Also see <a href='override.html'>Override Pages</a>, which you can use to create a custom Bookmark Manager page.",
"properties": {
"MAX_WRITE_OPERATIONS_PER_HOUR": {
"value": 100,
"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."
},
"MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE": {
"value": 2,
"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."
}
},
"types": [
{
"id": "BookmarkTreeNode",
"type": "object",
"description": "A node (either a bookmark or a folder) in the bookmark tree. Child nodes are ordered within their parent folder.",
"properties": {
"id": {
"type": "string",
"minimum": 0,
"description": "The unique identifier for the node. IDs are unique within the current profile, and they remain valid even after the browser is restarted."
},
"parentId": {
"type": "string",
"minimum": 0,
"optional": true,
"description": "The <code>id</code> of the parent folder. Omitted for the root node."
},
"index": {
"type": "integer",
"optional": true,
"description": "The 0-based position of this node within its parent folder."
},
"url": {
"type": "string",
"optional": true,
"description": "The URL navigated to when a user clicks the bookmark. Omitted for folders."
},
"title": {
"type": "string",
"description": "The text displayed for the node."
},
"dateAdded": {
"type": "number",
"optional": true,
"description": "When this node was created, in milliseconds since the epoch (<code>new Date(dateAdded)</code>)."
},
"dateGroupModified": {
"type": "number",
"optional": true,
"description": "When the contents of this folder last changed, in milliseconds since the epoch."
},
"children": {
"type": "array",
"optional": true,
"items": { "$ref": "BookmarkTreeNode" },
"description": "An ordered list of children of this node."
}
}
}
],
"functions": [
{
"name": "get",
"type": "function",
"description": "Retrieves the specified BookmarkTreeNode(s).",
"parameters": [
{
"name": "idOrIdList",
"description": "A single string-valued id, or an array of string-valued ids",
"choices": [
{
"type": "string",
"serialized_type": "int64"
},
{
"type": "array",
"items": {
"type": "string",
"serialized_type": "int64"
},
"minItems": 1
}
]
},
{
"type": "function",
"name": "callback",
"parameters": [
{
"name": "results",
"type": "array",
"items": { "$ref": "BookmarkTreeNode" }
}
]
}
]
},
{
"name": "getChildren",
"type": "function",
"description": "Retrieves the children of the specified BookmarkTreeNode id.",
"parameters": [
{
"type": "string",
"serialized_type": "int64",
"name": "id"
},
{
"type": "function",
"name": "callback",
"parameters": [
{
"name": "results",
"type": "array",
"items": { "$ref": "BookmarkTreeNode"}
}
]
}
]
},
{
"name": "getRecent",
"type": "function",
"description": "Retrieves the recently added bookmarks.",
"parameters": [
{
"type": "integer",
"minimum": 1,
"name": "numberOfItems",
"description": "The maximum number of items to return."
},
{
"type": "function",
"name": "callback",
"parameters": [
{
"name": "results",
"type": "array",
"items": { "$ref": "BookmarkTreeNode" }
}
]
}
]
},
{
"name": "getTree",
"type": "function",
"description": "Retrieves the entire Bookmarks hierarchy.",
"parameters": [
{
"type": "function",
"name": "callback",
"parameters": [
{
"name": "results",
"type": "array",
"items": { "$ref": "BookmarkTreeNode" }
}
]
}
]
},
{
"name": "getSubTree",
"type": "function",
"description": "Retrieves part of the Bookmarks hierarchy, starting at the specified node.",
"parameters": [
{
"type": "string",
"serialized_type": "int64",
"name": "id",
"description": "The ID of the root of the subtree to retrieve."
},
{
"type": "function",
"name": "callback",
"parameters": [
{
"name": "results",
"type": "array",
"items": { "$ref": "BookmarkTreeNode" }
}
]
}
]
},
{
"name": "search",
"type": "function",
"description": "Searches for BookmarkTreeNodes matching the given query.",
"parameters": [
{
"type": "string",
"name": "query"
},
{
"type": "function",
"name": "callback",
"parameters": [
{
"name": "results",
"type": "array",
"items": { "$ref": "BookmarkTreeNode" }
}
]
}
]
},
{
"name": "create",
"type": "function",
"description": "Creates a bookmark or folder under the specified parentId. If url is NULL or missing, it will be a folder.",
"parameters": [
{
"type": "object",
"name": "bookmark",
"properties": {
"parentId": {
"type": "string",
"serialized_type": "int64",
"optional": true,
"description": "Defaults to the Other Bookmarks folder."
},
"index": {
"type": "integer",
"minimum": 0,
"optional": true
},
"title": {
"type": "string",
"optional": true
},
"url": {
"type": "string",
"optional": true
}
}
},
{
"type": "function",
"name": "callback",
"optional": true,
"parameters": [
{
"name": "result",
"$ref": "BookmarkTreeNode"
}
]
}
]
},
{
"name": "move",
"type": "function",
"description": "Moves the specified BookmarkTreeNode to the provided location.",
"parameters": [
{
"type": "string",
"serialized_type": "int64",
"name": "id"
},
{
"type": "object",
"name": "destination",
"properties": {
"parentId": {
"type": "string",
"optional": true
},
"index": {
"type": "integer",
"minimum": 0,
"optional": true
}
}
},
{
"type": "function",
"name": "callback",
"optional": true,
"parameters": [
{
"name": "result",
"$ref": "BookmarkTreeNode"
}
]
}
]
},
{
"name": "update",
"type": "function",
"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.",
"parameters": [
{
"type": "string",
"serialized_type": "int64",
"name": "id"
},
{
"type": "object",
"name": "changes",
"properties": {
"title": {
"type": "string",
"optional": true
},
"url": {
"type": "string",
"optional": true
}
}
},
{
"type": "function",
"name": "callback",
"optional": true,
"parameters": [
{
"name": "result",
"$ref": "BookmarkTreeNode"
}
]
}
]
},
{
"name": "remove",
"type": "function",
"description": "Removes a bookmark or an empty bookmark folder.",
"parameters": [
{
"type": "string",
"serialized_type": "int64",
"name": "id"
},
{
"type": "function",
"name": "callback",
"optional": true,
"parameters": []
}
]
},
{
"name": "removeTree",
"type": "function",
"description": "Recursively removes a bookmark folder.",
"parameters": [
{
"type": "string",
"serialized_type": "int64",
"name": "id"
},
{
"type": "function",
"name": "callback",
"optional": true,
"parameters": []
}
]
},
{
"name": "import",
"type": "function",
"description": "Imports bookmarks from a chrome html bookmark file",
"nodoc": "true",
"parameters": [
{
"type": "function",
"name": "callback",
"optional": true,
"parameters": []
}
]
},
{
"name": "export",
"type": "function",
"description": "Exports bookmarks to a chrome html bookmark file",
"nodoc": "true",
"parameters": [
{
"type": "function",
"name": "callback",
"optional": true,
"parameters": []
}
]
}
],
"events": [
{
"name": "onCreated",
"type": "function",
"description": "Fired when a bookmark or folder is created.",
"parameters": [
{
"type": "string",
"name": "id"
},
{
"$ref": "BookmarkTreeNode",
"name": "bookmark"
}
]
},
{
"name": "onRemoved",
"type": "function",
"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.",
"parameters": [
{
"type": "string",
"name": "id"
},
{
"type": "object",
"name": "removeInfo",
"properties": {
"parentId": { "type": "string" },
"index": { "type": "integer" }
}
}
]
},
{
"name": "onChanged",
"type": "function",
"description": "Fired when a bookmark or folder changes. <b>Note:</b> Currently, only title and url changes trigger this.",
"parameters": [
{
"type": "string",
"name": "id"
},
{
"type": "object",
"name": "changeInfo",
"properties": {
"title": { "type": "string" },
"url": {
"type": "string",
"optional": true
}
}
}
]
},
{
"name": "onMoved",
"type": "function",
"description": "Fired when a bookmark or folder is moved to a different parent folder.",
"parameters": [
{
"type": "string",
"name": "id"
},
{
"type": "object",
"name": "moveInfo",
"properties": {
"parentId": { "type": "string" },
"index": { "type": "integer" },
"oldParentId": { "type": "string" },
"oldIndex": { "type": "integer" }
}
}
]
},
{
"name": "onChildrenReordered",
"type": "function",
"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().",
"parameters": [
{
"type": "string",
"name": "id"
},
{
"type": "object",
"name": "reorderInfo",
"properties": {
"childIds": {
"type": "array",
"items": { "type": "string" }
}
}
}
]
},
{
"name": "onImportBegan",
"type": "function",
"description": "Fired when a bookmark import session is begun. Expensive observers should ignore onCreated updates until onImportEnded is fired. Observers should still handle other notifications immediately.",
"parameters": []
},
{
"name": "onImportEnded",
"type": "function",
"description": "Fired when a bookmark import session is ended.",
"parameters": []
}
]
}
]