Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1147)

Unified Diff: chrome/browser/task_management/providers/web_contents/web_contents_task_provider.cc

Issue 1185183008: New Task Manager - Phase 1.3.2.B: Implement Tab Contents Task Providing (Prerender) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Using task-manager specific code in prerender_contents only if TM is enabled in build. Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 7cd7c0d624ced81be3d0ff6f67599c1e073b736c..c5dcabbf6c0e1414d52b8900e85e1d43d1a0652f 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
@@ -52,6 +52,7 @@ class WebContentsEntry : public content::WebContentsObserver {
const std::vector<content::FaviconURL>& candidates) override;
private:
+ friend class WebContentsTaskProvider;
ncarter (slow) 2015/06/19 19:50:51 WebContentsTaskProvider is the only class that can
afakhry 2015/06/19 21:49:22 Done.
// Defines a callback for WebContents::ForEachFrame() to create a
// corresponding task for the given |render_frame_host| and notifying the
// provider's observer of the new task.
@@ -282,6 +283,21 @@ void WebContentsTaskProvider::OnWebContentsTagCreated(WebContentsTag* tag) {
entry->CreateAllTasks();
}
+void WebContentsTaskProvider::OnWebContentsTagRemoved(WebContentsTag* tag) {
+ DCHECK(tag);
+ content::WebContents* web_contents = tag->web_contents();
+ DCHECK(web_contents);
+
+ auto itr = entries_map_.find(web_contents);
+ DCHECK(itr != entries_map_.end());
+ WebContentsEntry* entry = itr->second;
+
+ // Must manually clear the tasks and notifying the observer.
ncarter (slow) 2015/06/19 19:50:51 notifying->notify
afakhry 2015/06/19 21:49:22 Done.
+ entry->ClearAllTasks(true);
+ entries_map_.erase(itr);
+ delete entry;
+}
+
Task* WebContentsTaskProvider::GetTaskOfUrlRequest(int origin_pid,
int child_id,
int route_id) {

Powered by Google App Engine
This is Rietveld 408576698