Put this code in my extension. I don't see alerts to trigger ... what
am I doing wrong now ?

const STATE_IS_DOCUMENT =
        Components.interfaces.nsIWebProgressListener.STATE_IS_DOCUMENT;
const STATE_STOP =
        Components.interfaces.nsIWebProgressListener.STATE_STOP;

var HomePageForeverListener =
{
    QueryInterface: function(aIID) {
        if (aIID.equals(Components.interfaces.nsIWebProgressListener)
||
            aIID.equals(Components.interfaces.nsISupportsWeakReference)
||
            aIID.equals(Components.interfaces.nsISupports))
            return this;
        throw Components.results.NS_NOINTERFACE;
    },

    onStateChange:function(aProgress, aRequest, aFlag, aStatus)
    {
        alert("Point1");
        if(aFlag & (STATE_IS_DOCUMENT|STATE_STOP))
        {
            alert("Point2");

aRequest.QueryInterface(Components.interfaces.nsIHttpChannel);

            alert("Point3");
            // If the response sent is 404,
            if(aRequest.responseStatus == 404){
                alert("Point4");
                var homePageURL =
Components.classes["@mozilla.org/preferences-service;1"].

getService(Components.interfaces.nsIPrefService).getBranch("").
                        getComplexValue("browser.startup.homepage",
Components.interfaces.nsISupportsString).data.trim();

setTimeout("window.content.location.href='"+homePageURL+"'", 5000);
            }

            // If the response sent is 503,
            if(aRequest.responseStatus == 503){
                alert("Point5");
                var homePageURL =
Components.classes["@mozilla.org/preferences-service;1"].

getService(Components.interfaces.nsIPrefService).getBranch("").
                        getComplexValue("browser.startup.homepage",
Components.interfaces.nsISupportsString).data.trim();

setTimeout("window.content.location.href='"+homePageURL+"'", 5000);
            }
        }
    },

    onLocationChange: function() {
        alert("PointLocationChange");
        return 0; },
    onProgressChange: function() {
        alert("PointProgressChange");
        return 0; },
    onStatusChange: function() {
        alert("PointProgressChange");
        return 0; },
    onSecurityChange: function() {
        alert("PointSecurityChange");
        return 0; },
    onLinkIconAvailable: function() {
        alert("PointLinkIconChange");
        return 0; }
}

function registerMyListener(){
    window.getBrowser().addProgressListener(HomePageForeverListener ,
Components.interfaces.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
}

function unregisterMyListener(){

window.getBrowser().removeProgressListener(HomePageForeverListener);
}

window.addEventListener("load",registerMyListener,false);
window.addEventListener("unload",unregisterMyListener,false);

_______________________________________________
dev-tech-xpcom mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-xpcom

Reply via email to