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