summaryrefslogtreecommitdiffstats
path: root/toolkit/components/cookiebanners/nsICookieRule.idl
blob: 41801cc3e518690c83828f0714f4eacb65ec37cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* -*- 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"
#include "nsICookie.idl"

/**
 * Rule which specifies a cookie to be set in order to handle a cookie banner.
 */

[builtinclass, scriptable, uuid(bf049b1e-8a05-481f-a120-332ea1bd65ef)]
interface nsICookieRule : nsISupports {
    /**
     * The cookie to set.
     * When calling this getter creation, expiry and last accessed time are
     * computed.
     */
    readonly attribute nsICookie cookie;

    /**
     * Expiry time of the cookie in seconds relative to the injection time.
     * If you want a cookie to expire in 1 month after it has been set, set this
     * to 2592000.
     * Defaults to 'cookiebanners.cookieInjector.defaultExpiryRelative'.
     */
    readonly attribute int64_t expiryRelative;

    /**
     * If an existing cookie sets this value it may be overwritten.
     * This is used for sites which set an explicit cookie state, even if a
     * cookie banner is still pending.
     */
    readonly attribute AUTF8String unsetValue;

    /**
     * Create a copy of this rule for a domain. If the cookie host is unset it
     * is set to ".<domain>".
     * Non-empty host fields will be preserved.
     */
    [noscript]
    nsICookieRule copyForDomain(in ACString aDomain);
};