summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Mannehed <samuel@cendio.se>2016-11-28 12:33:42 +0100
committerSamuel Mannehed <samuel@cendio.se>2016-11-28 12:33:42 +0100
commitd8ff7c9ed6217b09520b603c3e703fe995628bde (patch)
tree9ebe6623dc6332ff74f737ceae450d5657da2ce0
parent38d8cfdf835a297515aa4e2a19f11cb730018c55 (diff)
downloadnovnc-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.css17
-rw-r--r--app/ui.js27
-rw-r--r--vnc.html1
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
* ----------------------------------------
diff --git a/app/ui.js b/app/ui.js
index 9d0a3ba..97f5226 100644
--- a/app/ui.js
+++ b/app/ui.js
@@ -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.");
}
diff --git a/vnc.html b/vnc.html
index 85e4ab1..e46fa62 100644
--- a/vnc.html
+++ b/vnc.html
@@ -68,6 +68,7 @@
<div id="noVNC_fallback_error">
<div>noVNC encountered an error:</div>
+ <br>
<div id="noVNC_fallback_errormsg"></div>
</div>