rem: if(!stopMenu) 
add: if (!stopMenu) 
context:   onStateChange : function(channel, state)  {    if(!throbberElement)      throbberElement = document.getElementById("navigator-throbber");    if(!statusMeter)      statusMeter = document.getElementById("statusbar-icon");    if(!stopButton)      stopButton = document.getElementById("stop-button");    if(!stopMenu)      stopMenu = document.getElementById("menuitem-stop");    if(!stopContext)      stopContext = document.getElementById("context-stop");    if (state & Components.interfaces.nsIWebProgressListener.STATE_START) {      if(state & Components.interfaces.nsIWebProgressListener.STATE_IS_NETWORK) {        // Remember when loading commenced.        startTime = (new Date()).getTime();        // Turn progress meter on.        statusMeter.setAttribute("mode","undetermined");        throbberElement.setAttribute("busy", true);        // XXX: These need to be based on window activity...            stopButton.setAttribute("disabled", false);        stopMenu.setAttribute("disabled", false);        stopContext.setAttribute("disabled", false);        // Initialize the progress stuff...        statusMeter.setAttribute("mode","undetermined");        useRealProgressFlag = false;        totalRequests = 0;        finishedRequests = 0;      }      if (state & Components.interfaces.nsIWebProgressListener.STATE_IS_REQUEST) {        totalRequests += 1;      }      EnableBusyCursor(throbberElement.getAttribute("busy") == "true");    }    else if (state & Components.interfaces.nsIWebProgressListener.STATE_STOP) {      if (state & Components.interfaces.nsIWebProgressListener.STATE_IS_REQUEST) {        finishedRequests += 1;        if (!useRealProgressFlag) {          this.onProgress(null, finishedRequests, totalRequests);        }      }      if(state & Components.interfaces.nsIWebProgressListener.STATE_IS_NETWORK) {        var location = channel.URI.spec;        var msg = "";        if (location != "about:blank") {          // Record page loading time.          var elapsed = ( (new Date()).getTime() - startTime ) / 1000;          msg = bundle.GetStringFromName("nv_done");          msg = msg.replace(/%elapsed%/, elapsed);        }        defaultStatus = msg;        UpdateStatusField();        // Turn progress meter off.        statusMeter.setAttribute("mode","normal");        statusMeter.value = 0;  // be sure to clear the progress bar        statusMeter.progresstext = "";        throbberElement.setAttribute("busy", false);        // XXX: These need to be based on window activity...        stopButton.setAttribute("disabled", true);        stopMenu.setAttribute("disabled", true);        stopContext.setAttribute("disabled", true);        EnableBusyCursor(false);      }    }    else if (state & Components.interfaces.nsIWebProgressListener.STATE_TRANSFERRING) {      if (state & Components.interfaces.nsIWebProgressListener.STATE_IS_DOCUMENT) {        var ctype=channel.contentType;          if (ctype != "text/html") {          useRealProgressFlag = true;        }        statusMeter.setAttribute("mode", "normal");      }      if (state & Components.interfaces.nsIWebProgressListener.STATE_IS_REQUEST) {        if (!useRealProgressFlag) {          this.onProgress(null, finishedRequests, totalRequests);        }      }    }  },
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8395/ff18b315dc97c7e016fac570eaedf8ab9617245b/navigator.js/buggy/xpfe/browser/resources/content/navigator.js