| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "remoting/host/setup/daemon_controller.h" | 5 #include "remoting/host/setup/daemon_controller.h" |
| 6 | 6 |
| 7 #include <launch.h> | 7 #include <launch.h> |
| 8 #include <stdio.h> | 8 #include <stdio.h> |
| 9 #include <sys/types.h> | 9 #include <sys/types.h> |
| 10 | 10 |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 | 167 |
| 168 void DaemonControllerMac::GetUsageStatsConsent( | 168 void DaemonControllerMac::GetUsageStatsConsent( |
| 169 const GetUsageStatsConsentCallback& callback) { | 169 const GetUsageStatsConsentCallback& callback) { |
| 170 auth_thread_.message_loop_proxy()->PostTask( | 170 auth_thread_.message_loop_proxy()->PostTask( |
| 171 FROM_HERE, | 171 FROM_HERE, |
| 172 base::Bind(&DaemonControllerMac::DoGetUsageStatsConsent, | 172 base::Bind(&DaemonControllerMac::DoGetUsageStatsConsent, |
| 173 base::Unretained(this), callback)); | 173 base::Unretained(this), callback)); |
| 174 } | 174 } |
| 175 | 175 |
| 176 void DaemonControllerMac::DoGetConfig(const GetConfigCallback& callback) { | 176 void DaemonControllerMac::DoGetConfig(const GetConfigCallback& callback) { |
| 177 FilePath config_path(kHostConfigFilePath); | 177 base::FilePath config_path(kHostConfigFilePath); |
| 178 JsonHostConfig host_config(config_path); | 178 JsonHostConfig host_config(config_path); |
| 179 scoped_ptr<base::DictionaryValue> config; | 179 scoped_ptr<base::DictionaryValue> config; |
| 180 | 180 |
| 181 if (host_config.Read()) { | 181 if (host_config.Read()) { |
| 182 config.reset(new base::DictionaryValue()); | 182 config.reset(new base::DictionaryValue()); |
| 183 std::string value; | 183 std::string value; |
| 184 if (host_config.GetString(kHostIdConfigPath, &value)) | 184 if (host_config.GetString(kHostIdConfigPath, &value)) |
| 185 config.get()->SetString(kHostIdConfigPath, value); | 185 config.get()->SetString(kHostIdConfigPath, value); |
| 186 if (host_config.GetString(kXmppLoginConfigPath, &value)) | 186 if (host_config.GetString(kXmppLoginConfigPath, &value)) |
| 187 config.get()->SetString(kXmppLoginConfigPath, value); | 187 config.get()->SetString(kXmppLoginConfigPath, value); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 const CompletionCallback& done) { | 220 const CompletionCallback& done) { |
| 221 config->SetBoolean(kUsageStatsConsentConfigPath, consent); | 221 config->SetBoolean(kUsageStatsConsentConfigPath, consent); |
| 222 std::string config_data; | 222 std::string config_data; |
| 223 base::JSONWriter::Write(config.get(), &config_data); | 223 base::JSONWriter::Write(config.get(), &config_data); |
| 224 ShowPreferencePane(config_data, done); | 224 ShowPreferencePane(config_data, done); |
| 225 } | 225 } |
| 226 | 226 |
| 227 void DaemonControllerMac::DoUpdateConfig( | 227 void DaemonControllerMac::DoUpdateConfig( |
| 228 scoped_ptr<base::DictionaryValue> config, | 228 scoped_ptr<base::DictionaryValue> config, |
| 229 const CompletionCallback& done_callback) { | 229 const CompletionCallback& done_callback) { |
| 230 FilePath config_file_path(kHostConfigFilePath); | 230 base::FilePath config_file_path(kHostConfigFilePath); |
| 231 JsonHostConfig config_file(config_file_path); | 231 JsonHostConfig config_file(config_file_path); |
| 232 if (!config_file.Read()) { | 232 if (!config_file.Read()) { |
| 233 done_callback.Run(RESULT_FAILED); | 233 done_callback.Run(RESULT_FAILED); |
| 234 return; | 234 return; |
| 235 } | 235 } |
| 236 if (!config_file.CopyFrom(config.get())) { | 236 if (!config_file.CopyFrom(config.get())) { |
| 237 LOG(ERROR) << "Failed to update configuration."; | 237 LOG(ERROR) << "Failed to update configuration."; |
| 238 done_callback.Run(RESULT_FAILED); | 238 done_callback.Run(RESULT_FAILED); |
| 239 return; | 239 return; |
| 240 } | 240 } |
| 241 | 241 |
| 242 std::string config_data = config_file.GetSerializedData(); | 242 std::string config_data = config_file.GetSerializedData(); |
| 243 ShowPreferencePane(config_data, done_callback); | 243 ShowPreferencePane(config_data, done_callback); |
| 244 } | 244 } |
| 245 | 245 |
| 246 void DaemonControllerMac::DoGetUsageStatsConsent( | 246 void DaemonControllerMac::DoGetUsageStatsConsent( |
| 247 const GetUsageStatsConsentCallback& callback) { | 247 const GetUsageStatsConsentCallback& callback) { |
| 248 bool allowed = false; | 248 bool allowed = false; |
| 249 FilePath config_file_path(kHostConfigFilePath); | 249 base::FilePath config_file_path(kHostConfigFilePath); |
| 250 JsonHostConfig host_config(config_file_path); | 250 JsonHostConfig host_config(config_file_path); |
| 251 if (host_config.Read()) { | 251 if (host_config.Read()) { |
| 252 host_config.GetBoolean(kUsageStatsConsentConfigPath, &allowed); | 252 host_config.GetBoolean(kUsageStatsConsentConfigPath, &allowed); |
| 253 } | 253 } |
| 254 // set_by_policy is not yet supported. | 254 // set_by_policy is not yet supported. |
| 255 callback.Run(true, allowed, false /* set_by_policy */); | 255 callback.Run(true, allowed, false /* set_by_policy */); |
| 256 } | 256 } |
| 257 | 257 |
| 258 void DaemonControllerMac::ShowPreferencePane( | 258 void DaemonControllerMac::ShowPreferencePane( |
| 259 const std::string& config_data, const CompletionCallback& done_callback) { | 259 const std::string& config_data, const CompletionCallback& done_callback) { |
| 260 if (DoShowPreferencePane(config_data)) { | 260 if (DoShowPreferencePane(config_data)) { |
| 261 RegisterForPreferencePaneNotifications(done_callback); | 261 RegisterForPreferencePaneNotifications(done_callback); |
| 262 } else { | 262 } else { |
| 263 done_callback.Run(RESULT_FAILED); | 263 done_callback.Run(RESULT_FAILED); |
| 264 } | 264 } |
| 265 } | 265 } |
| 266 | 266 |
| 267 bool DaemonControllerMac::DoShowPreferencePane(const std::string& config_data) { | 267 bool DaemonControllerMac::DoShowPreferencePane(const std::string& config_data) { |
| 268 if (!config_data.empty()) { | 268 if (!config_data.empty()) { |
| 269 FilePath config_path; | 269 base::FilePath config_path; |
| 270 if (!file_util::GetTempDir(&config_path)) { | 270 if (!file_util::GetTempDir(&config_path)) { |
| 271 LOG(ERROR) << "Failed to get filename for saving configuration data."; | 271 LOG(ERROR) << "Failed to get filename for saving configuration data."; |
| 272 return false; | 272 return false; |
| 273 } | 273 } |
| 274 config_path = config_path.Append(kHostConfigFileName); | 274 config_path = config_path.Append(kHostConfigFileName); |
| 275 | 275 |
| 276 int written = file_util::WriteFile(config_path, config_data.data(), | 276 int written = file_util::WriteFile(config_path, config_data.data(), |
| 277 config_data.size()); | 277 config_data.size()); |
| 278 if (written != static_cast<int>(config_data.size())) { | 278 if (written != static_cast<int>(config_data.size())) { |
| 279 LOG(ERROR) << "Failed to save configuration data to: " | 279 LOG(ERROR) << "Failed to save configuration data to: " |
| 280 << config_path.value(); | 280 << config_path.value(); |
| 281 return false; | 281 return false; |
| 282 } | 282 } |
| 283 } | 283 } |
| 284 | 284 |
| 285 FilePath pane_path; | 285 base::FilePath pane_path; |
| 286 // TODO(lambroslambrou): Use NSPreferencePanesDirectory once we start | 286 // TODO(lambroslambrou): Use NSPreferencePanesDirectory once we start |
| 287 // building against SDK 10.6. | 287 // building against SDK 10.6. |
| 288 if (!base::mac::GetLocalDirectory(NSLibraryDirectory, &pane_path)) { | 288 if (!base::mac::GetLocalDirectory(NSLibraryDirectory, &pane_path)) { |
| 289 LOG(ERROR) << "Failed to get directory for local preference panes."; | 289 LOG(ERROR) << "Failed to get directory for local preference panes."; |
| 290 return false; | 290 return false; |
| 291 } | 291 } |
| 292 pane_path = pane_path.Append("PreferencePanes").Append(kPrefPaneFileName); | 292 pane_path = pane_path.Append("PreferencePanes").Append(kPrefPaneFileName); |
| 293 | 293 |
| 294 FSRef pane_path_ref; | 294 FSRef pane_path_ref; |
| 295 if (!base::mac::FSRefFromPath(pane_path.value(), &pane_path_ref)) { | 295 if (!base::mac::FSRefFromPath(pane_path.value(), &pane_path_ref)) { |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 } | 376 } |
| 377 } | 377 } |
| 378 | 378 |
| 379 } // namespace | 379 } // namespace |
| 380 | 380 |
| 381 scoped_ptr<DaemonController> remoting::DaemonController::Create() { | 381 scoped_ptr<DaemonController> remoting::DaemonController::Create() { |
| 382 return scoped_ptr<DaemonController>(new DaemonControllerMac()); | 382 return scoped_ptr<DaemonController>(new DaemonControllerMac()); |
| 383 } | 383 } |
| 384 | 384 |
| 385 } // namespace remoting | 385 } // namespace remoting |
| OLD | NEW |