/* 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"

interface nsIBounceTrackingRecord;

/**
 * This interface represents an entry in the global bounce tracker or user activation map.
 */
[scriptable, builtinclass, uuid(51B0B5AE-0AC2-4A3C-8C7E-3523FA42881B)]
interface nsIBounceTrackingMapEntry : nsISupports {
    // The host of the site that has received user activation or is a bounce tracker candidate.
    readonly attribute ACString siteHost;
    // The time when the user activation or bounce tracker candidate was added.
    // This is a PRTime, which is USEC since the epoch.
    readonly attribute PRTime timeStamp;
};

/**
 * This interface represents an entry in the purged bounce trackers log.
 */
[scriptable, builtinclass, uuid(DFED8ADB-C15C-4E87-AC11-7101AB8BC7DD)]
interface nsIBounceTrackingPurgeEntry : nsIBounceTrackingMapEntry {
    // The time when the bounce tracker was purged. timeStamp of the parent
    // class is the bounce time. This is a PRTime, which is USEC since the
    // epoch.
    readonly attribute PRTime purgeTime;
    // The bounce tracking record for the redirect chain that led to this purge.
    // May be null if no chain context is available.
    readonly attribute nsIBounceTrackingRecord bounceTrackingRecord;
};
