Index: chrome/browser/extensions/image_loading_tracker.cc |
=================================================================== |
--- chrome/browser/extensions/image_loading_tracker.cc (revision 130900) |
+++ chrome/browser/extensions/image_loading_tracker.cc (working copy) |
@@ -6,11 +6,13 @@ |
#include "base/bind.h" |
#include "base/file_util.h" |
+#include "chrome/browser/ui/webui/extensions/extension_icon_source.h" |
#include "chrome/common/chrome_notification_types.h" |
#include "chrome/common/extensions/extension.h" |
#include "chrome/common/extensions/extension_resource.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/notification_service.h" |
+#include "grit/component_extension_resources_map.h" |
#include "skia/ext/image_operations.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
#include "ui/gfx/image/image.h" |
@@ -191,6 +193,13 @@ |
continue; |
} |
+ SkBitmap* from_resources = TryLoadingComponentExtensionImage(extension, |
+ it->resource); |
+ if (from_resources) { |
+ OnImageLoaded(from_resources, it->resource, it->max_size, id, false); |
+ continue; |
+ } |
+ |
DCHECK(extension->path() == it->resource.extension_root()); |
// See if the extension has the image already. |
@@ -208,6 +217,29 @@ |
} |
} |
+SkBitmap* ImageLoadingTracker::TryLoadingComponentExtensionImage( |
+ const Extension* extension, |
+ const ExtensionResource& resource) { |
+ if (extension->location() != Extension::COMPONENT) |
+ return NULL; |
+ |
+ FilePath directory_path = extension->path(); |
+ FilePath relative_path = directory_path.BaseName().Append( |
+ resource.relative_path()); |
+ |
+ for (size_t i = 0; i < kComponentExtensionResourcesSize; ++i) { |
+ FilePath bm_resource_path = |
+ FilePath().AppendASCII(kComponentExtensionResources[i].name); |
+ bm_resource_path = bm_resource_path.NormalizePathSeparators(); |
+ |
+ if (relative_path == bm_resource_path) { |
+ return ExtensionIconSource::LoadImageByResourceId( |
+ kComponentExtensionResources[i].value); |
+ } |
+ } |
+ return NULL; |
+} |
+ |
void ImageLoadingTracker::OnImageLoaded( |
SkBitmap* image, |
const ExtensionResource& resource, |