| Index: chrome/browser/ui/webui/extensions/extension_icon_source.cc
|
| ===================================================================
|
| --- chrome/browser/ui/webui/extensions/extension_icon_source.cc (revision 176443)
|
| +++ chrome/browser/ui/webui/extensions/extension_icon_source.cc (working copy)
|
| @@ -19,6 +19,7 @@
|
| #include "chrome/browser/extensions/image_loader.h"
|
| #include "chrome/browser/favicon/favicon_service_factory.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/ui/webui/chrome_url_data_manager.h"
|
| #include "chrome/common/extensions/extension.h"
|
| #include "chrome/common/extensions/extension_constants.h"
|
| #include "chrome/common/extensions/extension_resource.h"
|
| @@ -58,8 +59,7 @@
|
| } // namespace
|
|
|
| ExtensionIconSource::ExtensionIconSource(Profile* profile)
|
| - : DataSource(chrome::kChromeUIExtensionIconHost, MessageLoop::current()),
|
| - profile_(profile) {
|
| + : profile_(profile) {
|
| }
|
|
|
| struct ExtensionIconSource::ExtensionIconRequest {
|
| @@ -103,6 +103,10 @@
|
| return ToBitmap(data, contents.length());
|
| }
|
|
|
| +std::string ExtensionIconSource::GetSource() {
|
| + return chrome::kChromeUIExtensionIconHost;
|
| +}
|
| +
|
| std::string ExtensionIconSource::GetMimeType(const std::string&) const {
|
| // We need to explicitly return a mime type, otherwise if the user tries to
|
| // drag the image they get no extension.
|
| @@ -160,7 +164,7 @@
|
| bitmap = *image;
|
|
|
| ClearData(request_id);
|
| - SendResponse(request_id, BitmapToMemory(&bitmap));
|
| + url_data_source()->SendResponse(request_id, BitmapToMemory(&bitmap));
|
| }
|
|
|
| void ExtensionIconSource::LoadDefaultImage(int request_id) {
|
| @@ -191,7 +195,7 @@
|
| extensions::ImageLoader::Get(profile_)->LoadImageAsync(
|
| request->extension, icon,
|
| gfx::Size(request->size, request->size),
|
| - base::Bind(&ExtensionIconSource::OnImageLoaded, this, request_id));
|
| + base::Bind(&ExtensionIconSource::OnImageLoaded, AsWeakPtr(), request_id));
|
| }
|
|
|
| void ExtensionIconSource::LoadFaviconImage(int request_id) {
|
| @@ -228,7 +232,7 @@
|
| // If we don't need a grayscale image, then we can bypass FinalizeImage
|
| // to avoid unnecessary conversions.
|
| ClearData(request_id);
|
| - SendResponse(request_id, bitmap_result.bitmap_data);
|
| + url_data_source()->SendResponse(request_id, bitmap_result.bitmap_data);
|
| } else {
|
| FinalizeImage(ToBitmap(bitmap_result.bitmap_data->front(),
|
| bitmap_result.bitmap_data->size()), request_id);
|
| @@ -302,7 +306,8 @@
|
| // We send back the default application icon (not resized or desaturated)
|
| // as the default response, like when there is no data.
|
| ClearData(request_id);
|
| - SendResponse(request_id, BitmapToMemory(GetDefaultAppImage()));
|
| + url_data_source()->SendResponse(
|
| + request_id, BitmapToMemory(GetDefaultAppImage()));
|
| }
|
|
|
| void ExtensionIconSource::SetData(int request_id,
|
|
|