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

Unified Diff: chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.cc

Issue 2819413003: Refactor extension app icon. (Closed)
Patch Set: nit Created 3 years, 7 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
« no previous file with comments | « chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.h ('k') | chrome/test/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.cc
diff --git a/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.cc b/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.cc
index 013c61cfb6acf30e9503dce5fb35fc37ffe9dd5c..1768567100ffaca56a42d59b72a536eba94a3854 100644
--- a/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.cc
+++ b/chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.cc
@@ -6,6 +6,8 @@
#include "base/bind.h"
#include "base/strings/utf_string_conversions.h"
+#include "chrome/browser/extensions/chrome_app_icon.h"
+#include "chrome/browser/extensions/chrome_app_icon_service.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_util.h"
#include "chrome/browser/profiles/profile.h"
@@ -46,8 +48,6 @@ const int kIconSize = 64;
AppInfoHeaderPanel::AppInfoHeaderPanel(Profile* profile,
const extensions::Extension* app)
: AppInfoPanel(profile, app),
- app_icon_(NULL),
- view_in_store_link_(NULL),
weak_ptr_factory_(this) {
SetLayoutManager(
new views::BoxLayout(views::BoxLayout::kHorizontal,
@@ -62,10 +62,12 @@ AppInfoHeaderPanel::~AppInfoHeaderPanel() {
}
void AppInfoHeaderPanel::CreateControls() {
- app_icon_ = new views::ImageView();
- app_icon_->SetImageSize(gfx::Size(kIconSize, kIconSize));
- AddChildView(app_icon_);
- LoadAppImageAsync();
+ app_icon_view_ = new views::ImageView();
+ app_icon_view_->SetImageSize(gfx::Size(kIconSize, kIconSize));
+ AddChildView(app_icon_view_);
+
+ app_icon_ = extensions::ChromeAppIconService::Get(profile_)->CreateIcon(
+ this, app_->id(), extension_misc::EXTENSION_ICON_LARGE);
// Create a vertical container to store the app's name and link.
views::View* vertical_info_container = new views::View();
@@ -99,25 +101,8 @@ void AppInfoHeaderPanel::LinkClicked(views::Link* source, int event_flags) {
ShowAppInWebStore();
}
-void AppInfoHeaderPanel::LoadAppImageAsync() {
- extensions::ExtensionResource image = extensions::IconsInfo::GetIconResource(
- app_,
- extension_misc::EXTENSION_ICON_LARGE,
- ExtensionIconSet::MATCH_BIGGER);
- int pixel_size =
- static_cast<int>(kIconSize * gfx::ImageSkia::GetMaxSupportedScale());
- extensions::ImageLoader::Get(profile_)->LoadImageAsync(
- app_,
- image,
- gfx::Size(pixel_size, pixel_size),
- base::Bind(&AppInfoHeaderPanel::OnAppImageLoaded, AsWeakPtr()));
-}
-
-void AppInfoHeaderPanel::OnAppImageLoaded(const gfx::Image& image) {
- if (image.IsEmpty())
- app_icon_->SetImage(extensions::util::GetDefaultAppIcon());
- else
- app_icon_->SetImage(image.AsImageSkia());
+void AppInfoHeaderPanel::OnIconUpdated(extensions::ChromeAppIcon* icon) {
+ app_icon_view_->SetImage(icon->image_skia());
}
void AppInfoHeaderPanel::ShowAppInWebStore() {
« no previous file with comments | « chrome/browser/ui/views/apps/app_info_dialog/app_info_header_panel.h ('k') | chrome/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698