| Index: chrome/browser/extensions/api/extension_action/extension_actions_api.cc
|
| diff --git a/chrome/browser/extensions/api/extension_action/extension_actions_api.cc b/chrome/browser/extensions/api/extension_action/extension_actions_api.cc
|
| index 3b7a2b496747281dec1cf95d8f53e664872284a6..e315f1692a87c0299f14a9b44543a53d15fe00f3 100644
|
| --- a/chrome/browser/extensions/api/extension_action/extension_actions_api.cc
|
| +++ b/chrome/browser/extensions/api/extension_action/extension_actions_api.cc
|
| @@ -27,6 +27,7 @@
|
| #include "chrome/common/render_messages.h"
|
| #include "content/public/browser/navigation_entry.h"
|
| #include "content/public/browser/notification_service.h"
|
| +#include "ui/gfx/image/image_skia_operations.h"
|
|
|
| namespace {
|
|
|
| @@ -130,7 +131,13 @@ void SetDefaultsFromValue(const base::DictionaryValue* dict,
|
| icon.AddRepresentation(gfx::ImageSkiaRep(bitmap, kIconSizes[i].scale));
|
| }
|
| }
|
| - action->SetIcon(kTabId, gfx::Image(icon));
|
| +
|
| + if (!icon.isNull()) {
|
| + gfx::ImageSkia final_icon =
|
| + gfx::ImageSkiaOperations::SetFallbackResizeMethod(
|
| + icon, skia::ImageOperations::RESIZE_LANCZOS3);
|
| + action->SetIcon(kTabId, gfx::Image(final_icon));
|
| + }
|
| }
|
| }
|
|
|
| @@ -155,11 +162,9 @@ scoped_ptr<base::DictionaryValue> DefaultsToValue(ExtensionAction* action) {
|
| if (!icon.isNull()) {
|
| base::DictionaryValue* icon_value = new base::DictionaryValue();
|
| for (size_t i = 0; i < arraysize(kIconSizes); i++) {
|
| - if (icon.HasRepresentation(kIconSizes[i].scale)) {
|
| - icon_value->SetString(
|
| - kIconSizes[i].size_string,
|
| - RepresentationToString(icon, kIconSizes[i].scale));
|
| - }
|
| + icon_value->SetString(
|
| + kIconSizes[i].size_string,
|
| + RepresentationToString(icon, kIconSizes[i].scale));
|
| }
|
| dict->Set(kIconStorageKey, icon_value);
|
| }
|
| @@ -469,7 +474,10 @@ bool ExtensionActionSetIconFunction::RunExtensionAction() {
|
| }
|
| }
|
|
|
| - extension_action_->SetIcon(tab_id_, gfx::Image(icon));
|
| + gfx::ImageSkia final_icon =
|
| + gfx::ImageSkiaOperations::SetFallbackResizeMethod(
|
| + icon, skia::ImageOperations::RESIZE_LANCZOS3);
|
| + extension_action_->SetIcon(tab_id_, gfx::Image(final_icon));
|
| } else if (details_->GetInteger("iconIndex", &icon_index)) {
|
| // Obsolete argument: ignore it.
|
| return true;
|
|
|