В дополнение к проблеме, отмеченной Николаем, наблюдателю необходимо реализовать функцию QueryInterface()
(обычно с помощью XPCOMUtils.generateQI () ).Вот как это можно сделать с помощью Add-on SDK:
var {Cc, Ci, Cr, Cu} = require("chrome");
var {XPCOMUtils} = Cu.import("resource://gre/modules/XPCOMUtils.jsm");
var httpRequestObserver =
{
QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
...
};
Однако, поскольку вам уже требуется observer-service
пакет , его будет проще использовать:
var observer = require("observer-service");
observer.add("http-on-examine-response", onHttpRequest);
function onHttpRequest(subject, data)
{
...
}
Недостатком этого подхода является то, что observer-service
является внутренним пакетом, и его API может измениться в будущих версиях Add-on SDK.