Index: chrome/browser/task_management/providers/web_contents/renderer_task.cc |
diff --git a/chrome/browser/task_management/providers/web_contents/renderer_task.cc b/chrome/browser/task_management/providers/web_contents/renderer_task.cc |
index 371a7cb7b4b95b00749a6dfbd09dc3b7f31bc231..ca30ac750dd15e99591707ebeb60063e23cd64a9 100644 |
--- a/chrome/browser/task_management/providers/web_contents/renderer_task.cc |
+++ b/chrome/browser/task_management/providers/web_contents/renderer_task.cc |
@@ -78,9 +78,17 @@ RendererTask::RendererTask(const base::string16& title, |
// All renderer tasks are capable of reporting network usage, so the default |
// invalid value of -1 doesn't apply here. |
OnNetworkBytesRead(0); |
+ |
+ // Tag the web_contents with a |ContentFaviconDriver| (if needed) so that |
+ // we can use it to observe favicons changes. |
+ favicon::CreateContentFaviconDriverForWebContents(web_contents); |
+ favicon::ContentFaviconDriver::FromWebContents(web_contents)->AddObserver( |
+ this); |
} |
RendererTask::~RendererTask() { |
+ favicon::ContentFaviconDriver::FromWebContents(web_contents())-> |
+ RemoveObserver(this); |
} |
void RendererTask::Activate() { |
@@ -138,6 +146,14 @@ blink::WebCache::ResourceTypeStats RendererTask::GetWebCacheStats() const { |
return webcache_stats_; |
} |
+void RendererTask::OnFaviconAvailable(const gfx::Image& image) { |
+} |
+ |
+void RendererTask::OnFaviconUpdated(favicon::FaviconDriver* favicon_driver, |
+ bool icon_url_changed) { |
+ UpdateFavicon(); |
+} |
+ |
// static |
base::string16 RendererTask::GetTitleFromWebContents( |
content::WebContents* web_contents) { |