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

Unified Diff: remoting/host/plugin/host_script_object.cc

Issue 10920019: [Chromoting] Refactoring DesktopEnvironment and moving screen/audio recorders to ClientSession. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 8 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
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 b905d3d2e7ba7a9314d486843ccb9ad98b64d8c5..6a964f530eccae61bd37fcf0d45fefe222a28ead 100644
--- a/remoting/host/plugin/host_script_object.cc
+++ b/remoting/host/plugin/host_script_object.cc
@@ -19,7 +19,7 @@
#include "remoting/base/auth_token_util.h"
#include "remoting/host/chromoting_host.h"
#include "remoting/host/chromoting_host_context.h"
-#include "remoting/host/desktop_environment.h"
+#include "remoting/host/desktop_environment_factory.h"
#include "remoting/host/host_config.h"
#include "remoting/host/host_event_logger.h"
#include "remoting/host/host_key_pair.h"
@@ -93,6 +93,7 @@ HostNPScriptObject::HostNPScriptObject(
np_thread_id_(base::PlatformThread::CurrentId()),
plugin_task_runner_(
new PluginThreadTaskRunner(plugin_thread_delegate)),
+ desktop_environment_factory_(new DesktopEnvironmentFactory()),
failed_login_attempts_(0),
disconnected_event_(true, false),
nat_traversal_enabled_(false),
@@ -503,43 +504,22 @@ void HostNPScriptObject::ReadPolicyAndConnect(const std::string& uid,
// Only proceed to FinishConnect() if at least one policy update has been
// received.
if (policy_received_) {
- FinishConnectMainThread(uid, auth_token, auth_service);
+ FinishConnect(uid, auth_token, auth_service);
} else {
// Otherwise, create the policy watcher, and thunk the connect.
pending_connect_ =
- base::Bind(&HostNPScriptObject::FinishConnectMainThread,
+ base::Bind(&HostNPScriptObject::FinishConnect,
base::Unretained(this), uid, auth_token, auth_service);
}
}
-void HostNPScriptObject::FinishConnectMainThread(
- const std::string& uid,
- const std::string& auth_token,
- const std::string& auth_service) {
- if (!host_context_->capture_task_runner()->BelongsToCurrentThread()) {
- host_context_->capture_task_runner()->PostTask(FROM_HERE, base::Bind(
- &HostNPScriptObject::FinishConnectMainThread, base::Unretained(this),
- uid, auth_token, auth_service));
- return;
- }
-
- // DesktopEnvironment must be initialized on the capture thread.
- //
- // TODO(sergeyu): Fix DesktopEnvironment so that it can be created
- // on either the UI or the network thread so that we can avoid
- // jumping to the main thread here.
- desktop_environment_ = DesktopEnvironment::Create(host_context_.get());
-
- FinishConnectNetworkThread(uid, auth_token, auth_service);
-}
-
-void HostNPScriptObject::FinishConnectNetworkThread(
+void HostNPScriptObject::FinishConnect(
const std::string& uid,
const std::string& auth_token,
const std::string& auth_service) {
if (!host_context_->network_task_runner()->BelongsToCurrentThread()) {
host_context_->network_task_runner()->PostTask(FROM_HERE, base::Bind(
- &HostNPScriptObject::FinishConnectNetworkThread, base::Unretained(this),
+ &HostNPScriptObject::FinishConnect, base::Unretained(this),
uid, auth_token, auth_service));
return;
}
@@ -556,12 +536,6 @@ void HostNPScriptObject::FinishConnectNetworkThread(
return;
}
- // Verify that DesktopEnvironment has been created.
- if (desktop_environment_.get() == NULL) {
- SetState(kError);
- return;
- }
-
// Generate a key pair for the Host to use.
// TODO(wez): Move this to the worker thread.
host_key_pair_.Generate();
@@ -585,7 +559,8 @@ void HostNPScriptObject::FinishConnectNetworkThread(
// Create the Host.
LOG(INFO) << "NAT state: " << nat_traversal_enabled_;
host_ = new ChromotingHost(
- host_context_.get(), signal_strategy_.get(), desktop_environment_.get(),
+ host_context_.get(), signal_strategy_.get(),
+ desktop_environment_factory_.get(),
CreateHostSessionManager(
NetworkSettings(nat_traversal_enabled_ ?
NetworkSettings::NAT_TRAVERSAL_ENABLED :
@@ -880,7 +855,6 @@ void HostNPScriptObject::DisconnectInternal() {
return;
case kStarting:
- desktop_environment_.reset();
SetState(kDisconnecting);
SetState(kDisconnected);
return;
@@ -910,8 +884,6 @@ void HostNPScriptObject::DisconnectInternal() {
void HostNPScriptObject::OnShutdownFinished() {
DCHECK(host_context_->network_task_runner()->BelongsToCurrentThread());
-
- desktop_environment_.reset();
}
void HostNPScriptObject::OnPolicyUpdate(

Powered by Google App Engine
This is Rietveld 408576698