diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-10-08 21:33:10 -0400 | 
|---|---|---|
| committer | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-10-08 22:38:05 -0400 | 
| commit | c5d6b9452d1bfa51a5fef9a19082d115ef180a9b (patch) | |
| tree | 17f9a1bdd2b09937b776127a1764a3c9067082cf | |
| parent | 6a6e200ef947b92576351e39fc30b6653a576d70 (diff) | |
Create utility function for logging errors
| -rw-r--r-- | ext/bg/js/search.js | 2 | ||||
| -rw-r--r-- | ext/fg/js/float.js | 2 | ||||
| -rw-r--r-- | ext/fg/js/frontend.js | 2 | ||||
| -rw-r--r-- | ext/mixed/js/extension.js | 18 | 
4 files changed, 21 insertions, 3 deletions
| diff --git a/ext/bg/js/search.js b/ext/bg/js/search.js index 52adab16..ead9ba6f 100644 --- a/ext/bg/js/search.js +++ b/ext/bg/js/search.js @@ -53,7 +53,7 @@ class DisplaySearch extends Display {      }      onError(error) { -        window.alert(`Error: ${error.toString ? error.toString() : error}`); +        logError(error, true);      }      onSearchClear() { diff --git a/ext/fg/js/float.js b/ext/fg/js/float.js index 88842eef..8fdb6925 100644 --- a/ext/fg/js/float.js +++ b/ext/fg/js/float.js @@ -37,7 +37,7 @@ class DisplayFloat extends Display {          if (window.yomichan_orphaned) {              this.onOrphaned();          } else { -            window.alert(`Error: ${error.toString ? error.toString() : error}`); +            logError(error, true);          }      } diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index 39433afb..88cb93a9 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -228,7 +228,7 @@ class Frontend {      }      onError(error) { -        console.log(error); +        logError(error, false);      }      setEnabled(enabled) { diff --git a/ext/mixed/js/extension.js b/ext/mixed/js/extension.js index 5e925124..861e52a5 100644 --- a/ext/mixed/js/extension.js +++ b/ext/mixed/js/extension.js @@ -68,6 +68,24 @@ function jsonToError(jsonError) {      return error;  } +function logError(error, alert) { +    const manifest = chrome.runtime.getManifest(); +    let errorMessage = `${manifest.name} v${manifest.version} has encountered an error.\n`; +    errorMessage += `Originating URL: ${window.location.href}\n`; + +    const errorString = `${error.toString ? error.toString() : error}`; +    const stack = `${error.stack}`.trimRight(); +    errorMessage += (!stack.startsWith(errorString) ? `${errorString}\n${stack}` : `${stack}`); + +    errorMessage += '\n\nIssues can be reported at https://github.com/FooSoft/yomichan/issues'; + +    console.error(errorMessage); + +    if (alert) { +        window.alert(`${errorString}\n\nCheck the developer console for more details.`); +    } +} +  const EXTENSION_IS_BROWSER_EDGE = (      extensionHasBrowser() &&      (!extensionHasChrome() || (typeof chrome.runtime === 'undefined' && typeof browser.runtime !== 'undefined')) |