Fix error handling for screenshot captures (#777)

This commit is contained in:
toasted-nutbread 2020-09-06 14:36:43 -04:00 committed by GitHub
parent 44f38c4dea
commit b28241dbf2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 5 deletions

View File

@ -537,8 +537,15 @@ class Backend {
}
const windowId = sender.tab.windowId;
return new Promise((resolve) => {
chrome.tabs.captureVisibleTab(windowId, options, (dataUrl) => resolve(dataUrl));
return new Promise((resolve, reject) => {
chrome.tabs.captureVisibleTab(windowId, options, (dataUrl) => {
const e = chrome.runtime.lastError;
if (e) {
reject(new Error(e.message));
} else {
resolve(dataUrl);
}
});
});
}

View File

@ -1049,9 +1049,11 @@ class Display extends EventDispatcher {
const details = {};
if (this._noteUsesScreenshot(mode)) {
const screenshot = await this._getScreenshot();
if (screenshot) {
try {
const screenshot = await this._getScreenshot();
details.screenshot = screenshot;
} catch (e) {
// NOP
}
}
@ -1155,7 +1157,6 @@ class Display extends EventDispatcher {
const {format, quality} = this._options.anki.screenshot;
const dataUrl = await api.screenshotGet({format, quality});
if (!dataUrl || dataUrl.error) { return; }
return {dataUrl, format};
} finally {