OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_delegate_win.h" | 5 #include "remoting/host/setup/daemon_controller_delegate_win.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/bind_helpers.h" | 9 #include "base/bind_helpers.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 // The maximum duration of keeping a reference to an unprivileged instance of | 51 // The maximum duration of keeping a reference to an unprivileged instance of |
52 // the Daemon Controller. This interval should not be too long. If upgrade | 52 // the Daemon Controller. This interval should not be too long. If upgrade |
53 // happens while there is a live reference to a Daemon Controller instance | 53 // happens while there is a live reference to a Daemon Controller instance |
54 // the old binary still can be used. So dropping the references often makes sure | 54 // the old binary still can be used. So dropping the references often makes sure |
55 // that the old binary will go away sooner. | 55 // that the old binary will go away sooner. |
56 const int kUnprivilegedTimeoutSec = 60; | 56 const int kUnprivilegedTimeoutSec = 60; |
57 | 57 |
58 void ConfigToString(const base::DictionaryValue& config, ScopedBstr* out) { | 58 void ConfigToString(const base::DictionaryValue& config, ScopedBstr* out) { |
59 std::string config_str; | 59 std::string config_str; |
60 base::JSONWriter::Write(&config, &config_str); | 60 base::JSONWriter::Write(&config, &config_str); |
61 ScopedBstr config_scoped_bstr(UTF8ToUTF16(config_str).c_str()); | 61 ScopedBstr config_scoped_bstr(base::UTF8ToUTF16(config_str).c_str()); |
62 out->Swap(config_scoped_bstr); | 62 out->Swap(config_scoped_bstr); |
63 } | 63 } |
64 | 64 |
65 DaemonController::State ConvertToDaemonState(DWORD service_state) { | 65 DaemonController::State ConvertToDaemonState(DWORD service_state) { |
66 switch (service_state) { | 66 switch (service_state) { |
67 case SERVICE_RUNNING: | 67 case SERVICE_RUNNING: |
68 return DaemonController::STATE_STARTED; | 68 return DaemonController::STATE_STARTED; |
69 | 69 |
70 case SERVICE_CONTINUE_PENDING: | 70 case SERVICE_CONTINUE_PENDING: |
71 case SERVICE_START_PENDING: | 71 case SERVICE_START_PENDING: |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 // Get the host configuration. | 176 // Get the host configuration. |
177 ScopedBstr host_config; | 177 ScopedBstr host_config; |
178 hr = control_->GetConfig(host_config.Receive()); | 178 hr = control_->GetConfig(host_config.Receive()); |
179 if (FAILED(hr)) | 179 if (FAILED(hr)) |
180 return scoped_ptr<base::DictionaryValue>(); | 180 return scoped_ptr<base::DictionaryValue>(); |
181 | 181 |
182 // Parse the string into a dictionary. | 182 // Parse the string into a dictionary. |
183 base::string16 file_content( | 183 base::string16 file_content( |
184 static_cast<BSTR>(host_config), host_config.Length()); | 184 static_cast<BSTR>(host_config), host_config.Length()); |
185 scoped_ptr<base::Value> config( | 185 scoped_ptr<base::Value> config( |
186 base::JSONReader::Read(UTF16ToUTF8(file_content), | 186 base::JSONReader::Read(base::UTF16ToUTF8(file_content), |
187 base::JSON_ALLOW_TRAILING_COMMAS)); | 187 base::JSON_ALLOW_TRAILING_COMMAS)); |
188 | 188 |
189 if (!config || config->GetType() != base::Value::TYPE_DICTIONARY) | 189 if (!config || config->GetType() != base::Value::TYPE_DICTIONARY) |
190 return scoped_ptr<base::DictionaryValue>(); | 190 return scoped_ptr<base::DictionaryValue>(); |
191 | 191 |
192 return scoped_ptr<base::DictionaryValue>( | 192 return scoped_ptr<base::DictionaryValue>( |
193 static_cast<base::DictionaryValue*>(config.release())); | 193 static_cast<base::DictionaryValue*>(config.release())); |
194 } | 194 } |
195 | 195 |
196 void DaemonControllerDelegateWin::SetConfigAndStart( | 196 void DaemonControllerDelegateWin::SetConfigAndStart( |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 HRESULT hr = ActivateController(); | 271 HRESULT hr = ActivateController(); |
272 if (FAILED(hr)) | 272 if (FAILED(hr)) |
273 return std::string(); | 273 return std::string(); |
274 | 274 |
275 // Get the version string. | 275 // Get the version string. |
276 ScopedBstr version; | 276 ScopedBstr version; |
277 hr = control_->GetVersion(version.Receive()); | 277 hr = control_->GetVersion(version.Receive()); |
278 if (FAILED(hr)) | 278 if (FAILED(hr)) |
279 return std::string(); | 279 return std::string(); |
280 | 280 |
281 return UTF16ToUTF8( | 281 return base::UTF16ToUTF8( |
282 base::string16(static_cast<BSTR>(version), version.Length())); | 282 base::string16(static_cast<BSTR>(version), version.Length())); |
283 } | 283 } |
284 | 284 |
285 DaemonController::UsageStatsConsent | 285 DaemonController::UsageStatsConsent |
286 DaemonControllerDelegateWin::GetUsageStatsConsent() { | 286 DaemonControllerDelegateWin::GetUsageStatsConsent() { |
287 DaemonController::UsageStatsConsent consent; | 287 DaemonController::UsageStatsConsent consent; |
288 consent.supported = true; | 288 consent.supported = true; |
289 consent.allowed = false; | 289 consent.allowed = false; |
290 consent.set_by_policy = false; | 290 consent.set_by_policy = false; |
291 | 291 |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 done.Run(HResultToAsyncResult(hr)); | 449 done.Run(HResultToAsyncResult(hr)); |
450 } | 450 } |
451 | 451 |
452 scoped_refptr<DaemonController> DaemonController::Create() { | 452 scoped_refptr<DaemonController> DaemonController::Create() { |
453 scoped_ptr<DaemonController::Delegate> delegate( | 453 scoped_ptr<DaemonController::Delegate> delegate( |
454 new DaemonControllerDelegateWin()); | 454 new DaemonControllerDelegateWin()); |
455 return new DaemonController(delegate.Pass()); | 455 return new DaemonController(delegate.Pass()); |
456 } | 456 } |
457 | 457 |
458 } // namespace remoting | 458 } // namespace remoting |
OLD | NEW |