/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* 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" %{ C++ namespace mozilla { class NeckoOriginAttributes; } // mozilla namespace %} [ptr] native NeckoOriginAttributesPtr(mozilla::NeckoOriginAttributes); interface nsISimpleEnumerator; [scriptable, function, uuid(20709db8-8dad-4e45-b33e-6e7c761dfc5d)] interface nsIPrivateModeCallback : nsISupports { void callback(); }; /** * An optional interface for accessing or removing the cookies * that are in the cookie list */ [scriptable, uuid(AAAB6710-0F2C-11d5-A53B-0010A401EB10)] interface nsICookieManager : nsISupports { /** * Called to remove all cookies from the cookie list */ void removeAll(); /** * Called to enumerate through each cookie in the cookie list. * The objects enumerated over are of type nsICookie */ readonly attribute nsISimpleEnumerator enumerator; /** * Called to remove an individual cookie from the cookie list, specified * by host, name, and path. If the cookie cannot be found, no exception * is thrown. Typically, the arguments to this method will be obtained * directly from the desired nsICookie object. * * @param aHost The host or domain for which the cookie was set. @see * nsICookieManager2::add for a description of acceptable host * strings. If the target cookie is a domain cookie, a leading * dot must be present. * @param aName The name specified in the cookie * @param aPath The path for which the cookie was set * @param aOriginAttributes The originAttributes of this cookie. This * attribute is optional to avoid breaking add-ons. * In 1 or 2 releases it will be mandatory: bug 1260399. * @param aBlocked Indicates if cookies from this host should be permanently * blocked. * */ [implicit_jscontext, optional_argc] void remove(in AUTF8String aHost, in ACString aName, in AUTF8String aPath, in boolean aBlocked, [optional] in jsval aOriginAttributes); [notxpcom] nsresult removeNative(in AUTF8String aHost, in ACString aName, in AUTF8String aPath, in boolean aBlocked, in NeckoOriginAttributesPtr aOriginAttributes); /** * Set the cookie manager to work on private or non-private cookies for the * duration of the callback. * * @param aIsPrivate True to work on private cookies, false to work on * non-private cookies. * @param aCallback Methods on the cookie manager interface will work on * private or non-private cookies for the duration of this * callback. */ void usePrivateMode(in boolean aIsPrivate, in nsIPrivateModeCallback aCallback); };