bug 103467, fields with default values do not get prefilled by password manager, r=law, sr=alecf

This commit is contained in:
morse%netscape.com 2001-10-09 03:39:59 +00:00
Родитель 7c7aaca10e
Коммит 3111ec0766
1 изменённых файлов: 20 добавлений и 24 удалений

Просмотреть файл

@ -432,32 +432,28 @@ nsWalletlibService::OnStateChange(nsIWebProgress* aWebProgress,
if (NS_SUCCEEDED(rv)) {
PRUnichar* nameString = ToNewUnicode(field);
if (nameString) {
/* note: we do not want to prefill if there is a default value */
nsAutoString value;
rv = inputElement->GetValue(value);
if (NS_FAILED(rv) || value.Length() == 0) {
PRUnichar* valueString = NULL;
nsCOMPtr<nsIInterfaceRequestor> interfaces;
nsCOMPtr<nsIPrompt> prompter;
PRUnichar* valueString = NULL;
nsCOMPtr<nsIInterfaceRequestor> interfaces;
nsCOMPtr<nsIPrompt> prompter;
nsCOMPtr<nsIChannel> channel = do_QueryInterface(aRequest);
if (channel)
channel->GetNotificationCallbacks(getter_AddRefs(interfaces));
if (interfaces)
interfaces->GetInterface(NS_GET_IID(nsIPrompt), getter_AddRefs(prompter));
if (!prompter) {
nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1"));
if (wwatch)
wwatch->GetNewPrompter(0, getter_AddRefs(prompter));
}
if (prompter) {
SINGSIGN_RestoreSignonData(prompter, spec, nameString, &valueString, elementNumber++);
}
if (valueString) {
value = valueString;
rv = inputElement->SetValue(value);
// warning! don't delete valueString
}
nsCOMPtr<nsIChannel> channel = do_QueryInterface(aRequest);
if (channel)
channel->GetNotificationCallbacks(getter_AddRefs(interfaces));
if (interfaces)
interfaces->GetInterface(NS_GET_IID(nsIPrompt), getter_AddRefs(prompter));
if (!prompter) {
nsCOMPtr<nsIWindowWatcher> wwatch(do_GetService("@mozilla.org/embedcomp/window-watcher;1"));
if (wwatch)
wwatch->GetNewPrompter(0, getter_AddRefs(prompter));
}
if (prompter) {
SINGSIGN_RestoreSignonData(prompter, spec, nameString, &valueString, elementNumber++);
}
if (valueString) {
value = valueString;
rv = inputElement->SetValue(value);
// warning! don't delete valueString
}
Recycle(nameString);
}