tabs.captureVisibleTab()

Creates a data URI encoding an image of the visible area of the currently active tab in the specified window. You must have the <all_urls> permission to use this method.

This is an asynchronous function that returns a Promise.

Syntax

var capturing = browser.tabs.captureVisibleTab(
  windowId,               // optional integer
  options                 // optional extensionTypes.ImageDetails
)

Parameters

windowIdOptional
integer. The target window. Defaults to the current window.
optionsOptional
extensionTypes.ImageDetails.

Values of this type are objects. They contain the following properties:

formatOptional
extensionTypes.ImageFormat. The format of the resulting image. Default is "jpeg".
qualityOptional
integer. When format is "jpeg", this controls the quality of the resulting image. It is a number between 0 and 100, which is converted to a value between 0 and 1 and then used as the encoderOptions argument to HTMLCanvasElement.toDataURL(). If is is omitted, 92 is used. As quality is decreased, the resulting image will have more visual artifacts, and the number of bytes needed to store it will decrease. This value is ignored for PNG images.

Return value

A Promise that will be fulfilled with a data URL which encodes an image of the visible area of the captured tab. May be assigned to the 'src' property of an HTML Image element for display. If any error occurs the promise will be rejected with an error message.

Browser compatibility

ChromeEdgeFirefoxFirefox for AndroidOpera
Basic supportYes154754Yes

Examples

Capture an image of the active tab in the current window, with default settings:

function onCaptured(imageUri) {
  console.log(imageUri);
}
function onError(error) {
  console.log(`Error: ${error}`);
}
browser.browserAction.onClicked.addListener(function() {
  var capturing = browser.tabs.captureVisibleTab();
  capturing.then(onCaptured, onError);
});

Acknowledgements

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.

Document Tags and Contributors

 Contributors to this page: wbamberg, Makyen, kmaglione
 Last updated by: wbamberg,