Index: chrome/service/remoting/chromoting_host_manager.cc |
diff --git a/chrome/service/remoting/chromoting_host_manager.cc b/chrome/service/remoting/chromoting_host_manager.cc |
deleted file mode 100644 |
index 39fdd701ff765889c539b62d27830e314a8276a5..0000000000000000000000000000000000000000 |
--- a/chrome/service/remoting/chromoting_host_manager.cc |
+++ /dev/null |
@@ -1,216 +0,0 @@ |
-// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/service/remoting/chromoting_host_manager.h" |
- |
-#include "base/path_service.h" |
-#include "chrome/common/chrome_paths.h" |
-#include "chrome/common/guid.h" |
-#include "chrome/common/remoting/chromoting_host_info.h" |
-#include "net/base/net_util.h" |
-#include "remoting/base/constants.h" |
-#include "remoting/host/chromoting_host_context.h" |
-#include "remoting/host/heartbeat_sender.h" |
-#include "remoting/host/host_key_pair.h" |
-#include "remoting/host/json_host_config.h" |
- |
-namespace remoting { |
- |
-ChromotingHostManager::ChromotingHostManager(Observer* observer) |
- : observer_(observer), |
- main_message_loop_(NULL) { |
-} |
- |
-void ChromotingHostManager::Initialize( |
- MessageLoopForUI* main_message_loop, |
- base::MessageLoopProxy* file_message_loop) { |
- FilePath user_data_dir; |
- PathService::Get(chrome::DIR_USER_DATA, &user_data_dir); |
- FilePath chromoting_config_path = |
- user_data_dir.Append(FILE_PATH_LITERAL(".ChromotingConfig.json")); |
- remoting::JsonHostConfig* config = new remoting::JsonHostConfig( |
- chromoting_config_path, file_message_loop); |
- if (!config->Read()) { |
- VLOG(1) << "Failed to read chromoting config file."; |
- } |
- |
- main_message_loop_ = main_message_loop; |
- chromoting_config_ = config; |
- |
- if (!IsConfigInitialized()) { |
- InitializeConfig(); |
- } |
- |
- if (IsEnabled()) { |
- // TODO(wez): Need to callback the Observer so that ServiceProcess |
- // knows to stay alive to service Chromoting requests. |
- // This will go away once we have a more consistent model for the |
- // service process internals. |
- observer_->OnChromotingHostEnabled(); |
- Start(); |
- } |
-} |
- |
-void ChromotingHostManager::Teardown(Task* done_task) { |
- Stop(done_task); |
-} |
- |
-ChromotingHostManager::~ChromotingHostManager() { |
- DCHECK(!chromoting_host_); |
- DCHECK(!chromoting_context_.get()); |
-} |
- |
-bool ChromotingHostManager::IsConfigInitialized() { |
- std::string host_id; |
- if (!chromoting_config_->GetString(remoting::kHostIdConfigPath, &host_id)) |
- return false; |
- |
- return guid::IsValidGUID(host_id); |
-} |
- |
-void ChromotingHostManager::InitializeConfig() { |
- VLOG(1) << "Initializing static chromoting host parameters."; |
- |
- // TODO(hclam): This is a time consuming operation so we should run it on |
- // a separate thread. |
- remoting::HostKeyPair host_key_pair; |
- host_key_pair.Generate(); |
- std::string host_id(guid::GenerateGUID()); |
- std::string hostname(net::GetHostName()); |
- |
- chromoting_config_->SetBoolean(remoting::kHostEnabledConfigPath, false); |
- chromoting_config_->SetString(remoting::kHostIdConfigPath, host_id); |
- chromoting_config_->SetString(remoting::kHostNameConfigPath, hostname); |
- host_key_pair.Save(chromoting_config_); |
- |
- // Save updated values on the disk. |
- chromoting_config_->Save(); |
-} |
- |
-void ChromotingHostManager::SetCredentials(const std::string& login, |
- const std::string& token) { |
- chromoting_config_->SetString(remoting::kXmppLoginConfigPath, login); |
- chromoting_config_->SetString(remoting::kXmppAuthTokenConfigPath, token); |
- |
- // Save updated values on the disk. |
- chromoting_config_->Save(); |
-} |
- |
-void ChromotingHostManager::Enable() { |
- // We have already started. |
- if (IsEnabled()) |
- return; |
- |
- SetEnabled(true); |
- observer_->OnChromotingHostEnabled(); |
- |
- Start(); |
-} |
- |
-void ChromotingHostManager::Disable() { |
- if (!IsEnabled()) |
- return; |
- |
- SetEnabled(false); |
- |
- // TODO(hclam): Immediately reporting will cause threading problems |
- // ServiceProcess thinks we can shutdown safely. |
- observer_->OnChromotingHostDisabled(); |
- |
- Stop(NULL); |
-} |
- |
-void ChromotingHostManager::GetHostInfo(ChromotingHostInfo* host_info) { |
- chromoting_config_->GetString(remoting::kHostIdConfigPath, |
- &host_info->host_id); |
- chromoting_config_->GetString(remoting::kHostNameConfigPath, |
- &host_info->hostname); |
- HostKeyPair key_pair; |
- if (key_pair.Load(chromoting_config_)) { |
- host_info->public_key = key_pair.GetPublicKey(); |
- } |
- |
- host_info->enabled = IsEnabled(); |
- |
- chromoting_config_->GetString(remoting::kXmppLoginConfigPath, |
- &host_info->login); |
-} |
- |
-void ChromotingHostManager::Stop(Task* done_task) { |
- // Stop the host if it is started. |
- if (chromoting_host_) { |
- // Save the shutdown task, it will be executed when chromoting host |
- // is stopped. |
- shutdown_task_.reset(done_task); |
- |
- // Shutdown the chromoting host asynchronously. |
- chromoting_host_->Shutdown(); |
- } else if (done_task) { |
- done_task->Run(); |
- delete done_task; |
- } |
-} |
- |
-bool ChromotingHostManager::IsEnabled() { |
- bool enabled; |
- if (!chromoting_config_->GetBoolean(remoting::kHostEnabledConfigPath, |
- &enabled)) { |
- enabled = false; |
- } |
- return enabled; |
-} |
- |
-void ChromotingHostManager::SetEnabled(bool enabled) { |
- chromoting_config_->SetBoolean(remoting::kHostEnabledConfigPath, |
- enabled); |
- chromoting_config_->Save(); |
-} |
- |
-void ChromotingHostManager::Start() { |
- // Don't do anything if we already started. |
- if (chromoting_host_.get()) |
- return; |
- |
- // Start the chromoting context first. |
- chromoting_context_.reset( |
- new remoting::ChromotingHostContext(main_message_loop_)); |
- chromoting_context_->Start(); |
- |
- // Create a chromoting host object. |
- chromoting_host_ = remoting::ChromotingHost::Create(chromoting_context_.get(), |
- chromoting_config_); |
- |
- // Initialize HeartbeatSender. |
- scoped_refptr<remoting::HeartbeatSender> heartbeat_sender = |
- new remoting::HeartbeatSender(chromoting_context_->network_message_loop(), |
- chromoting_config_); |
- if (!heartbeat_sender->Init()) |
- LOG(ERROR) << "Failed to initialize heartbeat sender."; |
- chromoting_host_->AddStatusObserver(heartbeat_sender); |
- |
- |
- // Then start the chromoting host. |
- // When ChromotingHost is shutdown because of failure or a request that |
- // we made OnChromotingShutdown() is calls. |
- chromoting_host_->Start( |
- NewRunnableMethod(this, &ChromotingHostManager::OnShutdown)); |
-} |
- |
-void ChromotingHostManager::OnShutdown() { |
- if (MessageLoop::current() != main_message_loop_) { |
- main_message_loop_->PostTask(FROM_HERE, |
- NewRunnableMethod(this, &ChromotingHostManager::OnShutdown)); |
- return; |
- } |
- chromoting_context_->Stop(); |
- chromoting_context_.reset(); |
- chromoting_host_ = NULL; |
- |
- if (shutdown_task_.get()) { |
- shutdown_task_->Run(); |
- shutdown_task_.reset(); |
- } |
-} |
- |
-} // namespace remoting |