| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "android_webview/browser/aw_browser_terminator.h" | 5 #include "android_webview/browser/aw_browser_terminator.h" |
| 6 | 6 |
| 7 #include <unistd.h> | 7 #include <unistd.h> |
| 8 | 8 |
| 9 #include "android_webview/browser/aw_render_process_gone_delegate.h" | 9 #include "android_webview/browser/aw_render_process_gone_delegate.h" |
| 10 #include "android_webview/common/aw_descriptors.h" | 10 #include "android_webview/common/aw_descriptors.h" |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 delegates->push_back(delegate); | 50 delegates->push_back(delegate); |
| 51 } | 51 } |
| 52 } | 52 } |
| 53 } | 53 } |
| 54 } | 54 } |
| 55 | 55 |
| 56 void OnRenderProcessGone(int child_process_id) { | 56 void OnRenderProcessGone(int child_process_id) { |
| 57 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 57 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 58 std::vector<AwRenderProcessGoneDelegate*> delegates; | 58 std::vector<AwRenderProcessGoneDelegate*> delegates; |
| 59 GetAwRenderProcessGoneDelegatesForRenderProcess(child_process_id, &delegates); | 59 GetAwRenderProcessGoneDelegatesForRenderProcess(child_process_id, &delegates); |
| 60 for (auto delegate : delegates) | 60 for (auto* delegate : delegates) |
| 61 delegate->OnRenderProcessGone(child_process_id); | 61 delegate->OnRenderProcessGone(child_process_id); |
| 62 } | 62 } |
| 63 | 63 |
| 64 void OnRenderProcessGoneDetail(int child_process_id, | 64 void OnRenderProcessGoneDetail(int child_process_id, |
| 65 base::ProcessHandle child_process_pid, | 65 base::ProcessHandle child_process_pid, |
| 66 bool crashed) { | 66 bool crashed) { |
| 67 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 67 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 68 std::vector<AwRenderProcessGoneDelegate*> delegates; | 68 std::vector<AwRenderProcessGoneDelegate*> delegates; |
| 69 GetAwRenderProcessGoneDelegatesForRenderProcess(child_process_id, &delegates); | 69 GetAwRenderProcessGoneDelegatesForRenderProcess(child_process_id, &delegates); |
| 70 for (auto delegate : delegates) { | 70 for (auto* delegate : delegates) { |
| 71 if (!delegate->OnRenderProcessGoneDetail(child_process_pid, crashed)) { | 71 if (!delegate->OnRenderProcessGoneDetail(child_process_pid, crashed)) { |
| 72 if (crashed) { | 72 if (crashed) { |
| 73 // Keeps this log unchanged, CTS test uses it to detect crash. | 73 // Keeps this log unchanged, CTS test uses it to detect crash. |
| 74 LOG(FATAL) << "Render process (" << child_process_pid << ")'s crash" | 74 LOG(FATAL) << "Render process (" << child_process_pid << ")'s crash" |
| 75 << " wasn't handled by all associated webviews, triggering" | 75 << " wasn't handled by all associated webviews, triggering" |
| 76 << " application crash."; | 76 << " application crash."; |
| 77 } else { | 77 } else { |
| 78 // The render process was most likely killed for OOM or switching | 78 // The render process was most likely killed for OOM or switching |
| 79 // WebView provider, to make WebView backward compatible, kills the | 79 // WebView provider, to make WebView backward compatible, kills the |
| 80 // browser process instead of triggering crash. | 80 // browser process instead of triggering crash. |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 154 return; | 154 return; |
| 155 OnRenderProcessGone(child_process_id); | 155 OnRenderProcessGone(child_process_id); |
| 156 DCHECK(pipe->handle() != base::SyncSocket::kInvalidHandle); | 156 DCHECK(pipe->handle() != base::SyncSocket::kInvalidHandle); |
| 157 BrowserThread::PostTask( | 157 BrowserThread::PostTask( |
| 158 BrowserThread::FILE, FROM_HERE, | 158 BrowserThread::FILE, FROM_HERE, |
| 159 base::Bind(&AwBrowserTerminator::ProcessTerminationStatus, | 159 base::Bind(&AwBrowserTerminator::ProcessTerminationStatus, |
| 160 child_process_id, pid, base::Passed(std::move(pipe)))); | 160 child_process_id, pid, base::Passed(std::move(pipe)))); |
| 161 } | 161 } |
| 162 | 162 |
| 163 } // namespace breakpad | 163 } // namespace breakpad |
| OLD | NEW |