summaryrefslogtreecommitdiffstats
path: root/toolkit/components/passwordmgr/nsILoginInfo.idl
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/passwordmgr/nsILoginInfo.idl')
-rw-r--r--toolkit/components/passwordmgr/nsILoginInfo.idl149
1 files changed, 149 insertions, 0 deletions
diff --git a/toolkit/components/passwordmgr/nsILoginInfo.idl b/toolkit/components/passwordmgr/nsILoginInfo.idl
new file mode 100644
index 0000000000..030ed3dbdb
--- /dev/null
+++ b/toolkit/components/passwordmgr/nsILoginInfo.idl
@@ -0,0 +1,149 @@
+/* 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"
+
+/**
+ * An object containing information for a login stored by the
+ * password manager.
+ */
+[scriptable, uuid(c41b7dff-6b9b-42fe-b78d-113051facb05)]
+interface nsILoginInfo : nsISupports {
+ /**
+ * A string to display to the user for the origin which includes the httpRealm,
+ * where applicable.
+ * e.g. "site.com", "site.com:1234", or "site.com (My Secure Realm)"
+ */
+ readonly attribute AString displayOrigin;
+
+ /**
+ * The origin the login applies to.
+ *
+ * For example,
+ * "https://site.com", "http://site.com:1234", "ftp://ftp.site.com",
+ * "moz-proxy://127.0.0.1:8888, "chrome://FirefoxAccounts", "file://".
+ */
+ attribute AString origin;
+
+ /**
+ * The origin the login applies to, incorrectly called a hostname.
+ * @deprecated in favor of `origin`
+ */
+ attribute AString hostname;
+
+ /**
+ * The origin a form-based login was submitted to.
+ *
+ * For logins obtained from HTML forms, this field is the origin of the |action|
+ * attribute from the |form| element. 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 formActionOrigin;
+
+ /**
+ * The origin a form-based login was submitted to, incorrectly referred to as a URL.
+ * @deprecated in favor of `formActionOrigin`
+ */
+ 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.
+ *
+ * @note This attribute is currently saved but not used.
+ */
+ 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.
+ *
+ * @note This attribute is currently saved but not used.
+ */
+ attribute AString passwordField;
+
+ /**
+ * Unknown fields this client doesn't know about but will be roundtripped
+ * for other clients to prevent data loss
+ */
+ attribute AString unknownFields;
+
+ /**
+ * Initialize a newly created nsLoginInfo object.
+ *
+ * The arguments are the fields for the new object.
+ */
+ void init(in AString aOrigin,
+ in AString aFormActionOrigin, in AString aHttpRealm,
+ in AString aUsername, in AString aPassword,
+ [optional] in AString aUsernameField, [optional] 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"
+
+%}