Removes a menu item.

For compatibility with other browsers, Firefox makes this method available via the contextMenus namespace as well as the menus namespace.

This is an asynchronous function that returns a Promise.


let removing = browser.menus.remove(
  menuItemId      // integer or string


integer or string. The ID of the menu item to remove.

Return value

A Promise that will be fulfilled with no arguments if removal was successful, or rejected with an error message if removal failed (for example, because the item could not be found).


This extension adds a menu item labeled "Remove me!". If you click the item, the extension removes it.

function onRemoved() {
  console.log("item removed successfully");

function onError() {
  console.log("error removing item:", browser.runtime.lastError);

  id: "remove-me",
  title: "Remove me!",
  contexts: ["all"],

browser.menus.onClicked.addListener((info, tab) => {
  if (info.menuItemId === "remove-me") {
    let removing = browser.menus.remove(info.menuItemId);
    removing.then(onRemoved, onError);

Example extensions

Browser compatibility

BCD tables only load in the browser

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