Index: chrome/browser/background/background_application_list_model.cc |
diff --git a/chrome/browser/background/background_application_list_model.cc b/chrome/browser/background/background_application_list_model.cc |
index e0c6010b6ff1f608cc3f3bcf85080be4aef3d8d4..3b2faf07a2ef2581f3f4f3236ff0b3d1790c7bad 100644 |
--- a/chrome/browser/background/background_application_list_model.cc |
+++ b/chrome/browser/background/background_application_list_model.cc |
@@ -16,7 +16,7 @@ |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/extensions/extension_prefs.h" |
#include "chrome/browser/extensions/extension_service.h" |
-#include "chrome/browser/extensions/image_loading_tracker.h" |
+#include "chrome/browser/extensions/image_loader.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/common/chrome_notification_types.h" |
#include "chrome/common/extensions/extension.h" |
@@ -60,7 +60,7 @@ bool ExtensionNameComparator::operator()(const Extension* x, |
// Background application representation, private to the |
// BackgroundApplicationListModel class. |
class BackgroundApplicationListModel::Application |
- : public ImageLoadingTracker::Observer { |
+ : public base::SupportsWeakPtr<Application> { |
public: |
Application(BackgroundApplicationListModel* model, |
const Extension* an_extension); |
@@ -68,9 +68,7 @@ class BackgroundApplicationListModel::Application |
virtual ~Application(); |
// Invoked when a request icon is available. |
- virtual void OnImageLoaded(const gfx::Image& image, |
- const std::string& extension_id, |
- int index) OVERRIDE; |
+ void OnImageLoaded(const gfx::Image& image); |
// Uses the FILE thread to request this extension's icon, sized |
// appropriately. |
@@ -79,7 +77,6 @@ class BackgroundApplicationListModel::Application |
const Extension* extension_; |
scoped_ptr<gfx::ImageSkia> icon_; |
BackgroundApplicationListModel* model_; |
- ImageLoadingTracker tracker_; |
}; |
namespace { |
@@ -141,14 +138,11 @@ BackgroundApplicationListModel::Application::Application( |
const Extension* extension) |
: extension_(extension), |
icon_(NULL), |
- model_(model), |
- ALLOW_THIS_IN_INITIALIZER_LIST(tracker_(this)) { |
+ model_(model) { |
} |
void BackgroundApplicationListModel::Application::OnImageLoaded( |
- const gfx::Image& image, |
- const std::string& extension_id, |
- int index) { |
+ const gfx::Image& image) { |
if (image.IsEmpty()) |
return; |
icon_.reset(image.CopyImageSkia()); |
@@ -159,8 +153,9 @@ void BackgroundApplicationListModel::Application::RequestIcon( |
extension_misc::ExtensionIcons size) { |
ExtensionResource resource = extension_->GetIconResource( |
size, ExtensionIconSet::MATCH_BIGGER); |
- tracker_.LoadImage(extension_, resource, gfx::Size(size, size), |
- ImageLoadingTracker::CACHE); |
+ extensions::ImageLoader::Get(model_->profile_)->LoadImageAsync( |
+ extension_, resource, gfx::Size(size, size), |
+ base::Bind(&Application::OnImageLoaded, AsWeakPtr())); |
} |
BackgroundApplicationListModel::~BackgroundApplicationListModel() { |