rem: this.translateMenu.removeAttribute('disabled'); 
add: this.isImage.removeAttribute('disabled'); 
context:   onStateChange : function(aWebProgress, aRequest, aStateFlags, aStatus)  {      //ignore local/resource:/chrome: files    if (aStatus == NS_NET_STATUS_READ_FROM || aStatus == NS_NET_STATUS_WROTE_TO)      return;    const nsIWebProgressListener = Components.interfaces.nsIWebProgressListener;    const nsIChannel = Components.interfaces.nsIChannel;    var domWindow;    var ctype;    if (aStateFlags & nsIWebProgressListener.STATE_START) {      if (aStateFlags & nsIWebProgressListener.STATE_IS_NETWORK) {        // Remember when loading commenced.        this.startTime = (new Date()).getTime();        domWindow = aWebProgress.DOMWindow;        if (aRequest && domWindow == _content)          this.startDocumentLoad(aRequest);        // Turn the throbber on.        this.throbberElement.setAttribute("busy", true);        // XXX: These need to be based on window activity...        this.stopButton.disabled = false;        this.stopMenu.removeAttribute('disabled');        this.stopContext.removeAttribute('disabled');        this.translateMenu.removeAttribute('disabled');        // Initialize the progress stuff...        this.useRealProgressFlag = false;        this.totalRequests = 0;        this.finishedRequests = 0;      }      if (aStateFlags & nsIWebProgressListener.STATE_IS_REQUEST) {        this.totalRequests += 1;      }    }    else if (aStateFlags & nsIWebProgressListener.STATE_STOP) {      if (aStateFlags & nsIWebProgressListener.STATE_IS_REQUEST) {        this.finishedRequests += 1;        if (!this.useRealProgressFlag)          this.onProgressChange(null, null, 0, 0, this.finishedRequests, this.totalRequests);      }      if (aStateFlags & nsIWebProgressListener.STATE_IS_NETWORK) {        domWindow = aWebProgress.DOMWindow;        if (aRequest) {          if (domWindow == this.getFrom(domWindow, "top"))            this.endDocumentLoad(aRequest, aStatus);          var location = aRequest.QueryInterface(nsIChannel).URI.spec;          var msg = "";          if (location != "about:blank") {            // Record page loading time.            var elapsed = ((new Date()).getTime() - this.startTime) / 1000;            msg = gNavigatorBundle.getString("nv_done");            msg = msg.replace(/%elapsed%/, elapsed);          }          this.status = "";          this.setDefaultStatus(msg);          ctype = aRequest.QueryInterface(nsIChannel).contentType;          if (ctype.match(/^image\//))            this.translateMenu.setAttribute('disabled', 'true');        }        // Turn the progress meter and throbber off.        this.statusMeter.value = 0;  // be sure to clear the progress bar        this.throbberElement.removeAttribute("busy");        // XXX: These need to be based on window activity...        // XXXjag: <command id="cmd_stop"/> ?        this.stopButton.disabled = true;        this.stopMenu.setAttribute('disabled', 'true');        this.stopContext.setAttribute('disabled', 'true');      }    }    else if (aStateFlags & nsIWebProgressListener.STATE_TRANSFERRING) {      if (aStateFlags & nsIWebProgressListener.STATE_IS_DOCUMENT) {        ctype = aRequest.QueryInterface(nsIChannel).contentType;        if (ctype != "text/html")          this.useRealProgressFlag = true;      }      if (aStateFlags & nsIWebProgressListener.STATE_IS_REQUEST) {        if (!this.useRealProgressFlag)          this.onProgressChange(null, null, 0, 0, this.finishedRequests, this.totalRequests);      }    }  },
meta: 5872	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/5872/c5431190d2e48004df163a392f82ba184f7390fa/nsBrowserStatusHandler.js/clean/suite/browser/nsBrowserStatusHandler.js