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

Unified Diff: chrome/browser/ui/app_list/search/launcher_search/extension_badged_icon_image_impl.cc

Issue 1060733003: Support custom icon in search result. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix comment. Created 5 years, 8 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/ui/app_list/search/launcher_search/extension_badged_icon_image_impl.cc
diff --git a/chrome/browser/ui/app_list/search/launcher_search/extension_badged_icon_image_impl.cc b/chrome/browser/ui/app_list/search/launcher_search/extension_badged_icon_image_impl.cc
new file mode 100644
index 0000000000000000000000000000000000000000..ad2c6b6e05cb0f4fcbdfa22e22cbe17b58524846
--- /dev/null
+++ b/chrome/browser/ui/app_list/search/launcher_search/extension_badged_icon_image_impl.cc
@@ -0,0 +1,68 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/ui/app_list/search/launcher_search/extension_badged_icon_image_impl.h"
+
+#include "chrome/browser/extensions/extension_util.h"
+#include "extensions/browser/image_loader.h"
+#include "extensions/common/file_util.h"
+#include "extensions/common/manifest_handlers/icons_handler.h"
+
+namespace app_list {
+
+ExtensionBadgedIconImageImpl::ExtensionBadgedIconImageImpl(
+ const GURL& custom_icon_url,
+ Profile* profile,
+ const extensions::Extension* extension,
+ const int icon_dimension,
+ scoped_refptr<chromeos::launcher_search_provider::ErrorReporter>
+ error_reporter)
+ : ExtensionBadgedIconImage(custom_icon_url,
+ profile,
+ extension,
+ icon_dimension,
+ error_reporter),
+ weak_ptr_factory_(this) {
+}
+
+ExtensionBadgedIconImageImpl::~ExtensionBadgedIconImageImpl() {
+}
+
+const gfx::ImageSkia& ExtensionBadgedIconImageImpl::LoadExtensionIcon() {
+ extension_icon_image_.reset(new extensions::IconImage(
+ profile_, extension_, extensions::IconsInfo::GetIcons(extension_),
+ icon_size_.width(), extensions::util::GetDefaultExtensionIcon(), this));
+
+ return extension_icon_image_->image_skia();
+}
+
+void ExtensionBadgedIconImageImpl::LoadExtensionIconResource() {
+ const base::FilePath& file_path =
+ extensions::file_util::ExtensionURLToRelativeFilePath(icon_url_);
+ const extensions::ExtensionResource& resource =
+ extension_->GetResource(file_path);
+
+ // Load image with ImageLoader. ImageLoader resizes image to |icon_size_|.
+ std::vector<extensions::ImageLoader::ImageRepresentation> info_list;
+ info_list.push_back(extensions::ImageLoader::ImageRepresentation(
+ resource, extensions::ImageLoader::ImageRepresentation::ALWAYS_RESIZE,
+ icon_size_, ui::SCALE_FACTOR_100P));
+ extensions::ImageLoader::Get(profile_)->LoadImagesAsync(
+ extension_, info_list,
+ base::Bind(&ExtensionBadgedIconImageImpl::OnCustomIconImageLoaded,
+ weak_ptr_factory_.GetWeakPtr()));
+}
+
+void ExtensionBadgedIconImageImpl::OnExtensionIconImageChanged(
+ extensions::IconImage* image) {
+ DCHECK_EQ(extension_icon_image_, image);
+ OnExtensionIconChanged(extension_icon_image_->image_skia());
+}
+
+void ExtensionBadgedIconImageImpl::OnCustomIconImageLoaded(
+ const gfx::Image& image) {
+ OnCustomIconLoaded(image.AsImageSkia());
+}
+
+} // namespace app_list

Powered by Google App Engine
This is Rietveld 408576698