home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Minami 80
/
MINAMI80.iso
/
Extra
/
DivXInstaller.exe
/
$PLUGINSDIR
/
GoogleToolbarFirefox.msi
/
xpi
/
amulet-jslib
/
firefox
/
navwatcher.js
< prev
next >
Wrap
Text File
|
2006-05-15
|
2KB
|
77 lines
function G_NavWatcher(opt_filterSpurious) {
this.debugZone = "navwatcher";
this.filterSpurious_ = !!opt_filterSpurious;
this.events = G_NavWatcher.events; // Convenience pointer
this.registrar_ = new EventRegistrar(this.events);
var wp = Ci.nsIWebProgress;
var wpService = Cc["@mozilla.org/docloaderservice;1"].getService(wp);
wpService.addProgressListener(this, wp.NOTIFY_STATE_ALL);
}
G_NavWatcher.events = {
DOCNAVSTART: "docnavstart",
};
G_NavWatcher.prototype.QueryInterface = function(iid) {
if (iid.equals(Ci.nsISupports) ||
iid.equals(Ci.nsIWebProgressListener) ||
iid.equals(Ci.nsISupportsWeakReference))
return this;
throw Components.results.NS_ERROR_NO_INTERFACE;
}
G_NavWatcher.prototype.registerListener = function(eventType,
listener) {
this.registrar_.registerListener(eventType, listener);
}
G_NavWatcher.prototype.removeListener = function(eventType,
listener) {
this.registrar_.removeListener(eventType, listener);
}
G_NavWatcher.prototype.fire = function(eventType, e) {
this.registrar_.fire(eventType, e);
}
G_NavWatcher.prototype.isSpurious_ = function(url) {
return (url == "about:blank" ||
url == "about:config" ||
url.indexOf("chrome://") == 0 ||
url.indexOf("file://") == 0 ||
url.indexOf("jar:") == 0);
}
G_NavWatcher.prototype.onStateChange = function(webProgress,
request,
stateFlags,
status) {
var wp = Ci.nsIWebProgressListener;
if (stateFlags & wp.STATE_START &&
stateFlags & wp.STATE_IS_REQUEST &&
request.loadFlags & Ci.nsIChannel.LOAD_DOCUMENT_URI) {
var url;
try {
url = request.name;
} catch(e) { return; }
if (!this.filterSpurious_ || !this.isSpurious_(url)) {
G_Debug(this, "firing docnavstart for " + url);
var eventObj = {
"request": request,
"url": url,
};
this.fire(this.events.DOCNAVSTART, eventObj);
}
}
}
G_NavWatcher.prototype.onLocationChange = function(webProgress,
request,
location) { }
G_NavWatcher.prototype.onProgressChange = function(webProgress,
request,
curSelfProgress,
maxSelfProgress,
curTotalProgress,
maxTotalProgress) { }
G_NavWatcher.prototype.onSecurityChange = function(webProgress,
request,
state) { }
G_NavWatcher.prototype.onStatusChange = function(webProgress,
request,
status,
message) { }
G_NavWatcher.prototype.onLinkIconAvailable = function(browser, aHref) { }