Index: chrome/browser/task_management/providers/web_contents/extension_task.cc |
diff --git a/chrome/browser/task_management/providers/web_contents/extension_task.cc b/chrome/browser/task_management/providers/web_contents/extension_task.cc |
index a63781a20de87823ad8deef3d4ab707e2676cd8a..2d4701158884f815a86f7cb37f4117bfaf730471 100644 |
--- a/chrome/browser/task_management/providers/web_contents/extension_task.cc |
+++ b/chrome/browser/task_management/providers/web_contents/extension_task.cc |
@@ -8,7 +8,9 @@ |
#include "content/public/browser/browser_context.h" |
#include "content/public/browser/web_contents.h" |
#include "extensions/browser/view_type_utils.h" |
+#include "extensions/common/constants.h" |
#include "extensions/common/extension.h" |
+#include "extensions/common/manifest_handlers/icons_handler.h" |
#include "extensions/common/view_type.h" |
#include "grit/theme_resources.h" |
#include "ui/base/resource/resource_bundle.h" |
@@ -40,6 +42,7 @@ ExtensionTask::ExtensionTask(content::WebContents* web_contents, |
GetDefaultIcon(), |
web_contents, |
web_contents->GetRenderProcessHost()) { |
+ LoadExtensionIcon(web_contents, extension); |
} |
ExtensionTask::~ExtensionTask() { |
@@ -51,15 +54,23 @@ void ExtensionTask::OnTitleChanged(content::NavigationEntry* entry) { |
} |
void ExtensionTask::OnFaviconChanged() { |
- // For now we never change the favicon of the extension, we always use the |
- // default one. |
- // TODO(afakhry): In the future use the extensions' favicons. |
+ // We don't care about the favicon of the WebContents but rather of the |
+ // extension. |
} |
Task::Type ExtensionTask::GetType() const { |
return Task::EXTENSION; |
} |
+void ExtensionTask::OnExtensionIconImageChanged(extensions::IconImage* image) { |
+ DCHECK_EQ(extension_icon_.get(), image); |
+ |
+ if (image->image_skia().isNull()) |
+ return; |
Devlin
2015/08/27 16:08:55
nit: it'll depend on who you ask, but I generally
afakhry
2015/08/27 21:48:15
Done.
|
+ |
+ set_icon(image->image_skia()); |
+} |
+ |
base::string16 ExtensionTask::GetExtensionTitle( |
content::WebContents* web_contents, |
const extensions::Extension* extension, |
@@ -81,4 +92,24 @@ base::string16 ExtensionTask::GetExtensionTitle( |
is_background); |
} |
+void ExtensionTask::LoadExtensionIcon(content::WebContents* web_contents, |
Devlin
2015/08/27 16:08:55
instead of passing in web_contents, just use web_c
afakhry
2015/08/27 21:48:15
Done.
|
+ const extensions::Extension* extension) { |
+ DCHECK(web_contents); |
+ |
+ if (!extension) |
+ return; |
+ |
+ extension_icon_.reset( |
+ new extensions::IconImage(web_contents->GetBrowserContext(), |
+ extension, |
+ extensions::IconsInfo::GetIcons(extension), |
+ extension_misc::EXTENSION_ICON_SMALL, |
+ icon(), |
+ this)); |
+ |
+ // Triggers actual image loading with 1x resources. |
+ extension_icon_->image_skia().GetRepresentation(1.0f); |
+ set_icon(extension_icon_->image_skia()); |
+} |
+ |
} // namespace task_management |