[go: nahoru, domu]

blob: 8446e902f7bda9acc2af12af576cdca92ef0fc0a [file] [log] [blame]
// 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 CHROME_BROWSER_ASH_EOL_INCENTIVE_UTIL_H_
#define CHROME_BROWSER_ASH_EOL_INCENTIVE_UTIL_H_
class Profile;
namespace base {
class Time;
} // namespace base
namespace ash::eol_incentive_util {
// The type of end of life (EOL) incentive to be shown.
enum class EolIncentiveType {
// No EOL incentive is shown.
kNone,
// The case where the EOL incentive is shown because of an approaching EOL
// date.
kEolApproaching,
// The case where the EOL incentive is shown because of a recently passed EOL
// date.
kEolPassedRecently,
// EOL passed, more than a few days ago.
kEolPassed,
};
// Returns whether the EOL incentive should be shown to the current user based
// on the eol date and current time.
// Checks the following:
// * EOL incentive feature is enabled.
// * Current user has existed for a minimum time and is not managed.
// * Current date is within certain time frame close to EOL date.
// * EOL date is not null.
EolIncentiveType ShouldShowEolIncentive(Profile* profile,
base::Time eol_date,
base::Time now);
// This enum is used to record UMA histogram values and should not be
// reordered. Please keep in sync with 'EolIncentiveShowSource' in
// src/tools/metrics/histograms/enums.xml.
enum class EolIncentiveShowSource {
kNotification_Approaching = 0,
kNotification_RecentlyPassed = 1,
kNotification_Original = 2,
kQuickSettings = 3,
kSettingsMainPage = 4,
kSettingsAboutPage = 5,
kMaxValue = kSettingsAboutPage
};
// The UMA histogram name for the metric which records incentive show source.
static constexpr char kEolIncentiveShowSourceHistogramName[] =
"Ash.EndOfLife.IncentiveShowSource";
// Record the UMA metric for where an end of life incentive was shown.
void RecordShowSourceHistogram(EolIncentiveShowSource source);
// This enum is used to record UMA histogram values and should not be
// reordered. Please keep in sync with 'EolIncentiveButtonType' in
// src/tools/metrics/histograms/enums.xml.
enum class EolIncentiveButtonType {
kNotification_Offer_Approaching = 0,
kNotification_NoOffer_Approaching = 1,
kNotification_AboutUpdates_Approaching = 2,
kNotification_Offer_RecentlyPassed = 3,
kNotification_NoOffer_RecentlyPassed = 4,
kNotification_AboutUpdates_RecentlyPassed = 5,
kNotification_Original_LearnMore = 6,
kNotification_Original_Dismiss = 7,
kQuickSettings_Offer_RecentlyPassed = 8,
kQuickSettings_NoOffer_RecentlyPassed = 9,
kQuickSettings_NoOffer_Passed = 10,
kMaxValue = kQuickSettings_NoOffer_Passed
};
// The UMA histogram name for the metric which records incentive button clicks.
static constexpr char kEolIncentiveURLButtonClicked[] =
"Ash.EndOfLife.IncentiveButtonClicked";
void RecordButtonClicked(EolIncentiveButtonType type);
} // namespace ash::eol_incentive_util
#endif // CHROME_BROWSER_ASH_EOL_INCENTIVE_UTIL_H_