si_RememberSignonDataFromBrowser(const char* passwordRealm, nsAutoString username, nsAutoString password) {
si_RememberSignonDataFromBrowser(const char* passwordRealm, const nsString& username, const nsString& password) {
si_RememberSignonDataFromBrowser(const char* passwordRealm, nsAutoString username, nsAutoString password) {  /* do nothing if signon preference is not enabled */  if (!si_GetSignonRememberingPref()){    return;  }  nsVoidArray * signonData = new nsVoidArray();  si_SignonDataStruct * data1 = new si_SignonDataStruct;  data1->name.AssignWithConversion(USERNAMEFIELD);  if (NS_FAILED(si_Encrypt(nsAutoString(username), data1->value))) {    return;  }  data1->isPassword = PR_FALSE;  signonData->AppendElement(data1);  si_SignonDataStruct * data2 = new si_SignonDataStruct;  data2->name.AssignWithConversion(PASSWORDFIELD);  if (NS_FAILED(si_Encrypt(nsAutoString(password), data2->value))) {    return;  }  data2->isPassword = PR_TRUE;  signonData->AppendElement(data2);  /* Save the signon data */  si_PutData(passwordRealm, signonData, PR_TRUE);  /* Deallocate */  delete data1;  delete data2;  delete signonData;}