rem: element.setAttribute("progress", "100"); break; 
context:   onStateChange: function (aAddon, aState, aValue)  {    const nsIXPIProgressDialog = Components.interfaces.nsIXPIProgressDialog;    var element = this.getElementForAddon(aAddon);    if (!element) return;    switch (aState) {      case nsIXPIProgressDialog.DOWNLOAD_START:        element.setAttribute("state", "waiting");        var extensionsStrings = document.getElementById("extensionsStrings");        element.setAttribute("description",                             extensionsStrings.getString("installWaiting"));        element.setAttribute("progress", "0");        break;      case nsIXPIProgressDialog.DOWNLOAD_DONE:        element.setAttribute("progress", "100");        break;      case nsIXPIProgressDialog.INSTALL_START:        element.setAttribute("state", "installing");        extensionsStrings = document.getElementById("extensionsStrings");        element.setAttribute("description",                             extensionsStrings.getString("installInstalling"));        break;      case nsIXPIProgressDialog.INSTALL_DONE:        element.setAttribute("state", "done");        if (aValue != 0 && aValue != 999) {          var xpinstallStrings = document.getElementById("xpinstallStrings");          try {            var msg = xpinstallStrings.getString("error" + aValue);          }          catch (e) {            msg = xpinstallStrings.getFormattedString("unknown.error", [aValue]);          }          var sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]                              .getService(Components.interfaces.nsIStringBundleService);          var extensionStrings = sbs.createBundle("chrome://mozapps/locale/extensions/extensions.properties");          var title = extensionStrings.GetStringFromName("errorInstallTitle");          var brandStrings = sbs.createBundle("chrome://branding/locale/brand.properties");          var brandShortName = brandStrings.GetStringFromName("brandShortName");          var params = [brandShortName, aAddon.xpiURL, msg];          var message = extensionStrings.formatStringFromName("errorInstallMsg", params, params.length);          var ps = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]                             .getService(Components.interfaces.nsIPromptService);          ps.alert(window, title, message);          element.setAttribute("status", msg);        }        break;      case nsIXPIProgressDialog.DIALOG_CLOSE:        break;    }  },
meta: 10234	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/10234/e70cc1872d3fa7a9c82c261be41c9d7d67b9d270/extensions.js/buggy/toolkit/mozapps/extensions/content/extensions.js