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