]> git.proxmox.com Git - mirror_novnc.git/blob - app/error-handler.js
Prefer const/let over var
[mirror_novnc.git] / app / error-handler.js
1 // NB: this should *not* be included as a module until we have
2 // native support in the browsers, so that our error handler
3 // can catch script-loading errors.
4
5 (function(){
6 "use strict";
7
8 // Fallback for all uncought errors
9 function handleError (event, err) {
10 try {
11 const msg = document.getElementById('noVNC_fallback_errormsg');
12
13 // Only show the initial error
14 if (msg.hasChildNodes()) {
15 return false;
16 }
17
18 let div = document.createElement("div");
19 div.classList.add('noVNC_message');
20 div.appendChild(document.createTextNode(event.message));
21 msg.appendChild(div);
22
23 if (event.filename) {
24 div = document.createElement("div");
25 div.className = 'noVNC_location';
26 let text = event.filename;
27 if (event.lineno !== undefined) {
28 text += ":" + event.lineno;
29 if (event.colno !== undefined) {
30 text += ":" + event.colno;
31 }
32 }
33 div.appendChild(document.createTextNode(text));
34 msg.appendChild(div);
35 }
36
37 if (err && err.stack) {
38 div = document.createElement("div");
39 div.className = 'noVNC_stack';
40 div.appendChild(document.createTextNode(err.stack));
41 msg.appendChild(div);
42 }
43
44 document.getElementById('noVNC_fallback_error')
45 .classList.add("noVNC_open");
46 } catch (exc) {
47 document.write("noVNC encountered an error.");
48 }
49 // Don't return true since this would prevent the error
50 // from being printed to the browser console.
51 return false;
52 }
53 window.addEventListener('error', function (evt) { handleError(evt, evt.error); });
54 window.addEventListener('unhandledrejection', function (evt) { handleError(evt.reason, evt.reason); });
55 })();