blob: 6045d2e7603a5e39354d8c8226db9152fdfd7852 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Helper to initialize PrefService for cast shell.
#ifndef CHROMECAST_BROWSER_PREF_SERVICE_HELPER_H_
#define CHROMECAST_BROWSER_PREF_SERVICE_HELPER_H_
#include <memory>
#include <set>
#include <string>
#include "base/memory/ref_counted.h"
#include "base/threading/thread_checker.h"
#include "components/prefs/pref_service.h"
class PrefRegistrySimple;
namespace chromecast {
namespace shell {
// It uses JsonPrefStore internally and/so the format of config file is same to
// that of JsonPrefStore.
class PrefServiceHelper {
public:
// Loads configs from config file. Returns true if successful.
static std::unique_ptr<PrefService> CreatePrefService(
PrefRegistrySimple* registry);
// Provides names of prefs that take a large amount of storage, and are
// therefore stored in a different file.
static std::set<std::string> LargePrefNames() __attribute__((weak));
private:
// Registers any needed preferences for the current platform.
static void RegisterPlatformPrefs(PrefRegistrySimple* registry);
// Called after the pref file has been loaded.
static void OnPrefsLoaded(PrefService* pref_service);
};
} // namespace shell
} // namespace chromecast
#endif // CHROMECAST_BROWSER_PREF_SERVICE_HELPER_H_