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 |