diff options
Diffstat (limited to 'netwerk/cookie/nsICookieManager2.idl')
-rw-r--r-- | netwerk/cookie/nsICookieManager2.idl | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/netwerk/cookie/nsICookieManager2.idl b/netwerk/cookie/nsICookieManager2.idl new file mode 100644 index 000000000..f20618bfa --- /dev/null +++ b/netwerk/cookie/nsICookieManager2.idl @@ -0,0 +1,164 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* 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 "nsICookieManager.idl" + +interface nsICookie2; +interface nsIFile; + +/** + * Additions to the frozen nsICookieManager + */ + +[scriptable, uuid(daf0caa7-b431-4b4d-ba51-08c179bb9dfe)] +interface nsICookieManager2 : nsICookieManager +{ + /** + * Add a cookie. nsICookieService is the normal way to do this. This + * method is something of a backdoor. + * + * @param aHost + * the host or domain for which the cookie is set. presence of a + * leading dot indicates a domain cookie; otherwise, the cookie + * is treated as a non-domain cookie (see RFC2109). The host string + * will be normalized to ASCII or ACE; any trailing dot will be + * stripped. To be a domain cookie, the host must have at least two + * subdomain parts (e.g. '.foo.com', not '.com'), otherwise an + * exception will be thrown. An empty string is acceptable + * (e.g. file:// URI's). + * @param aPath + * path within the domain for which the cookie is valid + * @param aName + * cookie name + * @param aValue + * cookie data + * @param aIsSecure + * true if the cookie should only be sent over a secure connection. + * @param aIsHttpOnly + * true if the cookie should only be sent to, and can only be + * modified by, an http connection. + * @param aIsSession + * true if the cookie should exist for the current session only. + * see aExpiry. + * @param aExpiry + * expiration date, in seconds since midnight (00:00:00), January 1, + * 1970 UTC. note that expiry time will also be honored for session cookies; + * in this way, the more restrictive of the two will take effect. + * @param aOriginAttributes The originAttributes of this cookie. This + * attribute is optional to avoid breaking add-ons. + */ + [implicit_jscontext, optional_argc] + void add(in AUTF8String aHost, + in AUTF8String aPath, + in ACString aName, + in ACString aValue, + in boolean aIsSecure, + in boolean aIsHttpOnly, + in boolean aIsSession, + in int64_t aExpiry, + [optional] in jsval aOriginAttributes); + + [notxpcom] + nsresult addNative(in AUTF8String aHost, + in AUTF8String aPath, + in ACString aName, + in ACString aValue, + in boolean aIsSecure, + in boolean aIsHttpOnly, + in boolean aIsSession, + in int64_t aExpiry, + in NeckoOriginAttributesPtr aOriginAttributes); + + /** + * Find whether a given cookie already exists. + * + * @param aCookie + * the cookie to look for + * @param aOriginAttributes + * nsICookie2 contains an originAttributes but if nsICookie2 is + * implemented in JS, we can't retrieve its originAttributes because + * the getter is marked [implicit_jscontext]. This optional parameter + * is a workaround. + * + * @return true if a cookie was found which matches the host, path, and name + * fields of aCookie + */ + [implicit_jscontext, optional_argc] + boolean cookieExists(in nsICookie2 aCookie, + [optional] in jsval aOriginAttributes); + + [notxpcom] + nsresult cookieExistsNative(in nsICookie2 aCookie, + in NeckoOriginAttributesPtr aOriginAttributes, + out boolean aExists); + + /** + * Count how many cookies exist within the base domain of 'aHost'. + * Thus, for a host "weather.yahoo.com", the base domain would be "yahoo.com", + * and any host or domain cookies for "yahoo.com" and its subdomains would be + * counted. + * + * @param aHost + * the host string to search for, e.g. "google.com". this should consist + * of only the host portion of a URI. see @add for a description of + * acceptable host strings. + * + * @return the number of cookies found. + */ + unsigned long countCookiesFromHost(in AUTF8String aHost); + + /** + * Returns an enumerator of cookies that exist within the base domain of + * 'aHost'. Thus, for a host "weather.yahoo.com", the base domain would be + * "yahoo.com", and any host or domain cookies for "yahoo.com" and its + * subdomains would be returned. + * + * @param aHost + * the host string to search for, e.g. "google.com". this should consist + * of only the host portion of a URI. see @add for a description of + * acceptable host strings. + * @param aOriginAttributes The originAttributes of cookies that would be + * retrived. This attribute is optional to avoid + * breaking add-ons. + * + * @return an nsISimpleEnumerator of nsICookie2 objects. + * + * @see countCookiesFromHost + */ + [implicit_jscontext, optional_argc] + nsISimpleEnumerator getCookiesFromHost(in AUTF8String aHost, + [optional] in jsval aOriginAttributes); + + /** + * Import an old-style cookie file. Imported cookies will be added to the + * existing database. If the database contains any cookies the same as those + * being imported (i.e. domain, name, and path match), they will be replaced. + * + * @param aCookieFile the file to import, usually cookies.txt + */ + void importCookies(in nsIFile aCookieFile); + + /** + * Returns an enumerator of all cookies whose origin attributes matches aPattern + * + * @param aPattern origin attribute pattern in JSON format + * + * @param aHost + * the host string to search for, e.g. "google.com". this should consist + * of only the host portion of a URI. see @add for a description of + * acceptable host strings. This attribute is optional. It will search + * all hosts if this attribute is not given. + */ + nsISimpleEnumerator getCookiesWithOriginAttributes(in DOMString aPattern, + [optional] in AUTF8String aHost); + + /** + * Remove all the cookies whose origin attributes matches aPattern + * + * @param aPattern origin attribute pattern in JSON format + */ + void removeCookiesWithOriginAttributes(in DOMString aPattern, + [optional] in AUTF8String aHost); +}; |