downloads.search()

The search() function of the downloads API queries the DownloadItems available in the browser's downloads manager, and returns those that match the specified search criteria.

This is an asynchronous function that returns a Promise.

Syntax

var searching = browser.downloads.search(query);

Parameters

query
A downloads.DownloadQuery object.

Return value

A Promise. The promise is fulfilled with an array of downloads.DownloadItem objects that match the given criteria.

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxOperaFirefox for Android
Basic supportChrome Full support YesEdge No support NoFirefox Full support 47Opera Full support YesFirefox Android Full support 48

Legend

Full support  
Full support
No support  
No support

Examples

In general, you restrict the items retrieved using the query parameter.

Get downloads matching "query"

function logDownloads(downloads) {
  for (let download of downloads) {
    console.log(download.id);
    console.log(download.url);
  }
}

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

var searching = browser.downloads.search({
  query:["imgur"]
});

searching.then(logDownloads, onError);

Get a specific item

To get a specific DownloadItem, the easiest way is to set only the id field, as seen in the snippet below:

function logDownloads(downloads) {
  for (let download of downloads) {
    console.log(download.id);
    console.log(download.url);
  }
}

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

var id = 13;

var searching = browser.downloads.search({id});
searching.then(logDownloads, onError);

Get all downloads

If you want to return all DownloadItems, set query to an empty object.

function logDownloads(downloads) {
  for (let download of downloads) {
    console.log(download.id);
    console.log(download.url);
  }
}

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

var searching = browser.downloads.search({});
searching.then(logDownloads, onError);

Get the most recent download

You can get the most recent download by specifying the following search parameters:

function logDownloads(downloads) {
  for (let download of downloads) {
    console.log(download.id);
    console.log(download.url);
  }
}

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

var searching = browser.downloads.search({
   limit: 1,
   orderBy: ["-startTime"]
});
searching.then(logDownloads, onError);

You can see this code in action in our latest-download example.

Example extensions

Acknowledgements

This API is based on Chromium's chrome.downloads API.

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, erosman, CaemU, Makyen, chrisdavidmills
Last updated by: wbamberg,