blob: 2c3520b3e3d57ef7e0a43db37976367943a5c11a [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 COMPONENTS_SYNC_PREFERENCES_COMMON_SYNCABLE_PREFS_DATABASE_H_
#define COMPONENTS_SYNC_PREFERENCES_COMMON_SYNCABLE_PREFS_DATABASE_H_
#include <map>
#include <string_view>
#include "components/sync_preferences/syncable_prefs_database.h"
namespace sync_preferences {
// Should be used by tests.
inline constexpr char kSyncablePrefForTesting[] = "syncable-test-preference";
inline constexpr char kSyncableMergeableDictPrefForTesting[] =
"syncable-mergeable-dict-test-preference";
inline constexpr char kSyncableMergeableListPrefForTesting[] =
"syncable-mergeable-list-test-preference";
inline constexpr char kSyncableHistorySensitiveListPrefForTesting[] =
"syncable-history-sensitive-list-test-preference";
inline constexpr char kSyncablePriorityPrefForTesting[] =
"syncable-test-priority-preference";
inline constexpr char kSyncableAlwaysSyncingPriorityPrefForTesting[] =
"syncable-always-syncing-test-priority-preference";
// This class provides an implementation for SyncablePrefsDatabase for common
// syncable preferences, i.e. preferences which are shared between all
// platforms.
class CommonSyncablePrefsDatabase : public SyncablePrefsDatabase {
public:
// Returns the metadata associated to the pref or null if `pref_name` is not
// syncable.
std::optional<SyncablePrefMetadata> GetSyncablePrefMetadata(
std::string_view pref_name) const override;
std::map<std::string_view, SyncablePrefMetadata> GetAllSyncablePrefsForTest()
const;
bool IsPreferenceAlwaysSyncing(std::string_view pref_name) const override;
};
} // namespace sync_preferences
#endif // COMPONENTS_SYNC_PREFERENCES_COMMON_SYNCABLE_PREFS_DATABASE_H_