| Index: remoting/host/chromoting_host.cc | 
| diff --git a/remoting/host/chromoting_host.cc b/remoting/host/chromoting_host.cc | 
| index 40f136e15ea51c6890497c270869cca77448d318..319ad6705b6f20c561d799634508dec0521a474e 100644 | 
| --- a/remoting/host/chromoting_host.cc | 
| +++ b/remoting/host/chromoting_host.cc | 
| @@ -309,7 +309,7 @@ void ChromotingHost::OnIncomingSession( | 
|  | 
| // Create the desktop integration implementation for the client to use. | 
| scoped_ptr<DesktopEnvironment> desktop_environment = | 
| -      desktop_environment_factory_->Create(); | 
| +      desktop_environment_factory_->Create(this); | 
|  | 
| // Create a client object. | 
| scoped_ptr<protocol::ConnectionToClient> connection( | 
| @@ -375,6 +375,17 @@ void ChromotingHost::DisconnectAllClients() { | 
| } | 
| } | 
|  | 
| +void ChromotingHost::DisconnectClient(DesktopEnvironment* desktop_environment) { | 
| +  DCHECK(network_task_runner_->BelongsToCurrentThread()); | 
| + | 
| +  for (ClientList::iterator i = clients_.begin(); i != clients_.end(); ++i) { | 
| +    if ((*i)->desktop_environment() == desktop_environment) { | 
| +      (*i)->Disconnect(); | 
| +      break; | 
| +    } | 
| +  } | 
| +} | 
| + | 
| void ChromotingHost::SetUiStrings(const UiStrings& ui_strings) { | 
| DCHECK(network_task_runner_->BelongsToCurrentThread()); | 
| DCHECK_EQ(state_, kInitial); | 
|  |