| // 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. |
| |
| #include "components/privacy_sandbox/tracking_protection_onboarding.h" |
| |
| #include "base/check.h" |
| #include "base/feature_list.h" |
| #include "base/notreached.h" |
| #include "base/time/time.h" |
| #include "components/prefs/pref_service.h" |
| #include "components/privacy_sandbox/privacy_sandbox_features.h" |
| #include "components/privacy_sandbox/tracking_protection_prefs.h" |
| |
| namespace privacy_sandbox { |
| namespace { |
| |
| using ::privacy_sandbox::tracking_protection:: |
| TrackingProtectionOnboardingStatus; |
| |
| TrackingProtectionOnboardingStatus GetInternalModeBOnboardingStatus( |
| PrefService* pref_service) { |
| return static_cast<TrackingProtectionOnboardingStatus>( |
| pref_service->GetInteger(prefs::kTrackingProtectionOnboardingStatus)); |
| } |
| |
| } // namespace |
| |
| TrackingProtectionOnboarding::TrackingProtectionOnboarding( |
| PrefService* pref_service) |
| : pref_service_(pref_service) { |
| CHECK(pref_service_); |
| } |
| |
| TrackingProtectionOnboarding::~TrackingProtectionOnboarding() = default; |
| |
| void TrackingProtectionOnboarding::Shutdown() { |
| pref_service_ = nullptr; |
| } |
| |
| TrackingProtectionOnboarding::OnboardingStatus |
| TrackingProtectionOnboarding::GetOnboardingStatus() const { |
| auto onboarding_status = GetInternalModeBOnboardingStatus(pref_service_); |
| switch (onboarding_status) { |
| case TrackingProtectionOnboardingStatus::kIneligible: |
| return OnboardingStatus::kIneligible; |
| case TrackingProtectionOnboardingStatus::kEligible: |
| case TrackingProtectionOnboardingStatus::kRequested: |
| return OnboardingStatus::kEligible; |
| case TrackingProtectionOnboardingStatus::kOnboarded: |
| return OnboardingStatus::kOnboarded; |
| } |
| } |
| |
| } // namespace privacy_sandbox |