tabs.duplicate()

Duplicates a tab, given its ID.

This is an asynchronous function that returns a Promise.

Syntax

var duplicating = browser.tabs.duplicate(
  tabId,              // integer
  duplicateProperties // optional object
)

Parameters

tabId
integer. The ID of the tab to be duplicated.
duplicateProperties Optional
object. An object describing how the tab is duplicated. It contains the following properties:
index Optional
integer. The position of the new tab in the window. The value is constrained to the range zero to the number of tabs in the window.
active Optional

boolean. Whether the tab becomes the active tab in the window. Does not affect whether the window is focused. Defaults to true.

Return value

A Promise that will be fulfilled with a tabs.Tab object containing details about the duplicated tab. The Tab object only contains url, title and favIconUrl if the extension has the "tabs" permission or matching host permissions. If any error occurs the promise will be rejected with an error message.

Note: Beginning with Firefox 68, the promise returned by browser.tabs.duplicate() resolves as soon as the tab has been duplicated. Previously, the promise only resolved once the tab had fully been loaded.

Examples

Duplicate the first tab, and then log the ID of the newly created tab:

function onDuplicated(tabInfo) {
  console.log(tabInfo.id);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

// Duplicate the first tab in the array
function duplicateFirstTab(tabs) {
  console.log(tabs);
  if (tabs.length > 0) {
    var duplicating = browser.tabs.duplicate(tabs[0].id);
    duplicating.then(onDuplicated, onError);
  }
}

// Query for all open tabs
var querying = browser.tabs.query({});
querying.then(duplicateFirstTab, onError);

Example extensions

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
duplicate
Yes
79
47
?
Yes
14
?
?
No
?
?
?
duplicateProperties
No
No
77
?
No
No
?
?
No
?
?
?
tabId
Yes
79
47
?
Yes
Yes
?
?
No
?
?
?

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

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/duplicate