| Index: remoting/host/setup/daemon_controller_delegate_win.cc
|
| diff --git a/remoting/host/setup/daemon_controller_delegate_win.cc b/remoting/host/setup/daemon_controller_delegate_win.cc
|
| index 2070c49a124146be5da49bac30de6ff2e55e6a54..4ff65714f41718adb914c6a68ebe9440ee4e7b51 100644
|
| --- a/remoting/host/setup/daemon_controller_delegate_win.cc
|
| +++ b/remoting/host/setup/daemon_controller_delegate_win.cc
|
| @@ -24,7 +24,6 @@
|
| #include "remoting/host/branding.h"
|
| // chromoting_lib.h contains MIDL-generated declarations.
|
| #include "remoting/host/chromoting_lib.h"
|
| -#include "remoting/host/setup/daemon_installer_win.h"
|
| #include "remoting/host/usage_stats_consent.h"
|
|
|
| using base::win::ScopedBstr;
|
| @@ -128,6 +127,11 @@ DaemonController::AsyncResult HResultToAsyncResult(
|
| }
|
| }
|
|
|
| +void InvokeCompletionCallback(
|
| + const DaemonController::CompletionCallback& done, HRESULT hr) {
|
| + done.Run(HResultToAsyncResult(hr));
|
| +}
|
| +
|
| } // namespace
|
|
|
| DaemonControllerDelegateWin::DaemonControllerDelegateWin()
|
| @@ -193,14 +197,26 @@ scoped_ptr<base::DictionaryValue> DaemonControllerDelegateWin::GetConfig() {
|
| static_cast<base::DictionaryValue*>(config.release()));
|
| }
|
|
|
| +void DaemonControllerDelegateWin::InstallHost(
|
| + const DaemonController::CompletionCallback& done) {
|
| + DoInstallHost(base::Bind(&InvokeCompletionCallback, done));
|
| +}
|
| +
|
| void DaemonControllerDelegateWin::SetConfigAndStart(
|
| scoped_ptr<base::DictionaryValue> config,
|
| bool consent,
|
| const DaemonController::CompletionCallback& done) {
|
| + DoInstallHost(
|
| + base::Bind(&DaemonControllerDelegateWin::StartHostWithConfig,
|
| + base::Unretained(this), base::Passed(&config), consent, done));
|
| +}
|
| +
|
| +void DaemonControllerDelegateWin::DoInstallHost(
|
| + const DaemonInstallerWin::CompletionCallback& done) {
|
| // Configure and start the Daemon Controller if it is installed already.
|
| HRESULT hr = ActivateElevatedController();
|
| if (SUCCEEDED(hr)) {
|
| - OnInstallationComplete(config.Pass(), consent, done, S_OK);
|
| + done.Run(S_OK);
|
| return;
|
| }
|
|
|
| @@ -209,19 +225,14 @@ void DaemonControllerDelegateWin::SetConfigAndStart(
|
| DCHECK(!installer_);
|
|
|
| installer_ = DaemonInstallerWin::Create(
|
| - GetTopLevelWindow(window_handle_),
|
| - base::Bind(&DaemonControllerDelegateWin::OnInstallationComplete,
|
| - base::Unretained(this),
|
| - base::Passed(&config),
|
| - consent,
|
| - done));
|
| + GetTopLevelWindow(window_handle_), done);
|
| installer_->Install();
|
| return;
|
| }
|
|
|
| LOG(ERROR) << "Failed to initiate the Chromoting Host installation "
|
| << "(error: 0x" << std::hex << hr << std::dec << ").";
|
| - done.Run(HResultToAsyncResult(hr));
|
| + done.Run(hr);
|
| }
|
|
|
| void DaemonControllerDelegateWin::UpdateConfig(
|
| @@ -229,7 +240,7 @@ void DaemonControllerDelegateWin::UpdateConfig(
|
| const DaemonController::CompletionCallback& done) {
|
| HRESULT hr = ActivateElevatedController();
|
| if (FAILED(hr)) {
|
| - done.Run(HResultToAsyncResult(hr));
|
| + InvokeCompletionCallback(done, hr);
|
| return;
|
| }
|
|
|
| @@ -237,7 +248,7 @@ void DaemonControllerDelegateWin::UpdateConfig(
|
| ScopedBstr config_str(NULL);
|
| ConfigToString(*config, &config_str);
|
| if (config_str == NULL) {
|
| - done.Run(HResultToAsyncResult(E_OUTOFMEMORY));
|
| + InvokeCompletionCallback(done, E_OUTOFMEMORY);
|
| return;
|
| }
|
|
|
| @@ -245,12 +256,12 @@ void DaemonControllerDelegateWin::UpdateConfig(
|
| hr = control_->SetOwnerWindow(
|
| reinterpret_cast<LONG_PTR>(GetTopLevelWindow(window_handle_)));
|
| if (FAILED(hr)) {
|
| - done.Run(HResultToAsyncResult(hr));
|
| + InvokeCompletionCallback(done, hr);
|
| return;
|
| }
|
|
|
| hr = control_->UpdateConfig(config_str);
|
| - done.Run(HResultToAsyncResult(hr));
|
| + InvokeCompletionCallback(done, hr);
|
| }
|
|
|
| void DaemonControllerDelegateWin::Stop(
|
| @@ -259,7 +270,7 @@ void DaemonControllerDelegateWin::Stop(
|
| if (SUCCEEDED(hr))
|
| hr = control_->StopDaemon();
|
|
|
| - done.Run(HResultToAsyncResult(hr));
|
| + InvokeCompletionCallback(done, hr);
|
| }
|
|
|
| void DaemonControllerDelegateWin::SetWindow(void* window_handle) {
|
| @@ -394,7 +405,7 @@ void DaemonControllerDelegateWin::ReleaseController() {
|
| control_is_elevated_ = false;
|
| }
|
|
|
| -void DaemonControllerDelegateWin::OnInstallationComplete(
|
| +void DaemonControllerDelegateWin::StartHostWithConfig(
|
| scoped_ptr<base::DictionaryValue> config,
|
| bool consent,
|
| const DaemonController::CompletionCallback& done,
|
| @@ -404,13 +415,13 @@ void DaemonControllerDelegateWin::OnInstallationComplete(
|
| if (FAILED(hr)) {
|
| LOG(ERROR) << "Failed to install the Chromoting Host "
|
| << "(error: 0x" << std::hex << hr << std::dec << ").";
|
| - done.Run(HResultToAsyncResult(hr));
|
| + InvokeCompletionCallback(done, hr);
|
| return;
|
| }
|
|
|
| hr = ActivateElevatedController();
|
| if (FAILED(hr)) {
|
| - done.Run(HResultToAsyncResult(hr));
|
| + InvokeCompletionCallback(done, hr);
|
| return;
|
| }
|
|
|
| @@ -418,7 +429,7 @@ void DaemonControllerDelegateWin::OnInstallationComplete(
|
| if (control2_) {
|
| hr = control2_->SetUsageStatsConsent(consent);
|
| if (FAILED(hr)) {
|
| - done.Run(HResultToAsyncResult(hr));
|
| + InvokeCompletionCallback(done, hr);
|
| return;
|
| }
|
| }
|
| @@ -427,26 +438,26 @@ void DaemonControllerDelegateWin::OnInstallationComplete(
|
| ScopedBstr config_str(NULL);
|
| ConfigToString(*config, &config_str);
|
| if (config_str == NULL) {
|
| - done.Run(HResultToAsyncResult(E_OUTOFMEMORY));
|
| + InvokeCompletionCallback(done, E_OUTOFMEMORY);
|
| return;
|
| }
|
|
|
| hr = control_->SetOwnerWindow(
|
| reinterpret_cast<LONG_PTR>(GetTopLevelWindow(window_handle_)));
|
| if (FAILED(hr)) {
|
| - done.Run(HResultToAsyncResult(hr));
|
| + InvokeCompletionCallback(done, hr);
|
| return;
|
| }
|
|
|
| hr = control_->SetConfig(config_str);
|
| if (FAILED(hr)) {
|
| - done.Run(HResultToAsyncResult(hr));
|
| + InvokeCompletionCallback(done, hr);
|
| return;
|
| }
|
|
|
| // Start daemon.
|
| hr = control_->StartDaemon();
|
| - done.Run(HResultToAsyncResult(hr));
|
| + InvokeCompletionCallback(done, hr);
|
| }
|
|
|
| scoped_refptr<DaemonController> DaemonController::Create() {
|
|
|