Chromium Code Reviews| Index: chrome/browser/task_management/providers/web_contents/web_contents_task_provider.cc |
| diff --git a/chrome/browser/task_management/providers/web_contents/web_contents_task_provider.cc b/chrome/browser/task_management/providers/web_contents/web_contents_task_provider.cc |
| index a80a9e57f18eb43b2ce65924ca100309781e50fb..bed82a8d71e0c264001ec1418aef3b3475b98068 100644 |
| --- a/chrome/browser/task_management/providers/web_contents/web_contents_task_provider.cc |
| +++ b/chrome/browser/task_management/providers/web_contents/web_contents_task_provider.cc |
| @@ -15,6 +15,7 @@ |
| #include "content/public/browser/web_contents_observer.h" |
| using content::RenderFrameHost; |
| +using content::RenderWidgetHost; |
| using content::SiteInstance; |
| using content::WebContents; |
| @@ -52,6 +53,7 @@ class WebContentsEntry : public content::WebContentsObserver { |
| void RenderViewReady() override; |
| void WebContentsDestroyed() override; |
| void RenderProcessGone(base::TerminationStatus status) override; |
| + void OnRendererUnresponsive(RenderWidgetHost* render_widget_host) override; |
| void DidNavigateMainFrame( |
| const content::LoadCommittedDetails& details, |
| const content::FrameNavigateParams& params) override; |
| @@ -113,6 +115,10 @@ void WebContentsEntry::ClearAllTasks(bool notify_observer) { |
| FramesList& frames_list = pair.second; |
| DCHECK(!frames_list.empty()); |
| RendererTask* task = tasks_by_frames_[frames_list[0]]; |
| + |
| + task->set_termination_status(web_contents()->GetCrashedStatus()); |
| + task->set_termination_error_code(web_contents()->GetCrashedErrorCode()); |
| + |
| if (notify_observer) |
| provider_->NotifyObserverTaskRemoved(task); |
| delete task; |
| @@ -156,6 +162,15 @@ void WebContentsEntry::RenderProcessGone(base::TerminationStatus status) { |
| ClearAllTasks(true); |
| } |
| +void WebContentsEntry::OnRendererUnresponsive( |
| + RenderWidgetHost* render_widget_host) { |
| + auto itr = tasks_by_frames_.find(web_contents()->GetMainFrame()); |
| + if (itr == tasks_by_frames_.end()) |
| + return; |
| + |
|
ncarter (slow)
2016/02/11 22:16:49
This function should use the |render_widget_host|
afakhry
2016/02/17 02:27:14
Done.
|
| + provider_->NotifyObserverTaskUnresponsive(itr->second); |
| +} |
| + |
| void WebContentsEntry::DidNavigateMainFrame( |
| const content::LoadCommittedDetails& details, |
| const content::FrameNavigateParams& params) { |