/* 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" [scriptable, uuid(c41b7dff-6b9b-42fe-b78d-113051facb05)] /** * An object containing information for a login stored by the * password manager. */ interface nsILoginInfo : nsISupports { /** * The hostname the login applies to. * * The hostname should be formatted as an URL. For example, * "https://site.com", "http://site.com:1234", "ftp://ftp.site.com". */ attribute AString hostname; /** * The URL a form-based login was submitted to. * * For logins obtained from HTML forms, this field is the |action| * attribute from the |form| element, with the path removed. For * example "http://www.site.com". [Forms with no |action| attribute * default to submitting to their origin URL, so we store that.] * * For logins obtained from a HTTP or FTP protocol authentication, * this field is NULL. */ attribute AString formSubmitURL; /** * The HTTP Realm a login was requested for. * * When an HTTP server sends a 401 result, the WWW-Authenticate * header includes a realm to identify the "protection space." See * RFC2617. If the response sent has a missing or blank realm, the * hostname is used instead. * * For logins obtained from HTML forms, this field is NULL. */ attribute AString httpRealm; /** * The username for the login. */ attribute AString username; /** * The |name| attribute for the username input field. * * For logins obtained from a HTTP or FTP protocol authentication, * this field is an empty string. */ attribute AString usernameField; /** * The password for the login. */ attribute AString password; /** * The |name| attribute for the password input field. * * For logins obtained from a HTTP or FTP protocol authentication, * this field is an empty string. */ attribute AString passwordField; /** * Initialize a newly created nsLoginInfo object. * * The arguments are the fields for the new object. */ void init(in AString aHostname, in AString aFormSubmitURL, in AString aHttpRealm, in AString aUsername, in AString aPassword, in AString aUsernameField, in AString aPasswordField); /** * Test for strict equality with another nsILoginInfo object. * * @param aLoginInfo * The other object to test. */ boolean equals(in nsILoginInfo aLoginInfo); /** * Test for loose equivalency with another nsILoginInfo object. The * passwordField and usernameField values are ignored, and the password * values may be optionally ignored. If one login's formSubmitURL is an * empty string (but not null), it will be treated as a wildcard. [The * blank value indicates the login was stored before bug 360493 was fixed.] * * @param aLoginInfo * The other object to test. * @param ignorePassword * If true, ignore the password when checking for match. */ boolean matches(in nsILoginInfo aLoginInfo, in boolean ignorePassword); /** * Create an identical copy of the login, duplicating all of the login's * nsILoginInfo and nsILoginMetaInfo properties. * * This allows code to be forwards-compatible, when additional properties * are added to nsILoginMetaInfo (or nsILoginInfo) in the future. */ nsILoginInfo clone(); }; %{C++ #define NS_LOGININFO_CONTRACTID "@mozilla.org/login-manager/loginInfo;1" %}