/* -*- 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 "nsICookie.idl" /** * Main cookie object interface for use by consumers: * extends nsICookie, a frozen interface for external * access of cookie objects */ // Rev slightly different UUID for TenFourFox since we // are, indeed, slightly different than Firefox (see // TenFourFix issue 499). [scriptable, uuid(be205daf-4f4c-11e6-80ba-ea5cd310c1a8)] interface nsICookie2 : nsICookie { const uint32_t SAMESITE_UNSET = 0; const uint32_t SAMESITE_LAX = 1; const uint32_t SAMESITE_STRICT = 2; /** * the host (possibly fully qualified) of the cookie, * without a leading dot to represent if it is a * domain cookie. */ readonly attribute AUTF8String rawHost; /** * true if the cookie is a session cookie. * note that expiry time will also be honored * for session cookies (see below); thus, whichever is * the more restrictive of the two will take effect. */ readonly attribute boolean isSession; /** * the actual expiry time of the cookie, in seconds * since midnight (00:00:00), January 1, 1970 UTC. * * this is distinct from nsICookie::expires, which * has different and obsolete semantics. */ readonly attribute int64_t expiry; /** * true if the cookie is an http only cookie */ readonly attribute boolean isHttpOnly; /** * the creation time of the cookie, in microseconds * since midnight (00:00:00), January 1, 1970 UTC. */ readonly attribute int64_t creationTime; /** * the last time the cookie was accessed (i.e. created, * modified, or read by the server), in microseconds * since midnight (00:00:00), January 1, 1970 UTC. * * note that this time may be approximate. */ readonly attribute int64_t lastAccessed; /** * the sameSite attribute; this controls the cookie behavior for cross-site * requests as per * https://tools.ietf.org/html/draft-west-first-party-cookies-07 * * This should be one of: * - SAMESITE_UNSET - the SameSite attribute is not present * - SAMESITE_LAX - the SameSite attribute is present, but not strict * - SAMESITE_STRICT - the SameSite attribute is present and strict */ readonly attribute int32_t sameSite; };