blob: 9f6fb12daa7ef641d8b7314ff64acfd2cc86e650 [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.
#include "components/sync_preferences/syncable_prefs_database.h"
#include <string_view>
#include "base/logging.h"
#include "components/sync/base/features.h"
namespace sync_preferences {
bool SyncablePrefsDatabase::IsPreferenceSyncable(
std::string_view pref_name) const {
return GetSyncablePrefMetadata(pref_name).has_value();
}
bool SyncablePrefsDatabase::IsPreferenceMergeable(
std::string_view pref_name) const {
std::optional<SyncablePrefMetadata> metadata =
GetSyncablePrefMetadata(pref_name);
CHECK(metadata.has_value());
return metadata->merge_behavior() != MergeBehavior::kNone;
}
bool SyncablePrefsDatabase::IsPreferenceAlwaysSyncing(
std::string_view pref_name) const {
CHECK(base::FeatureList::IsEnabled(
syncer::kSyncSupportAlwaysSyncingPriorityPreferences));
std::optional<SyncablePrefMetadata> metadata =
GetSyncablePrefMetadata(pref_name);
CHECK(metadata.has_value());
return metadata->pref_sensitivity() ==
PrefSensitivity::kExemptFromUserControlWhileSignedIn;
}
} // namespace sync_preferences