rem: toCall(event); } 
add: onLocationChange: function(aProgress, aRequest, aURI) { return 0; }, onProgressChange: function() { return 0; }, onStatusChange: function() { return 0; }, onSecurityChange: function() { return 0; }, onLinkIconAvailable: function() { return 0; } } 
context: function WebLoadingListener(driver, toCall) {    var listener = this;    var browser = Utils.getBrowser(driver.context);    this.func = function(event) {        // Is there a meta refresh?        // var doc = Utils.getDocument(driver.context);        var doc = event.originalTarget;        var result = doc.evaluate("/html/head/meta[@http-equiv]", doc, null, ORDERED_NODE_ITERATOR_TYPE, null);        var element = result.iterateNext();        while (element) {            if ("refresh" == element.getAttribute("http-equiv").toLowerCase()) {                var content = element.getAttribute("content");                if (content) {                    var bits = content.split(';');                    if (bits[0] - 0 === 0) {                        // We have an instant refresh, so return                        return;                    }                }            }            element = result.iterateNext();        }        WebLoadingListener.removeListener(browser, listener);        toCall(event);    }    browser.addEventListener(LOAD_EVENT, this.func, true);}
meta: 3428	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/3428/f50cda6e62d8abe3c6c51308947de15079fcb2f8/webLoadingListener.js/clean/firefox/src/extension/components/webLoadingListener.js