Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6904)

Unified Diff: chrome/service/service_process.cc

Issue 3110004: Revert 55507 - Start chromoting host in the service process though a method ... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/service/service_process.h ('k') | chrome/service/service_process_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/service/service_process.cc
===================================================================
--- chrome/service/service_process.cc (revision 55524)
+++ chrome/service/service_process.cc (working copy)
@@ -16,17 +16,16 @@
#include "net/base/network_change_notifier.h"
#if defined(ENABLE_REMOTING)
-#include "remoting/base/constants.h"
#include "remoting/base/encoder_zlib.h"
#include "remoting/host/chromoting_host.h"
#include "remoting/host/chromoting_host_context.h"
-#include "remoting/host/json_host_config.h"
+#include "remoting/host/host_config.h"
#if defined(OS_WIN)
#include "remoting/host/capturer_gdi.h"
#include "remoting/host/event_executor_win.h"
#elif defined(OS_LINUX)
-#include "remoting/host/capturer_fake.h"
+#include "remoting/host/capturer_linux.h"
#include "remoting/host/event_executor_linux.h"
#elif defined(OS_MACOSX)
#include "remoting/host/capturer_mac.h"
@@ -36,15 +35,12 @@
ServiceProcess* g_service_process = NULL;
-ServiceProcess::ServiceProcess()
- : shutdown_event_(true, false),
- main_message_loop_(NULL) {
+ServiceProcess::ServiceProcess() : shutdown_event_(true, false) {
DCHECK(!g_service_process);
g_service_process = this;
}
-bool ServiceProcess::Initialize(MessageLoop* message_loop) {
- main_message_loop_ = message_loop;
+bool ServiceProcess::Initialize() {
network_change_notifier_.reset(net::NetworkChangeNotifier::Create());
base::Thread::Options options;
options.message_loop_type = MessageLoop::TYPE_IO;
@@ -78,16 +74,9 @@
}
bool ServiceProcess::Teardown() {
- if (service_prefs_.get()) {
- service_prefs_->WritePrefs();
- service_prefs_.reset();
- }
+ service_prefs_->WritePrefs();
+ service_prefs_.reset();
cloud_print_proxy_.reset();
-
-#if defined(ENABLE_REMOTING)
- ShutdownChromotingHost();
-#endif
-
ipc_server_.reset();
// Signal this event before shutting down the service process. That way all
// background threads can cleanup.
@@ -97,7 +86,6 @@
// The NetworkChangeNotifier must be destroyed after all other threads that
// might use it have been shut down.
network_change_notifier_.reset();
-
return true;
}
@@ -110,29 +98,19 @@
}
#if defined(ENABLE_REMOTING)
-bool ServiceProcess::StartChromotingHost() {
- // We have already started.
- if (chromoting_context_.get())
- return true;
-
- // Load chromoting config from the disk.
- LoadChromotingConfig();
-
- // Start the chromoting context first.
- chromoting_context_.reset(new remoting::ChromotingHostContext());
- chromoting_context_->Start();
-
- // Create capturer, encoder and executor. The ownership will be transfered
- // to the chromoting host.
+remoting::ChromotingHost* ServiceProcess::CreateChromotingHost(
+ remoting::ChromotingHostContext* context,
+ remoting::MutableHostConfig* config) {
scoped_ptr<remoting::Capturer> capturer;
scoped_ptr<remoting::Encoder> encoder;
scoped_ptr<remoting::EventExecutor> executor;
+ // Select the capturer and encoder from |config|.
#if defined(OS_WIN)
capturer.reset(new remoting::CapturerGdi());
executor.reset(new remoting::EventExecutorWin());
#elif defined(OS_LINUX)
- capturer.reset(new remoting::CapturerFake());
+ capturer.reset(new remoting::CapturerLinux());
executor.reset(new remoting::EventExecutorLinux());
#elif defined(OS_MACOSX)
capturer.reset(new remoting::CapturerMac());
@@ -140,89 +118,12 @@
#endif
encoder.reset(new remoting::EncoderZlib());
- // Create a chromoting host object.
- chromoting_host_ = new remoting::ChromotingHost(chromoting_context_.get(),
- chromoting_config_,
- capturer.release(),
- encoder.release(),
- executor.release());
-
- // 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, &ServiceProcess::OnChromotingHostShutdown));
- return true;
+ return new remoting::ChromotingHost(context, config, capturer.release(),
+ encoder.release(), executor.release());
}
-
-bool ServiceProcess::ShutdownChromotingHost() {
- // Chromoting host doesn't exist so return true.
- if (!chromoting_host_)
- return true;
-
- // Shutdown the chromoting host asynchronously. This will signal the host to
- // shutdown, we'll actually wait for all threads to stop when we destroy
- // the chromoting context.
- chromoting_host_->Shutdown();
- chromoting_host_ = NULL;
- return true;
-}
-
-// A util function to update the login information to host config.
-static void SaveChromotingConfigFunc(remoting::JsonHostConfig* config,
- const std::string& login,
- const std::string& token,
- const std::string& host_id,
- const std::string& host_name,
- const std::string& private_key) {
- config->SetString(remoting::kXmppLoginConfigPath, login);
- config->SetString(remoting::kXmppAuthTokenConfigPath, token);
- config->SetString(remoting::kHostIdConfigPath, host_id);
- config->SetString(remoting::kHostNameConfigPath, host_name);
- config->SetString(remoting::kPrivateKeyConfigPath, private_key);
-}
-
-void ServiceProcess::SaveChromotingConfig(const std::string& login,
- const std::string& token,
- const std::string& host_id,
- const std::string& host_name,
- const std::string& private_key) {
- // First we need to load the config first.
- LoadChromotingConfig();
-
- // And then do the update.
- chromoting_config_->Update(
- NewRunnableFunction(&SaveChromotingConfigFunc, chromoting_config_.get(),
- login, token, host_id, host_name, private_key));
-}
-
-void ServiceProcess::LoadChromotingConfig() {
- // TODO(hclam): We really should be doing this on IO thread so we are not
- // blocked on file IOs.
- if (chromoting_config_)
- return;
-
- 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"));
- chromoting_config_ = new remoting::JsonHostConfig(
- chromoting_config_path, file_thread_->message_loop_proxy());
- if (!chromoting_config_->Read()) {
- LOG(INFO) << "Failed to read chromoting config file.";
- }
-}
-
-void ServiceProcess::OnChromotingHostShutdown() {
- // TODO(hclam): Implement.
-}
#endif
ServiceProcess::~ServiceProcess() {
Teardown();
g_service_process = NULL;
}
-
-// Disable refcounting for runnable method because it is really not needed
-// when we post tasks on the main message loop.
-DISABLE_RUNNABLE_METHOD_REFCOUNT(ServiceProcess);
« no previous file with comments | « chrome/service/service_process.h ('k') | chrome/service/service_process_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698