The onChanged() event of the downloads API is fired when any of a downloads.DownloadItem's properties changes (except for bytesReceived).
The listener is passed a downloadDelta as a parameter — an object containing the downloadId of the downloads.DownloadItem object in question, plus the status of all the properties that changed.
browser.downloads.onChanged.addListener(listener) browser.downloads.onChanged.removeListener(listener) browser.downloads.onChanged.hasListener(listener)
Events have three functions:
addListener(callback)removeListener(listener)listener argument is the listener to remove.hasListener(listener)listener is registered for this event. Returns true if it is listening, false otherwise.callbackA callback function that will be called when this event occurs. This function will be passed the following arguments:
downloadDeltaobject representing the downloads.DownloadItem object that changed, and the status of all the properties that changed in it.The downloadDelta object has the following properties available:
idinteger representing the id of the downloads.DownloadItem that changed.urlOptional
downloads.StringDelta object describing a change in a downloads.DownloadItem's url.filenameOptional
downloads.StringDelta object describing a change in a downloads.DownloadItem's filename.dangerOptional
downloads.StringDelta object describing a change in a downloads.DownloadItem's danger.mimeOptional
downloads.StringDelta object describing a change in a downloads.DownloadItem's mime.startTimeOptional
downloads.StringDelta object describing a change in a downloads.DownloadItem's startTime.endTimeOptional
downloads.StringDelta object describing a change in a downloads.DownloadItem's endTime.stateOptional
downloads.StringDelta object describing a change in a downloads.DownloadItem's state.canResumeOptional
downloads.BooleanDelta object describing a change in a downloads.DownloadItem's canResume status.pausedOptional
downloads.BooleanDelta object describing a change in a downloads.DownloadItem's paused status.errorOptional
downloads.StringDelta object describing a change in a downloads.DownloadItem's error status.totalBytesOptional
downloads.DoubleDelta object describing a change in a downloads.DownloadItem's totalBytes.fileSizeOptional
downloads.DoubleDelta object describing a change in a downloads.DownloadItem's fileSize.existsOptional
downloads.BooleanDelta object describing a change in a downloads.DownloadItem's exists status.| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
onChanged |
Yes |
79 |
47 |
? |
Yes |
No |
? |
? |
48-79 |
? |
? |
? |
Log a message when downloads complete:
function handleChanged(delta) { if (delta.state && delta.state.current === "complete") { console.log(`Download ${delta.id} has completed.`); } } browser.downloads.onChanged.addListener(handleChanged);
Note: 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.
© 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/downloads/onChanged