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); |
