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