Wed, 28 Nov 2007 14:40:21 -0800
changeset 8421 80c35f7413186810e0be3a394a1cf39ee8930579
parent 7989 938b7431d4f58de693c2c02476c8f702a0429ac7
child 30354 ace719621c5631b2c328371b260411da2d720707
permissions -rw-r--r--
Bug 405219 - "system nspr, nss and cairo checks should bump their version checking" [ (Mike Hommey) r=bsmedberg a1.9=beltzner]

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 * The Original Code is code.
 * The Initial Developer of the Original Code is
 * Netscape Communications Corporation.
 * Portions created by the Initial Developer are Copyright (C) 2003
 * the Initial Developer. All Rights Reserved.
 * Contributor(s):
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 * ***** END LICENSE BLOCK ***** */

#include "nsICookieManager.idl"

interface nsICookie2;
interface nsIFile;

 * Additions to the frozen nsICookieManager

[scriptable, uuid(5047cab4-9cb2-4927-a4ab-77422bc3bc67)]
interface nsICookieManager2 : nsICookieManager
   * Add a cookie. nsICookieService is the normal way to do this. This
   * method is something of a backdoor.
   * @param aDomain
   *        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.
   * @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.
  void add(in AUTF8String aDomain,
           in AUTF8String aPath,
           in ACString    aName,
           in ACString    aValue,
           in boolean     aIsSecure,
           in boolean     aIsHttpOnly,
           in boolean     aIsSession,
           in PRInt64     aExpiry);

   * Find whether a given cookie already exists.
   * @param aCookie
   *        the cookie to look for
   * @return true if a cookie was found which matches the host, path, and name
   *         fields of aCookie
  boolean cookieExists(in nsICookie2 aCookie);

   * Count how many cookies would be returned to a given host, ignoring the
   * cookie flags isDomain, isSecure, and isHttpOnly. Thus, for a host
   * "", host or domain cookies for "" and
   * "" would be counted, while a cookie for ""
   * would not.
   * @param aHost
   *        the host string to look for, e.g. "". this should consist
   *        of only the host portion of a URI, and should not contain a leading
   *        dot, a port, etc.
   * @return the number of cookies found.
  unsigned long countCookiesFromHost(in ACString aHost);

   * 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);