rem: elt.setAttribute("progress", dl.percentComplete); 
add: if (dl.percentComplete == -1) { if (!elt.hasAttribute("progressmode")) elt.setAttribute("progressmode", "undetermined"); if (elt.hasAttribute("progress")) elt.removeAttribute("progress"); } else { elt.setAttribute("progress", dl.percentComplete); if (elt.hasAttribute("progressmode")) elt.removeAttribute("progressmode"); } 
context:   observe: function(subject, topic, state) {    var dl = subject.QueryInterface(Components.interfaces.nsIDownload);    var elt = document.getElementById(dl.target.path);    switch (topic) {      case "dl-progress":        elt.setAttribute("progress", dl.percentComplete);        break;      default:        elt.onEnd(topic);        break;    }  }
meta: 5459	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/5459/9c46dcb28b54d7cde2afb4993f91af483cccd316/downloadPanel.js/clean/browser/components/downloads/content/downloadPanel.js