diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-09-06 14:36:43 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-06 14:36:43 -0400 | 
| commit | b28241dbf23b627e252348aa0445e4e7befe01fc (patch) | |
| tree | 7fe05589ccdc2a3e6fb1b8df0dfb4c85fb0a4bc9 | |
| parent | 44f38c4dea6d517bb7657063ed2394745945c1f8 (diff) | |
Fix error handling for screenshot captures (#777)
| -rw-r--r-- | ext/bg/js/backend.js | 11 | ||||
| -rw-r--r-- | ext/mixed/js/display.js | 7 | 
2 files changed, 13 insertions, 5 deletions
diff --git a/ext/bg/js/backend.js b/ext/bg/js/backend.js index 2c741dd7..a9ef4ce4 100644 --- a/ext/bg/js/backend.js +++ b/ext/bg/js/backend.js @@ -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); +                } +            });          });      } diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index ce7a4385..4c058948 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -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 {  |