1 /* See license.txt for terms of usage */ 2 3 define([ 4 "firebug/lib/trace" 5 ], 6 function(FBTrace) { 7 8 // ********************************************************************************************* // 9 // Debug APIs 10 11 const Cc = Components.classes; 12 const Ci = Components.interfaces; 13 14 var consoleService = Cc["@mozilla.org/consoleservice;1"].getService(Ci["nsIConsoleService"]); 15 var observerService = Cc["@mozilla.org/observer-service;1"].getService(Ci["nsIObserverService"]); 16 17 var Debug = {}; 18 19 //************************************************************************************************ 20 // Debug Logging 21 22 Debug.ERROR = function(exc) 23 { 24 if (typeof(FBTrace) !== undefined) 25 { 26 if (exc.stack) 27 exc.stack = exc.stack.split('\n'); 28 29 FBTrace.sysout("debug.ERROR: " + exc, exc); 30 } 31 32 if (consoleService) 33 consoleService.logStringMessage("FIREBUG ERROR: " + exc); 34 } 35 36 // ********************************************************************************************* // 37 // Tracing for observer service 38 39 Debug.traceObservers = function(msg, topic) 40 { 41 var counter = 0; 42 var enumerator = observerService.enumerateObservers(topic); 43 while (enumerator.hasMoreElements()) 44 { 45 var observer = enumerator.getNext(); 46 counter++; 47 } 48 49 var label = "observer"; 50 if (counter > 1) 51 label = "observers"; 52 53 FBTrace.sysout("debug.observers: " + msg + " There is " + counter + " " + 54 label + " for " + topic); 55 } 56 57 // ********************************************************************************************* // 58 59 return Debug; 60 61 // ********************************************************************************************* // 62 }); 63