1// Copyright 2013 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
5#ifndef CHROME_BROWSER_CHROMEOS_SETTINGS_OWNER_FLAGS_STORAGE_H_
6#define CHROME_BROWSER_CHROMEOS_SETTINGS_OWNER_FLAGS_STORAGE_H_
7
8#include "base/compiler_specific.h"
9#include "chrome/browser/pref_service_flags_storage.h"
10
11namespace chromeos {
12
13class CrosSettings;
14
15namespace about_flags {
16
17// Implements the FlagsStorage interface for the owner flags. It inherits from
18// PrefServiceFlagsStorage but extends it with storing the flags in the signed
19// settings as well which effectively applies them to the login session as well.
20class OwnerFlagsStorage : public ::about_flags::PrefServiceFlagsStorage {
21 public:
22  OwnerFlagsStorage(PrefService *prefs, CrosSettings *cros_settings);
23  virtual ~OwnerFlagsStorage();
24
25  virtual bool SetFlags(const std::set<std::string>& flags) OVERRIDE;
26
27 private:
28  CrosSettings* cros_settings_;
29};
30
31}  // namespace about_flags
32}  // namespace chromeos
33
34#endif  // CHROME_BROWSER_CHROMEOS_SETTINGS_OWNER_FLAGS_STORAGE_H_
35