Fri, 09 Sep 2016 12:43:59 -0500
enable meanwhile
|
33922
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
1 | <!DOCTYPE html> |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
2 | <html> |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
3 | <head> |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
4 | <style> |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
5 | body{white-space:pre-wrap;} |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
6 | div.l0{color:#000000;} /* All debug levels. */ |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
7 | div.l1{color:#666666;} /* Misc. */ |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
8 | div.l2{color:#000000;} /* Information. */ |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
9 | div.l3{color:#660000;} /* Warnings. */ |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
10 | div.l4{color:#FF0000;} /* Errors. */ |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
11 | div.l5{color:#FF0000;font-weight:bold;} /* Fatal errors. */ |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
12 | /* Filter levels */ |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
13 | div#pause~div{display:none;} |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
14 | body.l1 div.l0{display:none;} |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
15 | body.l2 div.l0,body.l2 div.l1{display:none;} |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
16 | body.l3 div.l0,body.l3 div.l1,body.l3 div.l2{display:none;} |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
17 | body.l4 div.l0,body.l4 div.l1,body.l4 div.l2,body.l4 div.l3{display:none;} |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
18 | body.l5 div.l0,body.l5 div.l1,body.l5 div.l2,body.l5 div.l3,body.l5 div.l4{display:none;} |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
19 | /* Regex */ |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
20 | div.hide{display:none;} |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
21 | span.regex{background-color:#ffafaf;font-weight:bold;} |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
22 | </style> |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
23 | <script> |
|
33925
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
24 | function nearBottom() { |
|
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
25 | return ( document.body.scrollTop >= ( document.body.offsetHeight - ( window.innerHeight * 1.5 ) ) ); |
|
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
26 | } |
|
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
27 | |
|
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
28 | function scrollToBottom() { |
|
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
29 | document.body.scrollTop = document.body.offsetHeight; |
|
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
30 | } |
|
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
31 | |
|
33923
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
32 | regex = { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
33 | clear: function () { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
34 | var list, i; |
|
33925
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
35 | var scroll = nearBottom(); |
|
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
36 | |
|
33923
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
37 | /* Remove highlighting SPANs */ |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
38 | list = document.getElementsByClassName('regex'); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
39 | i = list.length; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
40 | while (i--) { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
41 | var span = list[i]; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
42 | var parent = span.parentNode; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
43 | var content = span.textContent; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
44 | var text = document.createTextNode(content); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
45 | parent.replaceChild(text, span); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
46 | } |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
47 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
48 | /* Remove hidden DIVs */ |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
49 | list = document.getElementsByClassName('hide'); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
50 | i = list.length; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
51 | while (i--) { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
52 | list[i].classList.remove('hide'); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
53 | } |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
54 | |
|
33925
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
55 | if (scroll) |
|
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
56 | scrollToBottom(); |
|
33923
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
57 | this.enabled = false; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
58 | }, |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
59 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
60 | highlightTextNodes: function (div, start_pos, end_pos) { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
61 | var data = [], node, range, span, contents; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
62 | var ind, end_ind |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
63 | var this_start, this_end; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
64 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
65 | ind = 0; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
66 | div.normalize(); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
67 | node = div; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
68 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
69 | /* First, find the container nodes and offsets to apply highlighting. */ |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
70 | do { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
71 | if (node.nodeType === Node.TEXT_NODE) { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
72 | end_ind = ind + node.length; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
73 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
74 | if (start_pos <= ind) |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
75 | this_start = 0; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
76 | else if (start_pos < end_ind) |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
77 | this_start = start_pos - ind; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
78 | else |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
79 | this_start = -1; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
80 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
81 | if (end_pos < end_ind) |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
82 | this_end = end_pos - ind; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
83 | else |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
84 | this_end = end_ind - ind; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
85 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
86 | if (this_start != -1 && this_start < this_end) { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
87 | data.push(this_end, this_start, node); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
88 | } |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
89 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
90 | ind = end_ind; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
91 | } |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
92 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
93 | if (node.hasChildNodes()) { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
94 | node = node.firstChild; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
95 | } else { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
96 | while (node != div) { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
97 | var next = node.nextSibling; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
98 | if (next) { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
99 | node = next; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
100 | break; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
101 | } else { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
102 | node = node.parentNode; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
103 | } |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
104 | } |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
105 | } |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
106 | } while (node != div); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
107 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
108 | /* Second, apply highlighting to saved sections. Changing the DOM is |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
109 | automatically reflected in all WebKit API, so we have to do this after |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
110 | finding the offsets, or things could get complicated. */ |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
111 | while (data.length) { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
112 | node = data.pop(); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
113 | this_start = data.pop(); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
114 | this_end = data.pop(); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
115 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
116 | range = document.createRange(); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
117 | range.setStart(node, this_start); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
118 | range.setEnd(node, this_end); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
119 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
120 | span = document.createElement('span'); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
121 | span.className = 'regex'; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
122 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
123 | contents = range.extractContents(); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
124 | range.insertNode(span); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
125 | span.appendChild(contents); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
126 | } |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
127 | }, |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
128 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
129 | match: function (div) { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
130 | var text, match_info; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
131 | var m, count, start_pos, end_pos; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
132 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
133 | text = div.textContent; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
134 | if (!text) |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
135 | return; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
136 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
137 | /* We do a first pass to see if it matches at all. If it does we work out |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
138 | * the offsets to highlight. |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
139 | */ |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
140 | this.regex.lastIndex = 0; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
141 | var match_info = this.regex.exec(text); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
142 | if ((match_info != null) != this.invert) { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
143 | /* If we're not highlighting or the expression is inverted, we're |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
144 | * done and move on. |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
145 | */ |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
146 | if (!this.highlight || this.invert) |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
147 | return; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
148 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
149 | do { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
150 | if (match_info === null) |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
151 | break; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
152 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
153 | count = match_info.length; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
154 | if (count === 1) |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
155 | m = 0; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
156 | else |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
157 | m = 1; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
158 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
159 | /* We do this because JS doesn't provide a sufficient means to |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
160 | determine the indices of matched groups. So we're just going |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
161 | to highlight the entire match instead. */ |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
162 | m = 0; count = 1; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
163 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
164 | for (; m < count; m++) { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
165 | start_pos = match_info.index; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
166 | end_pos = this.regex.lastIndex; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
167 | if (end_pos == -1) |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
168 | break; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
169 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
170 | this.highlightTextNodes(div, start_pos, end_pos); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
171 | } |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
172 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
173 | /* Workaround broken API for empty matches */ |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
174 | if (match_info.index == this.regex.lastIndex) |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
175 | this.regex.lastIndex++; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
176 | } while (match_info = this.regex.exec(text)); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
177 | } else { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
178 | div.classList.add('hide'); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
179 | } |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
180 | }, |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
181 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
182 | filterAll: function (str, inv, high) { |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
183 | this.regex = new RegExp(str, 'gi'); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
184 | this.invert = inv; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
185 | this.highlight = high; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
186 | this.enabled = true; |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
187 | var list = document.getElementsByTagName('div'); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
188 | for (var i = 0; i < list.length; i++) |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
189 | this.match(list[i]); |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
190 | }, |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
191 | |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
192 | highlight: false, |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
193 | invert: false, |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
194 | enabled: false, |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
195 | regex: undefined |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
196 | } |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
197 | |
|
33922
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
198 | function append(level, time, cat, msg) { |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
199 | var div = document.createElement('div'); |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
200 | div.className = 'l' + level; |
|
33925
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
201 | |
|
33922
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
202 | div.appendChild(document.createTextNode('(' + time + ') ')); |
|
33925
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
203 | |
|
33922
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
204 | if (cat) { |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
205 | var cat_n = document.createElement('b'); |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
206 | cat_n.appendChild(document.createTextNode(cat + ':')); |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
207 | div.appendChild(cat_n); |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
208 | div.appendChild(document.createTextNode(' ')); |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
209 | } |
|
33925
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
210 | |
|
33922
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
211 | div.appendChild(document.createTextNode(msg)); |
|
33925
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
212 | |
|
33923
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
213 | if (regex.enabled) |
|
0fcc5635daba
Rewrite debug window filter in JS.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33922
diff
changeset
|
214 | regex.match(div); |
|
33925
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
215 | |
|
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
216 | var scroll = nearBottom(); |
|
33922
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
217 | document.body.appendChild(div); |
|
33925
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
218 | if (scroll) |
|
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
219 | scrollToBottom(); |
|
33922
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
220 | } |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
221 | |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
222 | function clear() { |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
223 | document.body.innerHTML = ''; |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
224 | } |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
225 | |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
226 | function pauseOutput() { |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
227 | document.body.insertAdjacentHTML('beforeEnd', '<div id=pause></div>'); |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
228 | } |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
229 | |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
230 | function resumeOutput() { |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
231 | var pause = document.getElementById('pause'); |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
232 | if (pause) { |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
233 | var parent = pause.parentNode; |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
234 | parent.removeChild(pause); |
|
33925
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
235 | scrollToBottom(); |
|
33922
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
236 | } |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
237 | } |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
238 | |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
239 | function setFilterLevel(l) { |
|
33925
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
240 | var scroll = nearBottom(); |
|
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
241 | |
|
33922
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
242 | document.body.className = 'l'+l; |
|
33925
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
243 | |
|
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
244 | if (scroll) |
|
e5b703bc9f03
Fix autoscroll in debug window.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
33923
diff
changeset
|
245 | scrollToBottom(); |
|
33922
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
246 | } |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
247 | </script> |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
248 | </head> |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
249 | <body class=l0></body> |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
250 | </html> |
|
61f997b47954
Split debug window HTML into a separate file.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
diff
changeset
|
251 |