Further fixes for fallback error handler

Layout improvements as well as an check for ErrorEvent.error as it is
not standardized.
This commit is contained in:
Samuel Mannehed 2016-11-28 12:33:42 +01:00
parent 38d8cfdf83
commit d8ff7c9ed6
3 changed files with 38 additions and 7 deletions

View File

@ -205,10 +205,27 @@ input[type=button]:active, select:active {
visibility: visible; visibility: visible;
opacity: 1; opacity: 1;
} }
#noVNC_fallback_errormsg { #noVNC_fallback_errormsg {
font-weight: normal; 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 * Control Bar
* ---------------------------------------- * ----------------------------------------

View File

@ -26,16 +26,29 @@ var UI;
"use strict"; "use strict";
// Fallback for all uncought errors // Fallback for all uncought errors
window.addEventListener('error', function(e) { window.addEventListener('error', function(event) {
try { try {
var file = e.filename; var msg = "";
var line = e.lineno;
var col = e.colno; msg += "<div>";
var msg = e.error.message; 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') document.getElementById('noVNC_fallback_error')
.classList.add("noVNC_open"); .classList.add("noVNC_open");
document.getElementById('noVNC_fallback_errormsg').innerHTML = document.getElementById('noVNC_fallback_errormsg').innerHTML = msg;
msg + '<br><br>' + 'at: ' + file + ':' + line + ':' + col;
} catch (exc) { } catch (exc) {
document.write("noVNC encountered an error."); document.write("noVNC encountered an error.");
} }

View File

@ -68,6 +68,7 @@
<div id="noVNC_fallback_error"> <div id="noVNC_fallback_error">
<div>noVNC encountered an error:</div> <div>noVNC encountered an error:</div>
<br>
<div id="noVNC_fallback_errormsg"></div> <div id="noVNC_fallback_errormsg"></div>
</div> </div>