- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / settings / owner_flags_storage.h
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
11 namespace chromeos {
12
13 class CrosSettings;
14
15 namespace 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.
20 class 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_