| 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;
|
|
|