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

Unified Diff: extensions/browser/extension_icon_image.cc

Issue 885443004: [Extensions] Cache extension action icons (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 11 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 | « extensions/browser/extension_icon_image.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/browser/extension_icon_image.cc
diff --git a/extensions/browser/extension_icon_image.cc b/extensions/browser/extension_icon_image.cc
index 8e3f9576e08fbf15ccc11ff8c755790f6cddc635..5f237fff5cd9d4c8c0c929511c2472f20e786e58 100644
--- a/extensions/browser/extension_icon_image.cc
+++ b/extensions/browser/extension_icon_image.cc
@@ -134,13 +134,14 @@ IconImage::IconImage(
extension_(extension),
icon_set_(icon_set),
resource_size_in_dip_(resource_size_in_dip),
- observer_(observer),
source_(NULL),
default_icon_(gfx::ImageSkiaOperations::CreateResizedImage(
default_icon,
skia::ImageOperations::RESIZE_BEST,
gfx::Size(resource_size_in_dip, resource_size_in_dip))),
weak_ptr_factory_(this) {
+ if (observer)
+ AddObserver(observer);
gfx::Size resource_size(resource_size_in_dip, resource_size_in_dip);
source_ = new Source(this, resource_size);
image_skia_ = gfx::ImageSkia(source_, resource_size);
@@ -150,7 +151,16 @@ IconImage::IconImage(
content::NotificationService::AllSources());
}
+void IconImage::AddObserver(Observer* observer) {
+ observers_.AddObserver(observer);
+}
+
+void IconImage::RemoveObserver(Observer* observer) {
+ observers_.RemoveObserver(observer);
+}
+
IconImage::~IconImage() {
+ FOR_EACH_OBSERVER(Observer, observers_, OnExtensionIconImageDestroyed(this));
source_->ResetHost();
}
@@ -216,8 +226,7 @@ void IconImage::OnImageLoaded(float scale, const gfx::Image& image_in) {
image_skia_.RemoveRepresentation(scale);
image_skia_.AddRepresentation(rep);
- if (observer_)
- observer_->OnExtensionIconImageChanged(this);
+ FOR_EACH_OBSERVER(Observer, observers_, OnExtensionIconImageChanged(this));
}
void IconImage::Observe(int type,
« no previous file with comments | « extensions/browser/extension_icon_image.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698