// Copyright 2023 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_DATA_H_ #define COMPONENTS_USER_EDUCATION_COMMON_FEATURE_PROMO_DATA_H_ #include <map> #include <ostream> #include <string> #include "base/time/time.h" namespace user_education { // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. // // Represents the reason that a promo was ended/promo bubble was closed. enum class FeaturePromoClosedReason { … }; std::ostream& operator<<(std::ostream& oss, FeaturePromoClosedReason close_reason); // Per-key dismissal information. struct KeyedFeaturePromoData { … }; KeyedFeaturePromoDataMap; // Dismissal and snooze information. struct FeaturePromoData { … }; // Data about the current session, which can persist across browser restarts. struct FeaturePromoSessionData { … }; // Data that must be kept across browser restart to support the feature promo // policy. struct FeaturePromoPolicyData { … }; // Data about the "New" Badge for a particular feature. struct NewBadgeData { … }; } // namespace user_education #endif // COMPONENTS_USER_EDUCATION_COMMON_FEATURE_PROMO_DATA_H_