safety_check.cc 1.2 KB

123456789101112131415161718192021222324252627282930
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/safety_check/safety_check.h"
  5. #include "components/safe_browsing/core/common/safe_browsing_prefs.h"
  6. namespace safety_check {
  7. SafeBrowsingStatus CheckSafeBrowsing(PrefService* pref_service) {
  8. const PrefService::Preference* enabled_pref =
  9. pref_service->FindPreference(prefs::kSafeBrowsingEnabled);
  10. bool is_sb_enabled = pref_service->GetBoolean(prefs::kSafeBrowsingEnabled);
  11. bool is_sb_managed = enabled_pref->IsManaged();
  12. if (is_sb_enabled && pref_service->GetBoolean(prefs::kSafeBrowsingEnhanced))
  13. return SafeBrowsingStatus::kEnabledEnhanced;
  14. if (is_sb_enabled && is_sb_managed)
  15. return SafeBrowsingStatus::kEnabledStandard;
  16. if (is_sb_enabled && !is_sb_managed)
  17. return SafeBrowsingStatus::kEnabledStandardAvailableEnhanced;
  18. if (is_sb_managed)
  19. return SafeBrowsingStatus::kDisabledByAdmin;
  20. if (enabled_pref->IsExtensionControlled())
  21. return SafeBrowsingStatus::kDisabledByExtension;
  22. return SafeBrowsingStatus::kDisabled;
  23. }
  24. } // namespace safety_check