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 "content/browser/browser_child_process_host_impl.h" | 5 #include "content/browser/browser_child_process_host_impl.h" |
6 | 6 |
7 #include "base/base_switches.h" | 7 #include "base/base_switches.h" |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
263 } | 263 } |
264 base::KillProcess(GetHandle(), RESULT_CODE_KILLED_BAD_MESSAGE, false); | 264 base::KillProcess(GetHandle(), RESULT_CODE_KILLED_BAD_MESSAGE, false); |
265 } | 265 } |
266 | 266 |
267 bool BrowserChildProcessHostImpl::CanShutdown() { | 267 bool BrowserChildProcessHostImpl::CanShutdown() { |
268 return delegate_->CanShutdown(); | 268 return delegate_->CanShutdown(); |
269 } | 269 } |
270 | 270 |
271 void BrowserChildProcessHostImpl::OnChildDisconnected() { | 271 void BrowserChildProcessHostImpl::OnChildDisconnected() { |
272 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 272 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
273 #if defined(OS_WIN) | |
274 DeleteProcessWaitableEvent(early_exit_watcher_.GetWatchedEvent()); | |
275 early_exit_watcher_.StopWatching(); | |
rvargas (doing something else)
2014/10/17 01:00:07
How does this work after https://codereview.chromi
| |
276 #endif | |
273 if (child_process_.get() || data_.handle) { | 277 if (child_process_.get() || data_.handle) { |
274 DCHECK(data_.handle != base::kNullProcessHandle); | 278 DCHECK(data_.handle != base::kNullProcessHandle); |
275 int exit_code; | 279 int exit_code; |
276 base::TerminationStatus status = GetTerminationStatus( | 280 base::TerminationStatus status = GetTerminationStatus( |
277 true /* known_dead */, &exit_code); | 281 true /* known_dead */, &exit_code); |
278 switch (status) { | 282 switch (status) { |
279 case base::TERMINATION_STATUS_PROCESS_CRASHED: | 283 case base::TERMINATION_STATUS_PROCESS_CRASHED: |
280 case base::TERMINATION_STATUS_ABNORMAL_TERMINATION: { | 284 case base::TERMINATION_STATUS_ABNORMAL_TERMINATION: { |
281 delegate_->OnProcessCrashed(exit_code); | 285 delegate_->OnProcessCrashed(exit_code); |
282 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, | 286 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
359 | 363 |
360 void BrowserChildProcessHostImpl::OnProcessExitedEarly( | 364 void BrowserChildProcessHostImpl::OnProcessExitedEarly( |
361 base::WaitableEvent* event) { | 365 base::WaitableEvent* event) { |
362 DeleteProcessWaitableEvent(event); | 366 DeleteProcessWaitableEvent(event); |
363 OnChildDisconnected(); | 367 OnChildDisconnected(); |
364 } | 368 } |
365 | 369 |
366 #endif | 370 #endif |
367 | 371 |
368 } // namespace content | 372 } // namespace content |
OLD | NEW |