stub_cros_settings_provider.cc revision 46d4c2bc3267f3f028f39e7e311b0f89aba2e4fd
1// Copyright (c) 2012 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#include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h" 6 7#include "base/logging.h" 8#include "base/values.h" 9#include "chrome/browser/chromeos/login/users/user_manager.h" 10#include "chrome/browser/chromeos/settings/cros_settings.h" 11#include "chrome/browser/chromeos/settings/device_settings_provider.h" 12#include "chromeos/settings/cros_settings_names.h" 13 14namespace chromeos { 15 16StubCrosSettingsProvider::StubCrosSettingsProvider( 17 const NotifyObserversCallback& notify_cb) 18 : CrosSettingsProvider(notify_cb) { 19 SetDefaults(); 20} 21 22StubCrosSettingsProvider::StubCrosSettingsProvider() 23 : CrosSettingsProvider(CrosSettingsProvider::NotifyObserversCallback()) { 24 SetDefaults(); 25} 26 27StubCrosSettingsProvider::~StubCrosSettingsProvider() { 28} 29 30const base::Value* StubCrosSettingsProvider::Get( 31 const std::string& path) const { 32 DCHECK(HandlesSetting(path)); 33 const base::Value* value; 34 if (values_.GetValue(path, &value)) 35 return value; 36 return NULL; 37} 38 39CrosSettingsProvider::TrustedStatus 40 StubCrosSettingsProvider::PrepareTrustedValues(const base::Closure& cb) { 41 // We don't have a trusted store so all values are available immediately. 42 return TRUSTED; 43} 44 45bool StubCrosSettingsProvider::HandlesSetting(const std::string& path) const { 46 return DeviceSettingsProvider::IsDeviceSetting(path); 47} 48 49void StubCrosSettingsProvider::DoSet(const std::string& path, 50 const base::Value& value) { 51 values_.SetValue(path, value.DeepCopy()); 52 NotifyObservers(path); 53} 54 55void StubCrosSettingsProvider::SetDefaults() { 56 values_.SetBoolean(kAccountsPrefAllowGuest, true); 57 values_.SetBoolean(kAccountsPrefAllowNewUser, true); 58 values_.SetBoolean(kAccountsPrefSupervisedUsersEnabled, true); 59 values_.SetBoolean(kAccountsPrefShowUserNamesOnSignIn, true); 60 values_.SetValue(kAccountsPrefDeviceLocalAccounts, new base::ListValue); 61 // |kDeviceOwner| will be set to the logged-in user by |UserManager|. 62} 63 64} // namespace chromeos 65