fix: revoke object URL on download completion
This commit is contained in:
+13
-2
@@ -33,6 +33,17 @@ async function generatePdf(data) {
|
||||
const url = URL.createObjectURL(blob);
|
||||
const name = (data.header && data.header.fullName) || 'Student';
|
||||
const filename = 'Study Load - ' + name + '.pdf';
|
||||
await browser.downloads.download({ url, filename, saveAs: true });
|
||||
setTimeout(() => URL.revokeObjectURL(url), 10000);
|
||||
try {
|
||||
const id = await browser.downloads.download({ url, filename, saveAs: true });
|
||||
const onChanged = (delta) => {
|
||||
if (delta.id === id && delta.state && (delta.state.current === 'complete' || delta.state.current === 'interrupted')) {
|
||||
browser.downloads.onChanged.removeListener(onChanged);
|
||||
URL.revokeObjectURL(url);
|
||||
}
|
||||
};
|
||||
browser.downloads.onChanged.addListener(onChanged);
|
||||
} catch (err) {
|
||||
URL.revokeObjectURL(url);
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user