rem: username = ioService.extractUrlPart(host, ioService.url_Username, unused, unused); 
add: username = ioService.newURI(host, null, null).username; 
context: function LoadSignons() {  // loads signons into table  var enumerator = passwordmanager.enumerator;  var count = 0;  while (enumerator.hasMoreElements()) {    var nextPassword;    try {      nextPassword = enumerator.getNext();    } catch(e) {      /* user supplied invalid database key */      window.close();      return false;    }    nextPassword = nextPassword.QueryInterface(Components.interfaces.nsIPassword);    var host = nextPassword.host;    var user = nextPassword.user;    var rawuser = user;    // if no username supplied, try to parse it out of the url    if (user == "") {      var unused = { };      var ioService = Components.classes["@mozilla.org/network/io-service;1"]                    .getService(Components.interfaces.nsIIOService);      var username;      try {        username = ioService.extractUrlPart(host, ioService.url_Username, unused, unused);      } catch(e) {        username = "";      }      if (username != "") {        user = username;      } else {        user = "<>";      }    }    if (encrypted) {      user = kSignonBundle.getFormattedString("encrypted", [user], 1);    }    signons[count] = new Signon(count++, host, user, rawuser);  }  signonsTreeView.rowCount = signons.length;  // sort and display the table  signonsTree.treeBoxObject.view = signonsTreeView;  SignonColumnSort('host');  // disable "remove all signons" button if there are no signons  var element = document.getElementById("removeAllSignons");  if (signons.length == 0) {    element.setAttribute("disabled","true");  } else {    element.removeAttribute("disabled");  }   return true;}
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8395/d86e3064ab35c88060d9d26578b243a0c34269ab/SignonViewer.js/buggy/extensions/wallet/signonviewer/SignonViewer.js