downloads.onChanged
The onChanged() event of the {{WebExtAPIRef("downloads")}} API is fired when any of a {{WebExtAPIRef('downloads.DownloadItem')}} 's properties changes (except for bytesReceived).
The listener is passed a downloadDelta as a parameter — an object containing the downloadId of the {{WebExtAPIRef('downloads.DownloadItem')}} object in question, plus the status of all the properties that changed.
Syntax
browser.downloads.onChanged.addListener(listener)
browser.downloads.onChanged.removeListener(listener)
browser.downloads.onChanged.hasListener(listener)
Events have three functions:
addListener(listener)- : Adds a listener to this event.
removeListener(listener)- : Stop listening to this event. The
listenerargument is the listener to remove.
- : Stop listening to this event. The
hasListener(listener)- : Check whether a given
listeneris registered for this event. Returnstrueif it is listening,falseotherwise.
- : Check whether a given
addListener syntax
Parameters
listener- : The function called when this event occurs. This function will be passed this argument:
downloadDelta- : An
objectrepresenting the{{WebExtAPIRef('downloads.DownloadItem')}}object that changed, and the status of all the properties that changed in it. See the downloadDelta section for more details.
- : An
- : The function called when this event occurs. This function will be passed this argument:
Additional objects
downloadDelta
The downloadDelta object has the following properties available:
id- : An
integerrepresenting theidof the{{WebExtAPIRef('downloads.DownloadItem')}}that changed.
- : An
url{{optional_inline}}- : A
{{WebExtAPIRef('downloads.StringDelta')}}object describing a change in a{{WebExtAPIRef('downloads.DownloadItem')}}'surl.
- : A
filename{{optional_inline}}- : A
{{WebExtAPIRef('downloads.StringDelta')}}object describing a change in a{{WebExtAPIRef('downloads.DownloadItem')}}'sfilename.
- : A
danger{{optional_inline}}- : A
{{WebExtAPIRef('downloads.StringDelta')}}object describing a change in a{{WebExtAPIRef('downloads.DownloadItem')}}'sdanger.
- : A
mime{{optional_inline}}- : A
{{WebExtAPIRef('downloads.StringDelta')}}object describing a change in a{{WebExtAPIRef('downloads.DownloadItem')}}'smime.
- : A
startTime{{optional_inline}}- : A
{{WebExtAPIRef('downloads.StringDelta')}}object describing a change in a{{WebExtAPIRef('downloads.DownloadItem')}}'sstartTime.
- : A
endTime{{optional_inline}}- : A
{{WebExtAPIRef('downloads.StringDelta')}}object describing a change in a{{WebExtAPIRef('downloads.DownloadItem')}}'sendTime.
- : A
state{{optional_inline}}- : A
{{WebExtAPIRef('downloads.StringDelta')}}object describing a change in a{{WebExtAPIRef('downloads.DownloadItem')}}'sstate.
- : A
canResume{{optional_inline}}- : A
{{WebExtAPIRef('downloads.BooleanDelta')}}object describing a change in a{{WebExtAPIRef('downloads.DownloadItem')}}'scanResumestatus.
- : A
paused{{optional_inline}}- : A
{{WebExtAPIRef('downloads.BooleanDelta')}}object describing a change in a{{WebExtAPIRef('downloads.DownloadItem')}}'spausedstatus.
- : A
error{{optional_inline}}- : A
{{WebExtAPIRef('downloads.StringDelta')}}object describing a change in a{{WebExtAPIRef('downloads.DownloadItem')}}'serrorstatus.
- : A
totalBytes{{optional_inline}}- : A
{{WebExtAPIRef('downloads.DoubleDelta')}}object describing a change in a{{WebExtAPIRef('downloads.DownloadItem')}}'stotalBytes.
- : A
fileSize{{optional_inline}}- : A
{{WebExtAPIRef('downloads.DoubleDelta')}}object describing a change in a{{WebExtAPIRef('downloads.DownloadItem')}}'sfileSize.
- : A
exists{{optional_inline}}- : A
{{WebExtAPIRef('downloads.BooleanDelta')}}object describing a change in a{{WebExtAPIRef('downloads.DownloadItem')}}'sexistsstatus.
- : A
Examples
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);
{{WebExtExamples}}
Browser compatibility
{{Compat}}
[!NOTE] This API is based on Chromium’s
chrome.downloadsAPI.