Mercurial > hg > config
annotate chrome/MozillaFileLogger.js @ 206:beca399c3a16
Bug 685632 - Please collect RSS (memory) data during Talos testing on Android. r=jlebar,njn
author | Joel Maher <jmaher@mozilla.com> |
---|---|
date | Wed, 09 Nov 2011 10:41:03 -0500 |
parents | 59d4f04497dd |
children |
rev | line source |
---|---|
198
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
1 /** |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
2 * MozillaFileLogger, a log listener that can write to a local file. |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
3 */ |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
4 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
5 var ipcMode = false; // running in e10s build and need to use IPC? |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
6 try { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
7 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
8 var ipcsanity = Components.classes["@mozilla.org/preferences-service;1"] |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
9 .getService(Components.interfaces.nsIPrefBranch); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
10 ipcsanity.setIntPref("mochitest.ipcmode", 0); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
11 } catch (e) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
12 ipcMode = true; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
13 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
14 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
15 function contentDispatchEvent(type, data, sync) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
16 if (typeof(data) === "undefined") { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
17 data = {}; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
18 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
19 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
20 var element = document.createEvent("datacontainerevent"); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
21 element.initEvent("contentEvent", true, false); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
22 element.setData("sync", sync); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
23 element.setData("type", type); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
24 element.setData("data", JSON.stringify(data)); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
25 document.dispatchEvent(element); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
26 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
27 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
28 function contentSyncEvent(type, data) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
29 contentDispatchEvent(type, data, 1); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
30 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
31 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
32 function contentAsyncEvent(type, data) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
33 contentDispatchEvent(type, data, 0); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
34 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
35 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
36 try { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
37 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
38 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
39 if (Cc === undefined) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
40 var Cc = Components.classes; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
41 var Ci = Components.interfaces; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
42 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
43 } catch (ex) {} //running in ipcMode-chrome |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
44 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
45 try { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
46 const FOSTREAM_CID = "@mozilla.org/network/file-output-stream;1"; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
47 const LF_CID = "@mozilla.org/file/local;1"; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
48 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
49 // File status flags. It is a bitwise OR of the following bit flags. |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
50 // Only one of the first three flags below may be used. |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
51 const PR_READ_ONLY = 0x01; // Open for reading only. |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
52 const PR_WRITE_ONLY = 0x02; // Open for writing only. |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
53 const PR_READ_WRITE = 0x04; // Open for reading and writing. |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
54 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
55 // If the file does not exist, the file is created. |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
56 // If the file exists, this flag has no effect. |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
57 const PR_CREATE_FILE = 0x08; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
58 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
59 // The file pointer is set to the end of the file prior to each write. |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
60 const PR_APPEND = 0x10; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
61 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
62 // If the file exists, its length is truncated to 0. |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
63 const PR_TRUNCATE = 0x20; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
64 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
65 // If set, each write will wait for both the file data |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
66 // and file status to be physically updated. |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
67 const PR_SYNC = 0x40; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
68 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
69 // If the file does not exist, the file is created. If the file already |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
70 // exists, no action and NULL is returned. |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
71 const PR_EXCL = 0x80; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
72 } catch (ex) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
73 // probably not running in the test harness |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
74 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
75 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
76 /** Init the file logger with the absolute path to the file. |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
77 It will create and append if the file already exists **/ |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
78 var MozillaFileLogger = {}; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
79 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
80 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
81 MozillaFileLogger.init = function(path) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
82 if (ipcMode) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
83 contentAsyncEvent("LoggerInit", {"filename": path}); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
84 return; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
85 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
86 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
87 try { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
88 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
89 } catch (ex) {} //running in ipcMode-chrome |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
90 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
91 MozillaFileLogger._file = Cc[LF_CID].createInstance(Ci.nsILocalFile); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
92 MozillaFileLogger._file.initWithPath(path); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
93 MozillaFileLogger._foStream = Cc[FOSTREAM_CID].createInstance(Ci.nsIFileOutputStream); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
94 MozillaFileLogger._foStream.init(this._file, PR_WRITE_ONLY | PR_CREATE_FILE | PR_APPEND, |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
95 0664, 0); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
96 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
97 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
98 MozillaFileLogger.getLogCallback = function() { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
99 if (ipcMode) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
100 return function(msg) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
101 contentAsyncEvent("Logger", {"num": msg.num, "level": msg.level, "info": msg.info.join(' ')}); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
102 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
103 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
104 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
105 return function (msg) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
106 try { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
107 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
108 } catch(ex) {} //running in ipcMode-chrome |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
109 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
110 var data = msg.num + " " + msg.level + " " + msg.info.join(' ') + "\n"; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
111 if (MozillaFileLogger._foStream) |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
112 MozillaFileLogger._foStream.write(data, data.length); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
113 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
114 if (data.indexOf("SimpleTest FINISH") >= 0) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
115 MozillaFileLogger.close(); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
116 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
117 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
118 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
119 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
120 // This is only used from chrome space by the reftest harness |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
121 MozillaFileLogger.log = function(msg) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
122 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
123 if (MozillaFileLogger._foStream) |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
124 MozillaFileLogger._foStream.write(msg, msg.length); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
125 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
126 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
127 MozillaFileLogger.close = function() { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
128 if (ipcMode) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
129 contentAsyncEvent("LoggerClose"); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
130 return; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
131 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
132 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
133 try { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
134 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
135 } catch(ex) {} //running in ipcMode-chrome |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
136 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
137 if(MozillaFileLogger._foStream) |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
138 MozillaFileLogger._foStream.close(); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
139 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
140 MozillaFileLogger._foStream = null; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
141 MozillaFileLogger._file = null; |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
142 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
143 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
144 if (ipcMode == false) { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
145 try { |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
146 var prefs = Components.classes['@mozilla.org/preferences-service;1'] |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
147 .getService(Components.interfaces.nsIPrefBranch2); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
148 var filename = prefs.getCharPref('talos.logfile'); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
149 MozillaFileLogger.init(filename); |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
150 } catch (ex) {} //pref does not exist, return empty string |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
151 } |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
152 |
59d4f04497dd
package into extension for profile, add direct file logging instead of stdout r=vlad
Joel Maher <jmaher@mozilla.com>
parents:
diff
changeset
|
153 |