diff options
author | Samuel Mannehed <samuel@cendio.se> | 2016-11-28 12:33:42 +0100 |
---|---|---|
committer | Samuel Mannehed <samuel@cendio.se> | 2016-11-28 12:33:42 +0100 |
commit | d8ff7c9ed6217b09520b603c3e703fe995628bde (patch) | |
tree | 9ebe6623dc6332ff74f737ceae450d5657da2ce0 | |
parent | 38d8cfdf835a297515aa4e2a19f11cb730018c55 (diff) | |
download | novnc-d8ff7c9ed6217b09520b603c3e703fe995628bde.tar.gz |
Further fixes for fallback error handler
Layout improvements as well as an check for ErrorEvent.error as it is
not standardized.
-rw-r--r-- | app/styles/base.css | 17 | ||||
-rw-r--r-- | app/ui.js | 27 | ||||
-rw-r--r-- | vnc.html | 1 |
3 files changed, 38 insertions, 7 deletions
diff --git a/app/styles/base.css b/app/styles/base.css index b90bcb2..a580f2b 100644 --- a/app/styles/base.css +++ b/app/styles/base.css @@ -205,10 +205,27 @@ input[type=button]:active, select:active { visibility: visible; opacity: 1; } + #noVNC_fallback_errormsg { font-weight: normal; } +#noVNC_fallback_error .noVNC_location { + font-style: italic; + font-size: 0.8em; + color: rgba(255, 255, 255, 0.8); +} + +#noVNC_fallback_error .noVNC_stack { + padding: 10px; + margin: 10px; + font-size: 0.8em; + text-align: left; + white-space: pre; + border: 1px solid rgba(0, 0, 0, 0.5); + background: rgba(0, 0, 0, 0.2); +} + /* ---------------------------------------- * Control Bar * ---------------------------------------- @@ -26,16 +26,29 @@ var UI; "use strict"; // Fallback for all uncought errors - window.addEventListener('error', function(e) { + window.addEventListener('error', function(event) { try { - var file = e.filename; - var line = e.lineno; - var col = e.colno; - var msg = e.error.message; + var msg = ""; + + msg += "<div>"; + msg += event.message; + msg += "</div>"; + + msg += " <div class=\"noVNC_location\">"; + msg += event.filename; + msg += ":" + event.lineno + ":" + event.colno; + msg += "</div>"; + + if ((event.error !== undefined) && + (event.error.stack !== undefined)) { + msg += "<div class=\"noVNC_stack\">"; + msg += event.error.stack; + msg += "</div>"; + } + document.getElementById('noVNC_fallback_error') .classList.add("noVNC_open"); - document.getElementById('noVNC_fallback_errormsg').innerHTML = - msg + '<br><br>' + 'at: ' + file + ':' + line + ':' + col; + document.getElementById('noVNC_fallback_errormsg').innerHTML = msg; } catch (exc) { document.write("noVNC encountered an error."); } @@ -68,6 +68,7 @@ <div id="noVNC_fallback_error"> <div>noVNC encountered an error:</div> + <br> <div id="noVNC_fallback_errormsg"></div> </div> |