Планирую расширение для сайта использующего XMLHTTPRequest, ранее с ним работать не приходилось и возникли трудности. По задумке -  нужно отследить запрос на сервер, если он из тех что требуется то перехватить  и ответ на него, но покачто не подобрал даже какие события надо слушать,  нет ли статьи на русском где это описано?  В расширение Firebug найти ответа не вышло, как-то там много всего.  :rolleyes:

Орец
См. nsIObserverService и http-on-modify-request / http-on-examine-response.

а вот маленький пример

Выделить код

Код:

var fake_cookie;
var listener = {
    observe:function (aSubject, aTopic, aData) {
        // Make sure it is our connection first.
        if (aSubject == ((scc.online) ? scc.req2.channel : scc.req.channel)) {
            var httpChannel = aSubject.QueryInterface(Components.interfaces.nsIHttpChannel);
            if (aTopic == "http-on-modify-request") {
                if (httpChannel.getRequestHeader('Cookie').indexOf('xxxxxxxxx') != -1) {
                    httpChannel.setRequestHeader('Cookie', fake_cookie, false);
                }
                ;
            } else if (aTopic == "http-on-examine-response") {
                // ...
            }
        }
    },

    QueryInterface:function (aIID) {
        if (aIID.equals(Components.interfaces.nsISupports) ||
            aIID.equals(Components.interfaces.nsIObserver))
            return this;
        throw Components.results.NS_NOINTERFACE;
    }
};

// get the observer service and register for the two coookie topics.
//function  add_obs(){
var observerService = Components.classes["@mozilla.org/observer-service;1"]
    .getService(Components.interfaces.nsIObserverService)
observerService.addObserver(listener, "http-on-modify-request", false);