Index: chrome/common/extensions/extension_action.cc |
diff --git a/chrome/common/extensions/extension_action.cc b/chrome/common/extensions/extension_action.cc |
index 1e247210e4d4df856467317b18a664c9ebab4f92..83f37a83e80e30e75983df6bc6c6dc078b470f2c 100644 |
--- a/chrome/common/extensions/extension_action.cc |
+++ b/chrome/common/extensions/extension_action.cc |
@@ -11,9 +11,6 @@ |
#include "googleurl/src/gurl.h" |
#include "grit/ui_resources.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
-#include "third_party/skia/include/core/SkCanvas.h" |
-#include "third_party/skia/include/core/SkDevice.h" |
-#include "third_party/skia/include/core/SkPaint.h" |
#include "third_party/skia/include/effects/SkGradientShader.h" |
#include "ui/base/animation/animation_delegate.h" |
#include "ui/base/resource/resource_bundle.h" |
@@ -100,22 +97,8 @@ ExtensionAction::IconAnimation::~IconAnimation() {} |
const SkBitmap& ExtensionAction::IconAnimation::Apply( |
const SkBitmap& icon) const { |
- DCHECK_GT(icon.width(), 0); |
- DCHECK_GT(icon.height(), 0); |
- |
- if (!device_.get() || |
- (device_->width() != icon.width()) || |
- (device_->height() != icon.height())) { |
- device_.reset(new SkDevice( |
- SkBitmap::kARGB_8888_Config, icon.width(), icon.height(), true)); |
- } |
- |
- SkCanvas canvas(device_.get()); |
- canvas.clear(SK_ColorWHITE); |
- SkPaint paint; |
- paint.setAlpha(CurrentValueBetween(0, 255)); |
- canvas.drawBitmap(icon, 0, 0, &paint); |
- return device_->accessBitmap(false); |
+ return icon_transform_.set_alpha(CurrentValueBetween(0, 255)) |
+ .RenderIcon(icon); |
} |
void ExtensionAction::IconAnimation::AddObserver( |
@@ -321,3 +304,11 @@ void ExtensionAction::RunIconAnimation(int tab_id) { |
icon_animation_[tab_id] = make_linked_ptr(icon_animation); |
icon_animation->animation()->Start(); |
} |
+ |
+const SkBitmap& ExtensionAction::RenderIconVisibility(const SkBitmap& icon, |
+ int tab_id) const { |
+ if (GetIsVisible(tab_id)) |
+ return icon; |
+ return icon_transform_.set_alpha(63) |
+ .RenderIcon(icon); |
+} |