OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "remoting/host/win/worker_process_launcher.h" | 5 #include "remoting/host/win/worker_process_launcher.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/single_thread_task_runner.h" | 8 #include "base/single_thread_task_runner.h" |
9 #include "base/time.h" | 9 #include "base/time.h" |
10 #include "base/timer.h" | 10 #include "base/timer.h" |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
221 // trusted. | 221 // trusted. |
222 DWORD actual_pid = launcher_delegate_->GetProcessId(); | 222 DWORD actual_pid = launcher_delegate_->GetProcessId(); |
223 if (peer_pid != static_cast<int32>(actual_pid)) { | 223 if (peer_pid != static_cast<int32>(actual_pid)) { |
224 LOG(ERROR) << "The actual client PID " << actual_pid | 224 LOG(ERROR) << "The actual client PID " << actual_pid |
225 << " does not match the one reported by the client: " | 225 << " does not match the one reported by the client: " |
226 << peer_pid; | 226 << peer_pid; |
227 StopWorker(); | 227 StopWorker(); |
228 return; | 228 return; |
229 } | 229 } |
230 | 230 |
231 // Make sure |this| is not deleted if |worker_delegate_| decided to kill | |
232 // the WorkerProcessLauncher instance. | |
233 scoped_refptr<Core> self = this; | |
Sergey Ulanov
2012/10/24 20:12:01
How does that make any difference? This method ret
alexeypa (please no reviews)
2012/10/24 21:41:51
Yeah, this is probably not needed.
| |
234 | |
231 worker_delegate_->OnChannelConnected(peer_pid); | 235 worker_delegate_->OnChannelConnected(peer_pid); |
232 } | 236 } |
233 | 237 |
234 void WorkerProcessLauncher::Core::OnChannelError() { | 238 void WorkerProcessLauncher::Core::OnChannelError() { |
235 DCHECK(caller_task_runner_->BelongsToCurrentThread()); | 239 DCHECK(caller_task_runner_->BelongsToCurrentThread()); |
236 | 240 |
237 // Schedule a delayed termination of the worker process. Usually, the pipe is | 241 // Schedule a delayed termination of the worker process. Usually, the pipe is |
238 // disconnected when the worker process is about to exit. Waiting a little bit | 242 // disconnected when the worker process is about to exit. Waiting a little bit |
239 // here allows the worker to exit completely and so, notify | 243 // here allows the worker to exit completely and so, notify |
240 // |process_watcher_|. As the result KillProcess() will not be called and | 244 // |process_watcher_|. As the result KillProcess() will not be called and |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
340 WorkerProcessLauncher::~WorkerProcessLauncher() { | 344 WorkerProcessLauncher::~WorkerProcessLauncher() { |
341 core_->Stop(); | 345 core_->Stop(); |
342 core_ = NULL; | 346 core_ = NULL; |
343 } | 347 } |
344 | 348 |
345 void WorkerProcessLauncher::Send(IPC::Message* message) { | 349 void WorkerProcessLauncher::Send(IPC::Message* message) { |
346 core_->Send(message); | 350 core_->Send(message); |
347 } | 351 } |
348 | 352 |
349 } // namespace remoting | 353 } // namespace remoting |
OLD | NEW |