| OLD | NEW |
| (Empty) |
| 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/cros_settings_provider.h" | |
| 6 | |
| 7 #include "base/command_line.h" | |
| 8 #include "base/logging.h" | |
| 9 #include "base/string_util.h" | |
| 10 #include "base/values.h" | |
| 11 #include "chrome/common/chrome_switches.h" | |
| 12 | |
| 13 namespace chromeos { | |
| 14 | |
| 15 CrosSettingsProvider::CrosSettingsProvider( | |
| 16 const NotifyObserversCallback& notify_cb) | |
| 17 : notify_cb_(notify_cb) { | |
| 18 } | |
| 19 | |
| 20 CrosSettingsProvider::~CrosSettingsProvider() { | |
| 21 } | |
| 22 | |
| 23 void CrosSettingsProvider::Set(const std::string& path, | |
| 24 const base::Value& value) { | |
| 25 // We don't allow changing any of the cros settings without prefix | |
| 26 // "cros.session." in the guest mode. | |
| 27 // It should not reach here from UI in the guest mode, but just in case. | |
| 28 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kGuestSession) && | |
| 29 !::StartsWithASCII(path, "cros.session.", true)) { | |
| 30 LOG(ERROR) << "Ignoring the guest request to change: " << path; | |
| 31 return; | |
| 32 } | |
| 33 DoSet(path, value); | |
| 34 } | |
| 35 | |
| 36 void CrosSettingsProvider::NotifyObservers(const std::string& path) { | |
| 37 if (!notify_cb_.is_null()) | |
| 38 notify_cb_.Run(path); | |
| 39 } | |
| 40 | |
| 41 void CrosSettingsProvider::SetNotifyObserversCallback( | |
| 42 const NotifyObserversCallback& notify_cb) { | |
| 43 notify_cb_ = notify_cb; | |
| 44 } | |
| 45 | |
| 46 }; // namespace chromeos | |
| OLD | NEW |