downloads.erase()

The erase() function of the downloads API erases matching DownloadItems from the browser's download history, without deleting the downloaded files from disk.

To remove the files from disk, you need to use downloads.removeFile().

Note: If you want to remove a downloaded file from disk and erase it from history, you have to call downloads.removeFile() before you call erase(). If you try it the other way around you'll get an error when calling downloads.removeFile(), because it no longer exists according to the browser.

Syntax

chrome.downloads.erase(
  query,                    // DownloadQuery
  function(erasedIds) {...} // optional function
)

This API is also available as browser.downloads.erase() in a version that returns a promise.

Parameters

query
A downloads.DownloadQuery object.

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

queryOptional
An array of strings. Include only DownloadItems whose filename or url contains all of the given strings. You can also include terms beginning with a dash (-) — these terms must not be contained in the item's filename or url for it to be included.
startedBeforeOptional
A DownloadTime. Include only DownloadItems that started before the given time.
startedAfterOptional
A DownloadTime. Include only DownloadItems that started after the given time.
endedBeforeOptional
A DownloadTime. Include only DownloadItems that ended before the given time.
endedAfterOptional
A DownloadTime. Include only DownloadItems that ended after the given time.
totalBytesGreaterOptional
A number representing a number of bytes. Include only DownloadItems whose totalBytes is greater than the given number.
totalBytesLessOptional
A number representing a number of bytes. Include only DownloadItems whose totalBytes is less than the given number.
filenameRegexOptional
A string representing a regular expression. Include only DownloadItems whose filename value matches the given regular expression.
urlRegexOptional
A string representing a regular expression. Include only DownloadItems whose url value matches the given regular expression.
limitOptional
An integer representing a number of results. Include only the specified number of DownloadItems.
orderByOptional
An array of strings representing DownloadItem properties the search results should be sorted by. For example, including startTime then totalBytes in the array would sort the DownloadItems by their start time, then total bytes — in ascending order. To specify sorting by a property in descending order, prefix it with a hyphen, for example -startTime.
idOptional
An integer representing the ID of the downloads.DownloadItem you want to query.
urlOptional
A string representing the absolute URL that the download was initiated from, before any redirects.
filenameOptional
A string representing the absolute local path of the download file you want to query.
dangerOptional
A string representing a downloads.DangerType — include only DownloadItems with this danger value.
mimeOptional
A string representing a MIME type. Include only DownloadItems with this mime value.
startTimeOptional
A string representing an ISO 8601 format time. Include only DownloadItems with this startTime value.
endTimeOptional
A string representing an ISO 8601 format time. Include only will limited to DownloadItems with this endTime value.
stateOptional
A string representing a download downloads.State (in_progress, interrupted, or complete). Include onlyDownloadItems with this state value.
pausedOptional
A boolean that indicates whether a download is paused — i.e. has stopped reading data from the host, but kept the connection open (true), or not (false). Include only DownloadItems with this paused value.
errorOptional
A string representing an downloads.InterruptReason — a reason why a download was interrupted. Include only DownloadItems with this error value.
bytesReceivedOptional
A number representing the number of bytes received so far from the host, without considering file compression. Include only DownloadItems with this bytesReceived value.
totalBytesOptional
A number representing the total number of bytes in the downloaded file, without considering file compression. Include only DownloadItems with this totalBytes value.
fileSizeOptional
number. Number of bytes in the whole file post-decompression, or -1 if unknown. A number representing the total number of bytes in the file after decompression. Include only DownloadItems with this fileSize value.
existsOptional
A boolean indicating whether a downloaded file still exists (true) or not (false). Include only DownloadItems with this exists value.
function() {}Optional
An optional callback function, which when included is invoked when the erase() call completes. The function is passed the following arguments:
erasedIds
An array of integers representing the ids of the erased DownloadItems.

Browser compatibility

Chrome Edge Firefox Firefox for Android Opera
Basic support Yes No 48.0 48.0 33

Examples

The following snippet (taken from our latest-download example) shows the code that is run when the remove item button is pressed. Here we invoke both the erase() and downloads.removeFile() functions, which remove the file from the download history, and from the actual disk, respectively.

function removeItem() {
  if (!document.querySelector("#remove").classList.contains("disabled")) {
    chrome.downloads.removeFile(latestDownloadId);
    chrome.downloads.erase({id: latestDownloadId});
    window.close();
  }
}

This pattern works for cases where you've got a single item to erase/remove.

To erase groups of items, use the relevant options in the query parameter. For example, to erase everything, pass {}:

function onForgot(items) {
  console.log("Forgot: " + items.length + " items.");
}

var forgetAllButton = document.querySelector("#forget-all");

forgetAllButton.onclick = function() {
  chrome.downloads.erase({}, onForgot);
}

Example add-ons

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