Chromium Code Reviews| Index: chrome/browser/ui/app_list/search/extension_app_result.cc |
| diff --git a/chrome/browser/ui/app_list/search/extension_app_result.cc b/chrome/browser/ui/app_list/search/extension_app_result.cc |
| index 376c4a1fdd13501c6d6f9f21731a326aa60dbc87..1f9f47f4019a9ab2a36f85db19bc39199a1df119 100644 |
| --- a/chrome/browser/ui/app_list/search/extension_app_result.cc |
| +++ b/chrome/browser/ui/app_list/search/extension_app_result.cc |
| @@ -5,6 +5,9 @@ |
| #include "chrome/browser/ui/app_list/search/extension_app_result.h" |
| #include "base/metrics/user_metrics.h" |
| +#include "chrome/browser/chromeos/extensions/gfx_utils.h" |
|
Devlin
2017/05/01 14:51:11
needed?
khmel
2017/05/01 20:18:19
nice catch
|
| +#include "chrome/browser/extensions/extension_app_icon.h" |
| +#include "chrome/browser/extensions/extension_app_icon_service.h" |
| #include "chrome/browser/extensions/extension_util.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/ui/app_list/app_list_controller_delegate.h" |
| @@ -23,7 +26,6 @@ |
| #include "ui/events/event_constants.h" |
| #include "ui/gfx/color_utils.h" |
| #include "ui/gfx/image/image_skia_operations.h" |
| -#include "chrome/browser/chromeos/extensions/gfx_utils.h" |
| namespace app_list { |
| @@ -40,8 +42,8 @@ ExtensionAppResult::ExtensionAppResult(Profile* profile, |
| DCHECK(extension); |
| is_platform_app_ = extension->is_platform_app(); |
| - |
| - CreateOrUpdateIcon(); |
| + icon_ = extensions::ExtensionAppIconService::Get(profile)->CreateIcon( |
| + this, app_id, GetPreferredIconDimension()); |
| StartObservingExtensionRegistry(); |
| } |
| @@ -50,23 +52,6 @@ ExtensionAppResult::~ExtensionAppResult() { |
| StopObservingExtensionRegistry(); |
| } |
| -void ExtensionAppResult::CreateOrUpdateIcon() { |
| - if (icon_ && icon_->is_valid()) { |
| - UpdateIcon(); |
| - return; |
| - } |
| - |
| - const extensions::Extension* extension = |
| - extensions::ExtensionRegistry::Get(profile())->GetInstalledExtension( |
| - app_id()); |
| - DCHECK(extension); |
| - |
| - icon_ = base::MakeUnique<extensions::IconImage>( |
| - profile(), extension, extensions::IconsInfo::GetIcons(extension), |
| - GetPreferredIconDimension(), extensions::util::GetDefaultAppIcon(), this); |
| - UpdateIcon(); |
| -} |
| - |
| void ExtensionAppResult::Open(int event_flags) { |
| RecordHistogram(APP_SEARCH_RESULT); |
| const extensions::Extension* extension = |
| @@ -144,28 +129,8 @@ bool ExtensionAppResult::RunExtensionEnableFlow() { |
| return true; |
| } |
| -void ExtensionAppResult::UpdateIcon() { |
| - gfx::ImageSkia icon = icon_->image_skia(); |
| - |
| - extensions::util::MaybeApplyChromeBadge(profile(), app_id(), &icon); |
| - |
| - if (!extensions::util::IsAppLaunchable(app_id(), profile())) { |
| - const color_utils::HSL shift = {-1, 0, 0.6}; |
| - icon = gfx::ImageSkiaOperations::CreateHSLShiftedImage(icon, shift); |
| - } |
| - |
| - SetIcon(icon); |
| -} |
| - |
| -void ExtensionAppResult::OnExtensionIconImageChanged( |
| - extensions::IconImage* image) { |
| - DCHECK_EQ(icon_.get(), image); |
| - UpdateIcon(); |
| -} |
| - |
| -void ExtensionAppResult::OnExtensionIconImageDestroyed( |
| - extensions::IconImage* image) { |
| - SetIcon(gfx::ImageSkia()); |
| +void ExtensionAppResult::OnIconUpdated(extensions::ExtensionAppIcon* icon) { |
| + SetIcon(icon->image_skia()); |
| } |
| void ExtensionAppResult::ExecuteLaunchCommand(int event_flags) { |
| @@ -190,7 +155,8 @@ void ExtensionAppResult::OnExtensionLoaded( |
| const extensions::Extension* extension) { |
| // Old |icon_| might be invalidated for forever in case extension gets |
| // updated. In this case we need re-create icon again. |
| - CreateOrUpdateIcon(); |
| + if (!icon_->IsValid()) |
| + icon_->Reload(); |
| } |
| void ExtensionAppResult::OnShutdown(extensions::ExtensionRegistry* registry) { |