bookmarks.move()

The bookmarks.move() method moves the specified BookmarkTreeNode to the specified destination within the tree of bookmarks. This lets you move a bookmark to a new folder and/or position within the folder.

Warning: If your extension attempts to move a bookmark into the bookmarks tree root node, the call will raise an error with the message: "The bookmark root cannot be modified" and the move won't be completed.

This is an asynchronous function that returns a Promise.

Syntax

js
let movingBookmark = browser.bookmarks.move(
  id,                    // string
  destination           // object
)

Parameters

id

A string containing the ID of the bookmark or folder to move.

destination

An object which specifies the destination for the bookmark. This object must contain one or both of the following fields:

parentId Optional

A string which specifies the ID of the destination folder. If this value is left out, the bookmark is moved to a new location within its current folder.

index Optional

A 0-based index specifying the position within the folder to which to move the bookmark. A value of 0 moves the bookmark to the top of the folder. If this value is omitted, the bookmark is placed at the end of the new parent folder.

Return value

A Promise that will be fulfilled with a single bookmarks.BookmarkTreeNode object, describing the moved node.

If the node corresponding to the id parameter can't be found, the promise is rejected with an error message.

Note: If you move multiple bookmarks, because this API is asynchronous, the move calls may get processed in any order. Consequently, the value of each bookmark's index returned in BookmarkTreeNode may change or be unknown until all the move calls are completed. If the index associated with a bookmark matters to your extension, then – when moving multiple bookmarks – the extension should wait for each bookmarks.move call to complete before moving the next bookmark. Waiting ensures that the index associated with each bookmark is not affected by a move call executing concurrently while the original call is in progress.

Examples

This example moves a bookmark so that it's the first bookmark in its current folder.

js
function onMoved(bookmarkItem) {
  console.log(bookmarkItem.index);
}

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

let bookmarkId = "abcdefghijkl";

let movingBookmark = browser.bookmarks.move(bookmarkId, { index: 0 });
movingBookmark.then(onMoved, 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.