Это разрешение вызывает предупреждение .
Описание
 Используйте API chrome.bookmarks для создания, упорядочивания и других операций с закладками. См. также раздел «Переопределение страниц» , который можно использовать для создания пользовательской страницы менеджера закладок.
Разрешения
bookmarks 
Манифест
Для использования API закладок необходимо указать разрешение «bookmarks» в манифесте расширения . Например:
{
  "name": "My extension",
  ...
  "permissions": [
    "bookmarks"
  ],
  ...
}
Объекты и свойства
Закладки организованы в виде дерева, каждый узел которого представляет собой либо закладку, либо папку (иногда называемую группой ). Каждый узел дерева представлен объектом bookmarks.BookmarkTreeNode .
 Свойства BookmarkTreeNode используются во всем API chrome.bookmarks . Например, при вызове bookmarks.create вы передаёте родительский элемент нового узла ( parentId ) и, при необходимости, свойства index , title и url узла. Сведения о свойствах, которые может иметь узел, см. в описании bookmarks.BookmarkTreeNode.
Примеры
 Следующий код создаёт папку с названием «Закладки расширений». Первый аргумент метода create() задаёт свойства новой папки. Второй аргумент определяет функцию, которая будет выполнена после создания папки.
chrome.bookmarks.create(
  {'parentId': bookmarkBar.id, 'title': 'Extension bookmarks'},
  function(newFolder) {
    console.log("added folder: " + newFolder.title);
  },
);
Следующий фрагмент кода создаёт закладку, указывающую на документацию разработчика по расширениям. Поскольку ничего страшного не произойдёт, если закладка не будет создана, этот код не определяет функцию обратного вызова.
chrome.bookmarks.create({
  'parentId': extensionsFolderId,
  'title': 'Extensions doc',
  'url': 'https://developer.chrome.com/docs/extensions',
});
Чтобы опробовать этот API, установите пример API закладок из репозитория chrome-extension-samples .
Типы
BookmarkTreeNode
Узел (закладка или папка) в дереве закладок. Дочерние узлы упорядочены внутри родительской папки.
Характеристики
- детиBookmarkTreeNode [] необязательно Упорядоченный список дочерних узлов этого узла. 
- дата добавленияномер необязательно Когда этот узел был создан, в миллисекундах с начала эпохи ( new Date(dateAdded)).
- dateGroupModifiedномер необязательно Когда содержимое этой папки последний раз изменилось, в миллисекундах с начала эпохи. 
- датапоследнегоиспользованияномер необязательно Хром 114+Время последнего открытия этого узла (в миллисекундах с начала эпохи). Не задано для папок. 
- Тип_папкиFolderType (необязательно) Хром 134+Если присутствует, это папка, добавленная браузером и недоступная для изменения пользователем или расширением. Дочерние узлы могут быть изменены, если для этого узла не установлено свойство unmodifiable. Не указывается, если узел может быть изменен пользователем и расширением (по умолчанию).Папка каждого типа может содержать ноль, один или несколько узлов. Папку можно добавить или удалить через браузер, но не через API расширений. 
- идентификаторнить Уникальный идентификатор узла. Идентификаторы уникальны в пределах текущего профиля и остаются действительными даже после перезапуска браузера. 
- индексномер необязательно Положение этого узла (отсчет от 0) в родительской папке. 
- parentIdстрока необязательная idродительской папки. Не указывается для корневого узла.
- синхронизациябулев Хром 134+Синхронизируется ли этот узел с удалённым хранилищем учётной записи пользователя браузером. Это можно использовать для различения версий одного и того же FolderTypeдля учётной записи и локально. Значение этого свойства может измениться для существующего узла, например, в результате действий пользователя.Примечание: это значение указывает, сохранён ли узел во встроенном поставщике учётных записей браузера. Узел может быть синхронизирован через сторонний сервис, даже если это значение равно false. Для управляемых узлов (узлов, где unmodifiableимеет значениеtrue) это свойство всегда будетfalse.
- заголовокнить Текст, отображаемый для узла. 
- неизменяемый"удалось" 
 необязательныйУказывает причину, по которой этот узел не может быть изменён. Значение managedуказывает, что этот узел был настроен системным администратором или куратором контролируемого пользователя. Не указывается, если узел может быть изменён пользователем и расширением (по умолчанию).
- URL-адресстрока необязательная URL-адрес, на который пользователь переходит при нажатии на закладку. Не указывается для папок. 
BookmarkTreeNodeUnmodifiable
 Указывает причину, по которой этот узел не может быть изменён. Значение managed указывает, что этот узел был настроен системным администратором. Не указывается, если узел может быть изменён пользователем и расширением (по умолчанию). 
Ценить
 "удалось" 
CreateDetails
Объект передан функции create().
Характеристики
- индексномер необязательно 
- parentIdстрока необязательная По умолчанию это папка «Другие закладки». 
- заголовокстрока необязательная 
- URL-адресстрока необязательная 
FolderType
Указывает тип папки.
Перечисление
 "панель закладок"  "другой"  "мобильный"  "удалось"
 Папка, содержимое которой отображается в верхней части окна браузера. 
 Закладки, которые отображаются в полном списке закладок на всех платформах. 
 Закладки, как правило, доступны на мобильных устройствах пользователя, но могут быть изменены с помощью расширения или в менеджере закладок. 
 Папка верхнего уровня, которая может присутствовать, если системный администратор или хранитель контролируемого пользователя настроил закладки.
Характеристики
MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE
Операции записи закладок больше не ограничиваются Chrome.
Ценить
 1000000 
MAX_WRITE_OPERATIONS_PER_HOUR
Операции записи закладок больше не ограничиваются Chrome.
Ценить
 1000000 
Методы
create()
chrome.bookmarks.create(
bookmark: CreateDetails,
callback?: function,
): Promise<BookmarkTreeNode>
Создаёт закладку или папку с указанным parentId. Если url равен NULL или отсутствует, это будет папка.
Параметры
- закладка
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(result: BookmarkTreeNode) => void - результат
 
Возврат
- Обещание <BookmarkTreeNode> Хром 90+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
get()
chrome.bookmarks.get(
idOrIdList: string | [string, ...string[]],
callback?: function,
): Promise<BookmarkTreeNode[]>
Извлекает указанные BookmarkTreeNode.
Параметры
- idOrIdListстрока | [строка, ...строка[]] Один строковый идентификатор или массив строковых идентификаторов 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(results: BookmarkTreeNode[]) => void - результаты
 
Возврат
- Обещание< BookmarkTreeNode []> Хром 90+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getChildren()
chrome.bookmarks.getChildren(
id: string,
callback?: function,
): Promise<BookmarkTreeNode[]>
Извлекает дочерние элементы указанного идентификатора BookmarkTreeNode.
Параметры
- идентификаторнить 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(results: BookmarkTreeNode[]) => void - результаты
 
Возврат
- Обещание< BookmarkTreeNode []> Хром 90+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getRecent()
chrome.bookmarks.getRecent(
numberOfItems: number,
callback?: function,
): Promise<BookmarkTreeNode[]>
Извлекает недавно добавленные закладки.
Параметры
- количество элементовчисло Максимальное количество возвращаемых товаров. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(results: BookmarkTreeNode[]) => void - результаты
 
Возврат
- Обещание< BookmarkTreeNode []> Хром 90+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getSubTree()
chrome.bookmarks.getSubTree(
id: string,
callback?: function,
): Promise<BookmarkTreeNode[]>
Извлекает часть иерархии закладок, начиная с указанного узла.
Параметры
- идентификаторнить Идентификатор корня поддерева, который требуется извлечь. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(results: BookmarkTreeNode[]) => void - результаты
 
Возврат
- Обещание< BookmarkTreeNode []> Хром 90+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getTree()
chrome.bookmarks.getTree(
callback?: function,
): Promise<BookmarkTreeNode[]>
Извлекает всю иерархию закладок.
Параметры
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(results: BookmarkTreeNode[]) => void - результаты
 
Возврат
- Обещание< BookmarkTreeNode []> Хром 90+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
move()
chrome.bookmarks.move(
id: string,
destination: object,
callback?: function,
): Promise<BookmarkTreeNode>
Перемещает указанный BookmarkTreeNode в указанное место.
Параметры
- идентификаторнить 
- место назначенияобъект - индексномер необязательно 
- parentIdстрока необязательная 
 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(result: BookmarkTreeNode) => void - результат
 
Возврат
- Обещание <BookmarkTreeNode> Хром 90+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
remove()
chrome.bookmarks.remove(
id: string,
callback?: function,
): Promise<void>
Удаляет закладку или пустую папку закладок.
Параметры
- идентификаторнить 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 90+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
removeTree()
chrome.bookmarks.removeTree(
id: string,
callback?: function,
): Promise<void>
Рекурсивно удаляет папку с закладками.
Параметры
- идентификаторнить 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 90+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
search()
chrome.bookmarks.search(
query: string | object,
callback?: function,
): Promise<BookmarkTreeNode[]>
Поиск объектов BookmarkTreeNodes, соответствующих заданному запросу. Запросы, заданные с использованием объекта, возвращают объекты BookmarkTreeNodes, соответствующие всем указанным свойствам.
Параметры
- запросстрока | объект Либо строка слов и фраз в кавычках, сопоставляемых с URL-адресами и заголовками закладок, либо объект. Если это объект, можно указать свойства query,urlиtitle, и будут созданы закладки, соответствующие всем указанным свойствам.- запросстрока необязательная Строка слов и фраз в кавычках, сопоставляемых с URL-адресами и заголовками закладок. 
- заголовокстрока необязательная Название закладки; совпадает дословно. 
- URL-адресстрока необязательная URL-адрес закладки совпадает дословно. Обратите внимание, что у папок URL-адреса нет. 
 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(results: BookmarkTreeNode[]) => void - результаты
 
Возврат
- Обещание< BookmarkTreeNode []> Хром 90+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
update()
chrome.bookmarks.update(
id: string,
changes: object,
callback?: function,
): Promise<BookmarkTreeNode>
Обновляет свойства закладки или папки. Укажите только те свойства, которые вы хотите изменить; неуказанные свойства останутся без изменений. Примечание: в настоящее время поддерживаются только «title» и «url».
Параметры
- идентификаторнить 
- измененияобъект - заголовокстрока необязательная 
- URL-адресстрока необязательная 
 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(result: BookmarkTreeNode) => void - результат
 
Возврат
- Обещание <BookmarkTreeNode> Хром 90+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
События
onChanged
chrome.bookmarks.onChanged.addListener(
callback: function,
)
Срабатывает при изменении закладки или папки. Примечание: в настоящее время это происходит только при изменении заголовка и URL.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(id: string, changeInfo: object) => void - идентификаторнить 
- changeInfoобъект - заголовокнить 
- URL-адресстрока необязательная 
 
 
onChildrenReordered
chrome.bookmarks.onChildrenReordered.addListener(
callback: function,
)
Вызывается, когда порядок дочерних элементов папки изменился из-за сортировки в пользовательском интерфейсе. Это событие не вызывается в результате выполнения метода move().
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(id: string, reorderInfo: object) => void - идентификаторнить 
- reorderInfoобъект - childIdsнить[] 
 
 
onCreated
chrome.bookmarks.onCreated.addListener(
callback: function,
)
Срабатывает при создании закладки или папки.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(id: string, bookmark: BookmarkTreeNode) => void - идентификаторнить 
- закладка
 
onImportBegan
chrome.bookmarks.onImportBegan.addListener(
callback: function,
)
Срабатывает при начале сеанса импорта закладок. Затратные наблюдатели должны игнорировать обновления onCreated до срабатывания onImportEnded. Наблюдатели по-прежнему должны обрабатывать остальные уведомления немедленно.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:() => void 
onImportEnded
chrome.bookmarks.onImportEnded.addListener(
callback: function,
)
Срабатывает по завершении сеанса импорта закладок.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:() => void 
onMoved
chrome.bookmarks.onMoved.addListener(
callback: function,
)
Срабатывает при перемещении закладки или папки в другую родительскую папку.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(id: string, moveInfo: object) => void - идентификаторнить 
- moveInfoобъект - индексчисло 
- старыйИндексчисло 
- oldParentIdнить 
- parentIdнить 
 
 
onRemoved
chrome.bookmarks.onRemoved.addListener(
callback: function,
)
Срабатывает при удалении закладки или папки. При рекурсивном удалении папки срабатывает одно уведомление для неё и ни одного для её содержимого.
Параметры
- перезвонитьфункция Параметр callbackвыглядит так:(id: string, removeInfo: object) => void - идентификаторнить 
- removeInfoобъект - индексчисло 
- узелХром 48+
- parentIdнить