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 |