Mercurial > nightly_tester_tools
comparison chrome/content/crashreports/crashreports.js @ 2:472a16863ecc
expanded nightly.jar
author | Yoshiki Yazawa <yaz@honeyplanet.jp> |
---|---|
date | Tue, 02 Dec 2008 20:38:20 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
1:93e46514f20d | 2:472a16863ecc |
---|---|
1 Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); | |
2 | |
3 var crashreports = { | |
4 | |
5 init: function(event) | |
6 { | |
7 window.removeEventListener("load", crashreports.init, false); | |
8 if (Components.interfaces.nsICrashReporter) | |
9 { | |
10 var service = Components.classes["@blueprintit.co.uk/breakpad;1"] | |
11 .getService(Components.interfaces.nttIBreakpadService); | |
12 | |
13 if (nightly.preferences.getBoolPref("crashreports.recentlist.display")) | |
14 { | |
15 service.loadDatabase(); | |
16 service.addProgressListener(crashreports); | |
17 } | |
18 else | |
19 { | |
20 document.getElementById("nightly-crashreports-incidents").parentNode.hidden=true; | |
21 } | |
22 } | |
23 else | |
24 { | |
25 document.getElementById("nightly-crashreports-separator").hidden = true; | |
26 document.getElementById("nightly-crashreports-recent").hidden = true; | |
27 document.getElementById("nightly-crashreports-sidebar").hidden = true; | |
28 } | |
29 }, | |
30 | |
31 copy: function(event) | |
32 { | |
33 var node = document.popupNode; | |
34 if (node.id.substring(0,12)=="breakpad-id-") | |
35 { | |
36 var id = node.id.substring(12); | |
37 var clipboard = Components.classes["@mozilla.org/widget/clipboardhelper;1"] | |
38 .getService(Components.interfaces.nsIClipboardHelper); | |
39 clipboard.copyString(id); | |
40 closeMenus(node); | |
41 } | |
42 }, | |
43 | |
44 onDatabaseLoaded: function() | |
45 { | |
46 var service = Components.classes["@blueprintit.co.uk/breakpad;1"] | |
47 .getService(Components.interfaces.nttIBreakpadService); | |
48 | |
49 var incidents = null; | |
50 | |
51 incidents = service.getPreviousIncidents(10); | |
52 | |
53 var parent = document.getElementById("nightly-crashreports-incidents"); | |
54 if ((incidents) && (incidents.length > 0)) | |
55 { | |
56 while (parent.firstChild) | |
57 parent.removeChild(parent.firstChild); | |
58 | |
59 var en = incidents.enumerate(); | |
60 while (en.hasMoreElements()) | |
61 { | |
62 var incident = en.getNext().QueryInterface(Components.interfaces.nttIBreakpadIncident); | |
63 | |
64 var item = document.createElementNS("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul", "menuitem"); | |
65 item.setAttribute("id", "breakpad-id-"+incident.id); | |
66 item.setAttribute("tooltip", "nightly-crashreport-tooltip"); | |
67 item.setAttribute("context", "nightly-crashreport-context"); | |
68 item.setAttribute("label", incident.id+" ("+(new Date(incident.date)).toLocaleDateString()+")"); | |
69 parent.appendChild(item); | |
70 } | |
71 } | |
72 else | |
73 { | |
74 parent.parentNode.disabled=true; | |
75 } | |
76 }, | |
77 | |
78 popupTooltip: function(event) | |
79 { | |
80 var node = document.tooltipNode; | |
81 if (node.id.substring(0,12)=="breakpad-id-") | |
82 { | |
83 var id = node.id.substring(12); | |
84 var service = Components.classes["@blueprintit.co.uk/breakpad;1"] | |
85 .getService(Components.interfaces.nttIBreakpadService); | |
86 var incident = service.getIncident(id); | |
87 var label = document.getElementById("nightly-crashreport-tooltip").firstChild; | |
88 label.value=(new Date(incident.date)).toLocaleString(); | |
89 return true; | |
90 } | |
91 return false; | |
92 }, | |
93 | |
94 viewIncident: function(event) | |
95 { | |
96 if (event.target.id.substring(0,12)=="breakpad-id-") | |
97 { | |
98 var url = nightly.preferences.getCharPref("breakpad.searchurl"); | |
99 var id = event.target.id.substring(15); | |
100 nightlyApp.openURL(url+id, event); | |
101 } | |
102 }, | |
103 | |
104 QueryInterface: XPCOMUtils.generateQI([Components.interfaces.nttIBreakpadProgressListener]) | |
105 } | |
106 | |
107 window.addEventListener("load", crashreports.init, false); |