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

Unified Diff: remoting/host/ipc_desktop_environment_factory.cc

Issue 11778049: Making DesktopEnvironment a factory class used by ClientSession to create audio/video capturers and… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 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/ipc_desktop_environment_factory.cc
diff --git a/remoting/host/ipc_desktop_environment_factory.cc b/remoting/host/ipc_desktop_environment_factory.cc
index 250b4f4101f42b508e66f80ce71e895f6e5a2717..b5bdbb2fa9f6b0efa0a0f1713e580d4c9628b2b5 100644
--- a/remoting/host/ipc_desktop_environment_factory.cc
+++ b/remoting/host/ipc_desktop_environment_factory.cc
@@ -21,39 +21,31 @@
namespace remoting {
IpcDesktopEnvironmentFactory::IpcDesktopEnvironmentFactory(
- IPC::ChannelProxy* daemon_channel,
- scoped_refptr<base::SingleThreadTaskRunner> audio_capture_task_runner,
- scoped_refptr<base::SingleThreadTaskRunner> input_task_runner,
- scoped_refptr<base::SingleThreadTaskRunner> network_task_runner,
- scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner,
- scoped_refptr<base::SingleThreadTaskRunner> video_capture_task_runner)
- : DesktopEnvironmentFactory(input_task_runner, ui_task_runner),
+ scoped_refptr<base::SingleThreadTaskRunner> caller_task_runner,
+ IPC::ChannelProxy* daemon_channel)
+ : DesktopEnvironmentFactory(caller_task_runner),
daemon_channel_(daemon_channel),
- audio_capture_task_runner_(audio_capture_task_runner),
- network_task_runner_(network_task_runner),
- video_capture_task_runner_(video_capture_task_runner),
+ connector_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
next_id_(0) {
}
IpcDesktopEnvironmentFactory::~IpcDesktopEnvironmentFactory() {
+ DCHECK(caller_task_runner()->BelongsToCurrentThread());
}
-scoped_ptr<DesktopEnvironment> IpcDesktopEnvironmentFactory::Create() {
- DCHECK(network_task_runner_->BelongsToCurrentThread());
-
- scoped_refptr<DesktopSessionProxy> desktop_session_proxy(
- new DesktopSessionProxy(audio_capture_task_runner_,
- network_task_runner_,
- video_capture_task_runner_));
+scoped_ptr<DesktopEnvironment> IpcDesktopEnvironmentFactory::Create(
+ const std::string& client_jid,
+ const base::Closure& disconnect_callback) {
+ DCHECK(caller_task_runner()->BelongsToCurrentThread());
return scoped_ptr<DesktopEnvironment>(new IpcDesktopEnvironment(
- input_task_runner_, network_task_runner_, ui_task_runner_,
- this, desktop_session_proxy));
+ caller_task_runner(), client_jid, disconnect_callback,
+ connector_factory_.GetWeakPtr()));
}
void IpcDesktopEnvironmentFactory::ConnectTerminal(
scoped_refptr<DesktopSessionProxy> desktop_session_proxy) {
- DCHECK(network_task_runner_->BelongsToCurrentThread());
+ DCHECK(caller_task_runner()->BelongsToCurrentThread());
int id = next_id_++;
bool inserted = active_connections_.insert(
@@ -66,7 +58,7 @@ void IpcDesktopEnvironmentFactory::ConnectTerminal(
void IpcDesktopEnvironmentFactory::DisconnectTerminal(
scoped_refptr<DesktopSessionProxy> desktop_session_proxy) {
- DCHECK(network_task_runner_->BelongsToCurrentThread());
+ DCHECK(caller_task_runner()->BelongsToCurrentThread());
ActiveConnectionsList::iterator i;
for (i = active_connections_.begin(); i != active_connections_.end(); ++i) {
@@ -87,8 +79,8 @@ void IpcDesktopEnvironmentFactory::OnDesktopSessionAgentAttached(
int terminal_id,
IPC::PlatformFileForTransit desktop_process,
IPC::PlatformFileForTransit desktop_pipe) {
- if (!network_task_runner_->BelongsToCurrentThread()) {
- network_task_runner_->PostTask(FROM_HERE, base::Bind(
+ if (!caller_task_runner()->BelongsToCurrentThread()) {
+ caller_task_runner()->PostTask(FROM_HERE, base::Bind(
&IpcDesktopEnvironmentFactory::OnDesktopSessionAgentAttached,
base::Unretained(this), terminal_id, desktop_process, desktop_pipe));
return;
@@ -112,8 +104,8 @@ void IpcDesktopEnvironmentFactory::OnDesktopSessionAgentAttached(
}
void IpcDesktopEnvironmentFactory::OnTerminalDisconnected(int terminal_id) {
- if (!network_task_runner_->BelongsToCurrentThread()) {
- network_task_runner_->PostTask(FROM_HERE, base::Bind(
+ if (!caller_task_runner()->BelongsToCurrentThread()) {
+ caller_task_runner()->PostTask(FROM_HERE, base::Bind(
&IpcDesktopEnvironmentFactory::OnTerminalDisconnected,
base::Unretained(this), terminal_id));
return;

Powered by Google App Engine
This is Rietveld 408576698