/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "nsISupports.idl" #include "nsIPromptInstance.idl" interface nsILoginInfo; interface nsIDOMWindow; webidl Element; [scriptable, uuid(c47ff942-9678-44a5-bc9b-05e0d676c79c)] interface nsILoginManagerPrompter : nsISupports { /** * Ask the user if they want to save a login (Yes, Never, Not Now) * * @param aBrowser * The browser of the webpage request that triggered the prompt. * @param aLogin * The login to be saved. * @param dismissed * A boolean value indicating whether the save logins doorhanger should * be dismissed automatically when shown. * @param notifySaved * A boolean value indicating whether the notification should indicate that * a login has been saved * @param autoFilledLoginGuid * A string guid value for the login which was autofilled into the form * @param possibleValues * Contains values from anything that we think, but are not sure, might be * a username or password. Has two properties, 'usernames' and 'passwords'. */ nsIPromptInstance promptToSavePassword( in Element aBrowser, in nsILoginInfo aLogin, [optional] in boolean dismissed, [optional] in boolean notifySaved, [optional] in AString autoFilledLoginGuid, [optional] in jsval possibleValues); /** * Ask the user if they want to change a login's password or username. * If the user consents, modifyLogin() will be called. * * @param aBrowser * The browser of the webpage request that triggered the prompt. * @param aOldLogin * The existing login (with the old password). * @param aNewLogin * The new login. * @param dismissed * A boolean value indicating whether the save logins doorhanger should * be dismissed automatically when shown. * @param autoSavedLoginGuid * A string guid value for the old login to be removed if the changes * match it to a different login * @param autoFilledLoginGuid * A string guid value for the login which was autofilled into the form * @param possibleValues * Contains values from anything that we think, but are not sure, might be * a username or password. Has two properties, 'usernames' and 'passwords'. */ nsIPromptInstance promptToChangePassword( in Element aBrowser, in nsILoginInfo aOldLogin, in nsILoginInfo aNewLogin, [optional] in boolean dismissed, [optional] in boolean notifySaved, [optional] in AString autoSavedLoginGuid, [optional] in AString autoFilledLoginGuid, [optional] in jsval possibleValues); /** * Ask the user if they want to change the password for one of * multiple logins, when the caller can't determine exactly which * login should be changed. If the user consents, modifyLogin() will * be called. * * @param aBrowser * The browser of the webpage request that triggered the prompt. * @param logins * An array of existing logins. * @param aNewLogin * The new login. * * Note: Because the caller does not know the username of the login * to be changed, aNewLogin.username and aNewLogin.usernameField * will be set (using the user's selection) before modifyLogin() * is called. */ nsIPromptInstance promptToChangePasswordWithUsernames( in Element aBrowser, in Array logins, in nsILoginInfo aNewLogin); };