chromium/components/heavy_ad_intervention/heavy_ad_blocklist.h

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_HEAVY_AD_INTERVENTION_HEAVY_AD_BLOCKLIST_H_
#define COMPONENTS_HEAVY_AD_INTERVENTION_HEAVY_AD_BLOCKLIST_H_

#include <stdint.h>

#include "base/time/time.h"
#include "components/blocklist/opt_out_blocklist/opt_out_blocklist.h"

namespace base {
class Clock;
}

namespace blocklist {
class OptOutBlocklistDelegate;
class OptOutStore;
}  // namespace blocklist

namespace heavy_ad_intervention {

// The heavy ad intervention only supports one type for the blocklist.
enum class HeavyAdBlocklistType {};

// A class that manages opt out blocklist parameters for the heavy ad
// intervention. The blocklist is used to allow at most 5 interventions per top
// frame origin per day. This prevents the intervention from being used as a
// cross-origin side channel.
class HeavyAdBlocklist : public blocklist::OptOutBlocklist {};

}  // namespace heavy_ad_intervention

#endif  // COMPONENTS_HEAVY_AD_INTERVENTION_HEAVY_AD_BLOCKLIST_H_