Index: remoting/host/plugin/host_script_object.cc |
diff --git a/remoting/host/plugin/host_script_object.cc b/remoting/host/plugin/host_script_object.cc |
index 7b82603f0756cd43664628f8da27b65b25de8666..d86389958fb277e3aee60767c7836acf466c0e7d 100644 |
--- a/remoting/host/plugin/host_script_object.cc |
+++ b/remoting/host/plugin/host_script_object.cc |
@@ -15,8 +15,8 @@ |
#include "base/utf_string_conversions.h" |
#include "base/values.h" |
#include "net/base/net_util.h" |
-#include "remoting/base/auto_thread_task_runner.h" |
#include "remoting/base/auth_token_util.h" |
+#include "remoting/base/auto_thread.h" |
#include "remoting/host/chromoting_host.h" |
#include "remoting/host/chromoting_host_context.h" |
#include "remoting/host/desktop_environment_factory.h" |
@@ -114,9 +114,6 @@ class HostNPScriptObject::It2MeImpl |
virtual ~It2MeImpl(); |
- // Used to delete and join the ChromotingHostContext on the UI thread. |
- static void DeleteHostContext(scoped_ptr<ChromotingHostContext> context) {} |
- |
// Updates state of the host. Can be called only on the network thread. |
void SetState(State state); |
@@ -559,12 +556,6 @@ HostNPScriptObject::It2MeImpl::~It2MeImpl() { |
DCHECK(!it2me_host_user_interface_.get()); |
DCHECK(!desktop_environment_factory_.get()); |
DCHECK(!policy_watcher_.get()); |
- |
- // We might be getting deleted on one of the threads the |host_context| owns, |
- // so we need to post it back to the plugin thread to safely join & delete the |
- // threads it contains. This will go away when we move to AutoThread. |
- plugin_task_runner_->PostTask(FROM_HERE, |
- base::Bind(&It2MeImpl::DeleteHostContext, base::Passed(&host_context_))); |
} |
void HostNPScriptObject::It2MeImpl::SetState(State state) { |
@@ -666,12 +657,13 @@ HostNPScriptObject::HostNPScriptObject( |
am_currently_logging_(false), |
state_(kDisconnected), |
daemon_controller_(DaemonController::Create()), |
- worker_thread_("RemotingHostPlugin"), |
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)), |
weak_ptr_(weak_factory_.GetWeakPtr()) { |
DCHECK(plugin_task_runner_->BelongsToCurrentThread()); |
- worker_thread_.Start(); |
+ // Create worker thread for encryption key generation. |
+ worker_thread_ = AutoThread::Create("ChromotingWorkerThread", |
+ plugin_task_runner_); |
} |
HostNPScriptObject::~HostNPScriptObject() { |
@@ -684,9 +676,6 @@ HostNPScriptObject::~HostNPScriptObject() { |
it2me_impl_->Disconnect(); |
it2me_impl_ = NULL; |
} |
- |
- // Stop the worker thread. |
- worker_thread_.Stop(); |
} |
bool HostNPScriptObject::HasMethod(const std::string& method_name) { |
@@ -955,9 +944,9 @@ bool HostNPScriptObject::Connect(const NPVariant* args, |
} |
// Create threads for the Chromoting host & desktop environment to use. |
- scoped_ptr<ChromotingHostContext> host_context( |
- new ChromotingHostContext(plugin_task_runner_)); |
- if (!host_context->Start()) { |
+ scoped_ptr<ChromotingHostContext> host_context = |
+ ChromotingHostContext::Create(plugin_task_runner_); |
+ if (!host_context) { |
SetException("connect: failed to start threads"); |
return false; |
} |
@@ -1060,7 +1049,7 @@ bool HostNPScriptObject::GenerateKeyPair(const NPVariant* args, |
// TODO(wez): HostNPScriptObject needn't be touched on worker |
// thread, so make DoGenerateKeyPair static and pass it a callback |
// to run (crbug.com/156257). |
- worker_thread_.message_loop_proxy()->PostTask( |
+ worker_thread_->PostTask( |
FROM_HERE, base::Bind(&HostNPScriptObject::DoGenerateKeyPair, |
base::Unretained(this), callback_obj)); |
return true; |