function onResponse(response) { if (!response.success) { console.error("Error setting attributes"); } } function onError(error) { console.log(`Error: ${error}`); } function handleChanged(delta) { if (delta.state && delta.state.current === "complete") { browser.downloads .search({ id: delta.id, }).then(downloads => { let download = downloads[0]; browser.runtime.sendNativeMessage("originfox", { path: download.filename, origin: download.url, referrer: download.referrer, }).then(onResponse, onError); }); } } browser.downloads.onChanged.addListener(handleChanged);