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
let searching = browser.downloads.search(query);
Parameters
query
-
A
downloads.DownloadQuery
object.
Return value
A Promise
. The promise is fulfilled with an array
of
objects that match the given criteria.downloads.DownloadItem
Browser compatibility
BCD tables only load in the browser
Examples
In general, you restrict the items retrieved using the query
parameter.
Get downloads matching "query"
function logDownloads(downloads) {
for (const download of downloads) {
console.log(download.id);
console.log(download.url);
}
}
function onError(error) {
console.log(`Error: ${error}`);
}
browser.downloads
.search({
query: ["imgur"],
})
.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 (const download of downloads) {
console.log(download.id);
console.log(download.url);
}
}
function onError(error) {
console.log(`Error: ${error}`);
}
const id = 13;
browser.downloads.search({ id }).then(logDownloads, onError);
Get all downloads
If you want to return all DownloadItems
, set query
to an empty object.
function logDownloads(downloads) {
for (const download of downloads) {
console.log(download.id);
console.log(download.url);
}
}
function onError(error) {
console.log(`Error: ${error}`);
}
browser.downloads.search({}).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 (const download of downloads) {
console.log(download.id);
console.log(download.url);
}
}
function onError(error) {
console.log(`Error: ${error}`);
}
browser.downloads
.search({
limit: 1,
orderBy: ["-startTime"],
})
.then(logDownloads, onError);
You can see this code in action in our latest-download example.
Example extensions
Note: This API is based on Chromium's chrome.downloads
API.