chromium/components/user_education/common/feature_promo_registry.h

// Copyright 2020 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_USER_EDUCATION_COMMON_FEATURE_PROMO_REGISTRY_H_
#define COMPONENTS_USER_EDUCATION_COMMON_FEATURE_PROMO_REGISTRY_H_

#include <map>

#include "base/containers/contains.h"
#include "base/containers/map_util.h"
#include "base/feature_list.h"
#include "components/user_education/common/feature_promo_specification.h"
#include "components/user_education/common/new_badge_specification.h"

namespace user_education {

// Stores parameters for in-product help promos. For each registered
// IPH, has the bubble parameters and a method for getting an anchor
// view for a given BrowserView. Promos should be registered here when
// feasible.
template <typename T>
class FeatureRegistry {};

// Registry used for IPH.
class FeaturePromoRegistry : public FeatureRegistry<FeaturePromoSpecification> {};

// Registry used for "New" Badge.
class NewBadgeRegistry : public FeatureRegistry<NewBadgeSpecification> {};

}  // namespace user_education

#endif  // COMPONENTS_USER_EDUCATION_COMMON_FEATURE_PROMO_REGISTRY_H_