annotate chrome/content/leaks/leaks.js @ 4:8aa443d1e395 default tip

revised Makefile
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Tue, 02 Dec 2008 20:55:06 +0900
parents 472a16863ecc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
1 var handlers = {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
2 "DOMWINDOW": {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
3 count: 0,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
4 leaked: 0,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
5 windows: {},
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
6 handle_line: function(addr,verb,rest,para) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
7 if (verb == "created") {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
8 if (rest.substring(1,6)!="outer")
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
9 throw "outer expected";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
10 var out = rest.substring(7);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
11 this.windows[addr] = { outer: out, paras: [], uris: [] };
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
12 ++this.count;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
13 ++this.leaked;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
14 if (para)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
15 this.windows[addr].paras.push(para);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
16 } else if (verb == "destroyed") {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
17 delete this.windows[addr];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
18 --this.leaked;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
19 } else if (verb == "SetNewDocument") {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
20 var uri = rest.substring(1);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
21 this.windows[addr].uris[uri] = true;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
22 if (para)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
23 this.windows[addr].paras.push(para);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
24 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
25 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
26 mark_leaks: function(addr)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
27 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
28 for (var i=0; i<this.windows[addr].paras.length; i++) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
29 this.windows[addr].paras[i].className+=" leaked";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
30 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
31 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
32 clear: function()
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
33 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
34 this.count=0;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
35 this.leaked=0;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
36 this.windows={};
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
37 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
38 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
39 "DOCUMENT": {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
40 count: 0,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
41 leaked: 0,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
42 docs: {},
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
43 handle_line: function(addr,verb,rest,para) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
44 if (verb == "created") {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
45 this.docs[addr] = { paras: [], uris: [] };
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
46 ++this.count;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
47 ++this.leaked;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
48 if (para)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
49 this.docs[addr].paras.push(para);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
50 } else if (verb == "destroyed") {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
51 delete this.docs[addr];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
52 --this.leaked;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
53 } else if (verb == "ResetToURI" ||
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
54 verb == "StartDocumentLoad") {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
55 var uri = rest.substring(1);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
56 this.docs[addr].uris[uri] = true;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
57 if (para)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
58 this.docs[addr].paras.push(para);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
59 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
60 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
61 mark_leaks: function(addr)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
62 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
63 for (var i=0; i<this.docs[addr].paras.length; i++) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
64 var para = this.docs[addr].paras[i].className+=" leaked";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
65 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
66 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
67 clear: function()
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
68 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
69 this.count=0;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
70 this.leaked=0;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
71 this.docs={};
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
72 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
73 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
74 "DOCSHELL": {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
75 count: 0,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
76 leaked: 0,
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
77 shells: {},
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
78 handle_line: function(addr,verb,rest,para) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
79 if (verb == "created") {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
80 this.shells[addr] = { paras: [], uris: [] };
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
81 ++this.count;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
82 ++this.leaked;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
83 if (para)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
84 this.shells[addr].paras.push(para);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
85 } else if (verb == "destroyed") {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
86 delete this.shells[addr];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
87 --this.leaked;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
88 } else if (verb == "InternalLoad" ||
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
89 verb == "SetCurrentURI") {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
90 var uri = rest.substring(1);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
91 this.shells[addr].uris[uri] = true;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
92 if (para)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
93 this.shells[addr].paras.push(para);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
94 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
95 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
96 mark_leaks: function(addr)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
97 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
98 for (var i=0; i<this.shells[addr].paras.length; i++) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
99 var para = this.shells[addr].paras[i].className+=" leaked";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
100 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
101 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
102 clear: function()
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
103 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
104 this.count=0;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
105 this.leaked=0;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
106 this.shells={};
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
107 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
108 },
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
109 clear: function()
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
110 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
111 this["DOMWINDOW"].clear();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
112 this["DOCUMENT"].clear();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
113 this["DOCSHELL"].clear();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
114 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
115 };
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
116
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
117 function doParse(storelog)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
118 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
119 handlers.clear();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
120
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
121 var fulllog = document.getElementById("logframe").contentDocument.body;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
122 var datelbl = document.getElementById("date");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
123 var date = new Date(nsprlog.lastModifiedTime);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
124 datelbl.value=bundle.getFormattedString("nightly.leaks.sessiondate.label", [date.toLocaleString()]);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
125
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
126 var is = Components.classes["@mozilla.org/network/file-input-stream;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
127 .createInstance(Components.interfaces.nsIFileInputStream);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
128 const PR_RDONLY = 0x01;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
129 is.init(nsprlog, PR_RDONLY, 0, 0);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
130 if (!(is instanceof Components.interfaces.nsILineInputStream))
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
131 return;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
132 var line = { value: "" };
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
133 var lines=0;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
134 var para = null;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
135 do
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
136 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
137 lines++;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
138 var more = is.readLine(line); // yuck, returns false for last valid line
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
139
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
140 var className="";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
141 if (storelog)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
142 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
143 para = fulllog.ownerDocument.createElementNS("http://www.w3.org/1999/xhtml","p");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
144 fulllog.appendChild(para);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
145 para.appendChild(fulllog.ownerDocument.createTextNode(line.value));
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
146 className="logline";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
147 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
148
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
149 // strip off initial "-", thread id, and thread pointer; separate
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
150 // first word and rest
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
151 var matches = line.value.match(/^\-?[0-9]*\[[0-9a-f]*\]: (\S*) ([0-9a-f]*) (\S*)(.*)$/);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
152 if (matches) {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
153 var handler = matches[1];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
154 var address = matches[2];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
155 var verb = matches[3];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
156 className+=" "+handler+" "+address;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
157 var data = matches[4];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
158 if (typeof(handlers[handler]) != "undefined") {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
159 handlers[handler].handle_line(address,verb,data,para);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
160 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
161 else
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
162 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
163
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
164 className+=" ignored";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
165 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
166 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
167 else
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
168 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
169 className+=" ignored";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
170 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
171 if (storelog)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
172 para.className=className;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
173 } while (more);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
174
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
175 var details = document.getElementById("details");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
176 var leaked=false;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
177
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
178 var lbl = document.getElementById("windowLeaks");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
179 var handler = handlers["DOMWINDOW"];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
180 lbl.value=bundle.getFormattedString("nightly.leaks.windowleaks.label", [handler.leaked, handler.count]);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
181 if (handler.leaked>0)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
182 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
183 lbl.className="leaked";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
184 leaked=true;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
185 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
186 else
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
187 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
188 lbl.className="";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
189 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
190 for (var addr in handler.windows)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
191 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
192 handler.mark_leaks(addr);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
193 var winobj = handler.windows[addr];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
194 lbl = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul","label");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
195 details.appendChild(lbl);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
196 if (winobj.outer=="0")
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
197 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
198 lbl.value=bundle.getFormattedString("nightly.leaks.innerleak.text", [addr, winobj.outer, addr]);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
199 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
200 else
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
201 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
202 lbl.value=bundle.getFormattedString("nightly.leaks.outerleak.text", [addr, addr]);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
203 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
204 for (var uri in winobj.uris)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
205 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
206 lbl = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul","label");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
207 details.appendChild(lbl);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
208 lbl.value=bundle.getFormattedString("nightly.leaks.urileak.text", [uri]);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
209 lbl.className="uri";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
210 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
211 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
212
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
213 lbl = document.getElementById("documentLeaks");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
214 handler = handlers["DOCUMENT"];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
215 lbl.value=bundle.getFormattedString("nightly.leaks.documentleaks.label", [handler.leaked, handler.count]);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
216 if (handler.leaked>0)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
217 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
218 lbl.className="leaked";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
219 leaked=true;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
220 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
221 else
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
222 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
223 lbl.className="";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
224 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
225 for (var addr in handler.docs)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
226 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
227 handler.mark_leaks(addr);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
228 var doc = handler.docs[addr];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
229 lbl = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul","label");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
230 details.appendChild(lbl);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
231 lbl.value=bundle.getFormattedString("nightly.leaks.documentleak.text", [addr]);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
232 for (var uri in doc.uris)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
233 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
234 lbl = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul","label");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
235 details.appendChild(lbl);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
236 lbl.value=bundle.getFormattedString("nightly.leaks.urileak.text", [uri]);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
237 lbl.className="uri";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
238 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
239 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
240
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
241 lbl = document.getElementById("docshellLeaks");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
242 handler = handlers["DOCSHELL"];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
243 lbl.value=bundle.getFormattedString("nightly.leaks.docshellleaks.label", [handler.leaked, handler.count]);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
244 if (handler.leaked>0)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
245 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
246 lbl.className="leaked";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
247 leaked=true;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
248 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
249 else
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
250 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
251 lbl.className="";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
252 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
253 for (var addr in handler.shells)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
254 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
255 handler.mark_leaks(addr);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
256 var doc = handler.shells[addr];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
257 lbl = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul","label");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
258 details.appendChild(lbl);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
259 lbl.value=bundle.getFormattedString("nightly.leaks.docshellleak.text", [addr]);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
260 for (var uri in doc.uris)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
261 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
262 lbl = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul","label");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
263 details.appendChild(lbl);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
264 lbl.value=bundle.getFormattedString("nightly.leaks.urileak.text", [uri]);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
265 lbl.className="uri";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
266 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
267 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
268
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
269 document.getElementById("detailsbox").collapsed=!leaked;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
270 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
271 // --------------------------------------------------------------------
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
272
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
273 var nsprlog = null;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
274 var preferences = null;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
275
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
276 var summaryText = "";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
277 var detailsText = "";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
278 var logValid = false;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
279 var bundle = null;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
280
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
281 function frameLoaded(event)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
282 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
283 var chk = document.getElementById("showlog");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
284
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
285 var frame = document.getElementById("logframe");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
286 if (frame.getAttribute("src")=="")
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
287 return;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
288
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
289 changeFilter();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
290
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
291 var details = document.getElementById("details");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
292 while (details.firstChild)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
293 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
294 details.removeChild(details.firstChild);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
295 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
296
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
297 doParse(chk.checked);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
298
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
299 logValid=chk.checked;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
300
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
301 document.getElementById("summary").collapsed=false;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
302 document.getElementById("btnSave").disabled=false;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
303 document.getElementById("btnCopy").disabled=false;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
304 document.getElementById("nsprlog").disabled=false;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
305 document.getElementById("filebrowse").disabled=false;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
306 document.getElementById("showlog").disabled=false;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
307 document.getElementById("tabbox").collapsed=false;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
308 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
309
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
310 function parseLog()
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
311 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
312 document.getElementById("nsprlog").disabled=true;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
313 document.getElementById("filebrowse").disabled=true;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
314 document.getElementById("showlog").disabled=false;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
315 document.getElementById("tabbox").collapsed=true;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
316 var frame = document.getElementById("logframe");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
317 frame.setAttribute("src", "")
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
318 window.setTimeout(function() { frame.setAttribute("src", "leaks.html") }, 100);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
319 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
320
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
321 function init(event)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
322 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
323 window.removeEventListener("load", init, false);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
324
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
325 bundle = document.getElementById("bundle");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
326
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
327 var prefservice = Components.classes['@mozilla.org/preferences-service;1']
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
328 .getService(Components.interfaces.nsIPrefService);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
329 preferences = prefservice.getBranch("nightly.leaks.");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
330
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
331 var buildid = document.getElementById("buildid");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
332 var appinfo = Components.classes['@mozilla.org/xre/app-info;1'].getService(Components.interfaces.nsIXULAppInfo);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
333 buildid.value=navigator.userAgent+" ID:"+appinfo.appBuildID;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
334
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
335 var frame = document.getElementById("logframe");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
336 frame.addEventListener("load", frameLoaded, true);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
337
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
338 var chk = document.getElementById("showlog");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
339 chk.checked = preferences.getBoolPref("showleaklog");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
340 document.getElementById("tabbox").firstChild.style.display=(chk.checked ? null : 'none');
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
341
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
342 chk = document.getElementById("filterDocshell");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
343 chk.checked = preferences.getBoolPref("filterDocshell");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
344
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
345 chk = document.getElementById("filterWindow");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
346 chk.checked = preferences.getBoolPref("filterWindow");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
347
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
348 chk = document.getElementById("filterDocument");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
349 chk.checked = preferences.getBoolPref("filterDocument");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
350
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
351 chk = document.getElementById("filterLeaked");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
352 chk.checked = preferences.getBoolPref("filterLeaked");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
353
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
354 chk = document.getElementById("filterCollected");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
355 chk.checked = preferences.getBoolPref("filterCollected");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
356
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
357 chk = document.getElementById("filterIgnored");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
358 chk.checked = preferences.getBoolPref("filterIgnored");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
359
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
360 try
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
361 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
362 nsprlog = preferences.getComplexValue("nsprlog", Components.interfaces.nsILocalFile);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
363 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
364 catch (e) { }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
365
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
366 if (nsprlog && nsprlog.exists())
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
367 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
368 var logtext = document.getElementById("nsprlog");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
369 logtext.value=nsprlog.path;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
370 parseLog();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
371 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
372 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
373
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
374 function flipLog()
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
375 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
376 var chk = document.getElementById("showlog");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
377 preferences.setBoolPref("showleaklog", chk.checked);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
378 document.getElementById("tabbox").firstChild.style.display=(chk.checked ? null : 'none');
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
379
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
380 if (!chk.checked)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
381 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
382 document.getElementById("tabbox").selectedIndex=0;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
383 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
384
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
385 if (chk.checked && !logValid && nsprlog && nsprlog.exists())
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
386 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
387 parseLog();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
388 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
389 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
390
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
391 function changeFilter()
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
392 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
393 var style = document.getElementById("logframe").contentDocument.getElementById("filters");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
394 var filter = "";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
395
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
396 var chk = document.getElementById("filterDocshell");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
397 if (!chk.checked)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
398 filter+=".logline.DOCSHELL { display: none }\n";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
399 preferences.setBoolPref("filterDocshell", chk.checked);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
400
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
401 chk = document.getElementById("filterWindow");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
402 if (!chk.checked)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
403 filter+=".logline.DOMWINDOW { display: none }\n";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
404 preferences.setBoolPref("filterWindow", chk.checked);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
405
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
406 chk = document.getElementById("filterDocument");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
407 if (!chk.checked)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
408 filter+=".logline.DOCUMENT { display: none }\n";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
409 preferences.setBoolPref("filterDocument", chk.checked);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
410
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
411 chk = document.getElementById("filterLeaked");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
412 if (!chk.checked)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
413 filter+=".leaked { display: none }\n";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
414 preferences.setBoolPref("filterLeaked", chk.checked);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
415
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
416 chk = document.getElementById("filterCollected");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
417 if (!chk.checked)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
418 filter+=".logline:not(.leaked) { display: none }\n";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
419 preferences.setBoolPref("filterCollected", chk.checked);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
420
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
421 chk = document.getElementById("filterIgnored");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
422 if (!chk.checked)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
423 filter+=".logline.ignored { display: none }\n";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
424 preferences.setBoolPref("filterIgnored", chk.checked);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
425
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
426 style.innerHTML=filter;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
427 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
428
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
429 function pad(value)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
430 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
431 if (value<10)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
432 return "0"+value;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
433 return ""+value;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
434 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
435
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
436 function getTextOverview()
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
437 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
438 var text=bundle.getString("nightly.leaks.summary.label")+nightlyplatform.eol+nightlyplatform.eol;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
439 var appinfo = Components.classes['@mozilla.org/xre/app-info;1'].getService(Components.interfaces.nsIXULAppInfo);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
440 text+=navigator.userAgent+" ID:"+appinfo.appBuildID+nightlyplatform.eol+nightlyplatform.eol;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
441 var date = new Date(nsprlog.lastModifiedTime);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
442 text+=bundle.getFormattedString("nightly.leaks.sessiondate.label", [date.toLocaleString()])+nightlyplatform.eol+nightlyplatform.eol;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
443
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
444 var leaked = false;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
445 var handler = handlers["DOMWINDOW"];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
446 if (handler.leaked>0)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
447 leaked=true;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
448 text+=bundle.getFormattedString("nightly.leaks.windowleaks.label", [handler.leaked, handler.count])+nightlyplatform.eol;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
449 handler = handlers["DOCUMENT"];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
450 if (handler.leaked>0)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
451 leaked=true;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
452 text+=bundle.getFormattedString("nightly.leaks.documentleaks.label", [handler.leaked, handler.count])+nightlyplatform.eol;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
453 handler = handlers["DOCSHELL"];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
454 if (handler.leaked>0)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
455 leaked=true;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
456 text+=bundle.getFormattedString("nightly.leaks.docshellleaks.label", [handler.leaked, handler.count])+nightlyplatform.eol;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
457
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
458 if (leaked)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
459 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
460 text+=nightlyplatform.eol+bundle.getString("nightly.leaks.details.label")+nightlyplatform.eol+nightlyplatform.eol;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
461 handler = handlers["DOMWINDOW"];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
462 for (var addr in handler.windows)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
463 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
464 var winobj = handler.windows[addr];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
465 if (winobj.outer=="0")
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
466 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
467 text+=bundle.getFormattedString("nightly.leaks.innerleak.text", [addr, winobj.outer, addr])+nightlyplatform.eol;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
468 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
469 else
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
470 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
471 text+=bundle.getFormattedString("nightly.leaks.outerleak.text", [addr, addr])+nightlyplatform.eol;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
472 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
473 for (var uri in winobj.uris)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
474 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
475 text+=" ... "+bundle.getFormattedString("nightly.leaks.urileak.text", [uri])+nightlyplatform.eol;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
476 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
477 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
478
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
479 handler = handlers["DOCUMENT"];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
480 for (var addr in handler.docs)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
481 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
482 var doc = handler.docs[addr];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
483 text += bundle.getFormattedString("nightly.leaks.documentleak.text", [addr])+nightlyplatform.eol;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
484 for (var uri in doc.uris)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
485 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
486 text+=" ... "+bundle.getFormattedString("nightly.leaks.urileak.text", [uri])+nightlyplatform.eol;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
487 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
488 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
489
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
490 handler = handlers["DOCSHELL"];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
491 for (var addr in handler.shells)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
492 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
493 var doc = handler.shells[addr];
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
494 text += bundle.getFormattedString("nightly.leaks.docshellleak.text", [addr])+nightlyplatform.eol;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
495 for (var uri in doc.uris)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
496 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
497 text+=" ... "+bundle.getFormattedString("nightly.leaks.urileak.text", [uri])+nightlyplatform.eol;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
498 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
499 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
500 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
501 return text;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
502 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
503
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
504 function save()
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
505 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
506 var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
507 fp.init(window, bundle.getString("nightly.leaks.filepicker.title"), fp.modeSave);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
508 fp.appendFilter(bundle.getString("nightly.leaks.filepicker.filterlog"), "*.log");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
509 fp.appendFilter(bundle.getString("nightly.leaks.filepicker.filterall"), "*.*");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
510 fp.displayDirectory=nsprlog.parent;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
511
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
512 var date = new Date(nsprlog.lastModifiedTime);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
513 fp.defaultString=date.getFullYear()+pad(date.getMonth()+1)+pad(date.getDate())+"-"+pad(date.getHours())+pad(date.getMinutes())+"_leaklog.log";
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
514
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
515 var result = fp.show();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
516 if (result==fp.returnOK || result==fp.returnReplace)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
517 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
518 var target=fp.file;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
519 preferences.setComplexValue("leaksave", Components.interfaces.nsILocalFile, target);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
520
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
521 var text = getTextOverview();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
522
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
523 // file is nsIFile, data is a string
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
524 var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
525 .createInstance(Components.interfaces.nsIFileOutputStream);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
526
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
527 // use 0x02 | 0x10 to open file for appending.
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
528 foStream.init(target, 0x02 | 0x08 | 0x20, 0664, 0); // write, create, truncate
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
529 var os = Components.classes["@mozilla.org/intl/converter-output-stream;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
530 .createInstance(Components.interfaces.nsIConverterOutputStream);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
531
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
532 os.init(foStream, "UTF-8", 0, 0x0000);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
533 os.writeString(text);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
534 os.close();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
535 foStream.close();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
536 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
537 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
538
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
539 function clipboardCopy()
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
540 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
541 var clipboard = Components.classes["@mozilla.org/widget/clipboardhelper;1"].
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
542 getService(Components.interfaces.nsIClipboardHelper);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
543 clipboard.copyString(getTextOverview());
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
544 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
545
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
546 function textEnter()
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
547 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
548 var logtext = document.getElementById("nsprlog");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
549 var target = Components.classes["@mozilla.org/file/local;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
550 .createInstance(Components.interfaces.nsILocalFile);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
551 target.initWithPath(logtext.value);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
552 if (target.exists())
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
553 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
554 nsprlog=target;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
555 preferences.setComplexValue("nsprlog", Components.interfaces.nsILocalFile, nsprlog);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
556 parseLog();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
557 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
558 else
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
559 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
560 var prompt = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
561 .getService(Components.interfaces.nsIPromptService);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
562 prompt.alert(window, "File Not Found", logtext.value+" does not exist.");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
563 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
564 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
565
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
566 function selectLog()
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
567 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
568 var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(Components.interfaces.nsIFilePicker);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
569 fp.init(window, bundle.getString("nightly.leaks.filepicker.title"), fp.modeOpen);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
570 fp.appendFilter(bundle.getString("nightly.leaks.filepicker.filterlog"), "*.log");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
571 fp.appendFilter(bundle.getString("nightly.leaks.filepicker.filterall"), "*.*");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
572 if (nsprlog)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
573 fp.displayDirectory=nsprlog.parent;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
574
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
575 if (fp.show() == fp.returnOK)
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
576 {
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
577 nsprlog=fp.file;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
578 preferences.setComplexValue("nsprlog", Components.interfaces.nsILocalFile, nsprlog);
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
579 var logtext = document.getElementById("nsprlog");
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
580 logtext.value=nsprlog.path;
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
581 parseLog();
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
582 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
583 }
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
584
472a16863ecc expanded nightly.jar
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
585 window.addEventListener("load", init, false);