canmove, Confirmed users
725
edits
| Line 192: | Line 192: | ||
<pre> | <pre> | ||
function FooTracker() { | function FooTracker(name) { | ||
Tracker.call(this, name); | |||
// Register yourself as event listener or observer for whatever | |||
// you want to track. Note that this may unnecessarily slow down | |||
// things for users who don't use Sync. It's a bit smarter to have | |||
// yourself notified when to start and stop tracking therefore: | |||
Svc.Obs.add("weave:engine:start-tracking", this); | |||
Svc.Obs.add("weave:engine:stop-tracking", this); | |||
} | } | ||
FooTracker.prototype = { | FooTracker.prototype = { | ||
__proto__: Tracker.prototype, | __proto__: Tracker.prototype, | ||
_logName: "FooTracker", | _logName: "FooTracker", | ||
_enabled: false, | |||
observe: function observe(subject, topic, data) { | |||
switch (topic) { | |||
case "weave:engine:start-tracking": | |||
if (!this._enabled) { | |||
// register event handler or observer here | |||
... | |||
this._enabled = true; | |||
} | |||
break; | |||
case "weave:engine:stop-tracking": | |||
if (this._enabled) { | |||
// remove event handler or observer here | |||
... | |||
this._enabled = false; | |||
} | |||
break; | |||
} | |||
onEvent: function FooTracker_onEvent() { | onEvent: function FooTracker_onEvent() { | ||