1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file. 4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#ifndef CHROME_BROWSER_CHROMEOS_SETTINGS_OWNER_FLAGS_STORAGE_H_ 6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#define CHROME_BROWSER_CHROMEOS_SETTINGS_OWNER_FLAGS_STORAGE_H_ 7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/compiler_specific.h" 9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "chrome/browser/pref_service_flags_storage.h" 10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace chromeos { 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass CrosSettings; 14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace about_flags { 16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Implements the FlagsStorage interface for the owner flags. It inherits from 18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// PrefServiceFlagsStorage but extends it with storing the flags in the signed 19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// settings as well which effectively applies them to the login session as well. 20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochclass OwnerFlagsStorage : public ::about_flags::PrefServiceFlagsStorage { 21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch public: 22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch OwnerFlagsStorage(PrefService *prefs, CrosSettings *cros_settings); 23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual ~OwnerFlagsStorage(); 24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 25d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) virtual bool SetFlags(const std::set<std::string>& flags) OVERRIDE; 26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch private: 28eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch CrosSettings* cros_settings_; 29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch}; 30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} // namespace about_flags 32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} // namespace chromeos 33eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 34eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#endif // CHROME_BROWSER_CHROMEOS_SETTINGS_OWNER_FLAGS_STORAGE_H_ 35