bookmarks.getSubTree()

The bookmarks.getSubTree() method asynchronously retrieves a bookmarks.BookmarkTreeNode, given its ID.

If the item is a folder, you can access all its descendants recursively using its children property and the children property of its descendants, if they are themselves folders.

This is an asynchronous function that returns a Promise.

Syntax

js
let gettingSubTree = browser.bookmarks.getSubTree(
  id                     // string
)

Parameters

id

A string specifying the ID of the root of the subtree to retrieve.

Return value

A Promise that is fulfilled with an array containing an object, a bookmarks.BookmarkTreeNode object, representing the item with the given ID.

If a node corresponding to id could not be found, the promise will be rejected with an error message.

Examples

This example recursively prints out the subtree under a given node:

js
function makeIndent(indentLength) {
  return ".".repeat(indentLength);
}

function logItems(bookmarkItem, indent) {
  if (bookmarkItem.url) {
    console.log(makeIndent(indent) + bookmarkItem.url);
  } else {
    console.log(`${makeIndent(indent)}Folder: ${bookmarkItem.id}`);
    indent++;
  }
  if (bookmarkItem.children) {
    for (const child of bookmarkItem.children) {
      logItems(child, indent);
    }
  }
}

function logSubTree(bookmarkItems) {
  logItems(bookmarkItems[0], 0);
}

function onRejected(error) {
  console.log(`An error: ${error}`);
}

let subTreeID = "root_____";

browser.bookmarks.getSubTree(subTreeID).then(logSubTree, onRejected);

Browser compatibility

BCD tables only load in the browser

Note: This API is based on Chromium's chrome.bookmarks API. This documentation is derived from bookmarks.json in the Chromium code.