Index: extensions/browser/image_loader.cc |
diff --git a/chrome/browser/extensions/image_loader.cc b/extensions/browser/image_loader.cc |
similarity index 72% |
rename from chrome/browser/extensions/image_loader.cc |
rename to extensions/browser/image_loader.cc |
index 7c76c4dcded06086a2fd1b7d0165f7140967a174..34d83563f147cfb167da8ab18c8f51eec5421760 100644 |
--- a/chrome/browser/extensions/image_loader.cc |
+++ b/extensions/browser/image_loader.cc |
@@ -2,7 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/extensions/image_loader.h" |
+#include "extensions/browser/image_loader.h" |
#include <map> |
#include <vector> |
@@ -10,33 +10,22 @@ |
#include "base/callback.h" |
#include "base/compiler_specific.h" |
#include "base/file_util.h" |
-#include "base/lazy_instance.h" |
-#include "base/path_service.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/threading/sequenced_worker_pool.h" |
-#include "chrome/browser/extensions/image_loader_factory.h" |
-#include "chrome/common/chrome_paths.h" |
#include "content/public/browser/browser_thread.h" |
+#include "extensions/browser/component_extension_resource_manager.h" |
+#include "extensions/browser/extensions_browser_client.h" |
+#include "extensions/browser/image_loader_factory.h" |
#include "extensions/common/extension.h" |
-#include "grit/chrome_unscaled_resources.h" |
-#include "grit/component_extension_resources_map.h" |
-#include "grit/theme_resources.h" |
#include "skia/ext/image_operations.h" |
#include "ui/base/resource/resource_bundle.h" |
#include "ui/gfx/codec/png_codec.h" |
#include "ui/gfx/image/image_family.h" |
#include "ui/gfx/image/image_skia.h" |
-#if defined(OS_CHROMEOS) |
-#include "ui/file_manager/file_manager_resource_util.h" |
-#endif |
- |
-#if defined(USE_AURA) |
-#include "ui/keyboard/keyboard_util.h" |
-#endif |
- |
using content::BrowserThread; |
using extensions::Extension; |
+using extensions::ExtensionsBrowserClient; |
using extensions::ImageLoader; |
using extensions::Manifest; |
@@ -105,23 +94,6 @@ void LoadImageOnBlockingPool(const ImageLoader::ImageRepresentation& image_info, |
gfx::PNGCodec::Decode(data, file_contents.length(), bitmap); |
} |
-// Add the resources from |entries| (there are |size| of them) to |
-// |path_to_resource_id| after normalizing separators. |
-void AddComponentResourceEntries( |
- std::map<base::FilePath, int>* path_to_resource_id, |
- const GritResourceMap* entries, |
- size_t size) { |
- for (size_t i = 0; i < size; ++i) { |
- base::FilePath resource_path = base::FilePath().AppendASCII( |
- entries[i].name); |
- resource_path = resource_path.NormalizePathSeparators(); |
- |
- DCHECK(path_to_resource_id->find(resource_path) == |
- path_to_resource_id->end()); |
- (*path_to_resource_id)[resource_path] = entries[i].value; |
- } |
-} |
- |
std::vector<SkBitmap> LoadResourceBitmaps( |
const Extension* extension, |
const std::vector<ImageLoader::ImageRepresentation>& info_list) { |
@@ -139,10 +111,14 @@ std::vector<SkBitmap> LoadResourceBitmaps( |
extension->path() == it->resource.extension_root()); |
int resource_id; |
- if (extension->location() == Manifest::COMPONENT && |
- ImageLoader::IsComponentExtensionResource( |
- extension->path(), it->resource.relative_path(), &resource_id)) { |
- LoadResourceOnUIThread(resource_id, &bitmaps[i]); |
+ if (extension->location() == Manifest::COMPONENT) { |
+ extensions::ComponentExtensionResourceManager* manager = |
+ extensions::ExtensionsBrowserClient::Get()-> |
+ GetComponentExtensionResourceManager(); |
+ if (manager && manager->IsComponentExtensionResource( |
+ extension->path(), it->resource.relative_path(), &resource_id)) { |
+ LoadResourceOnUIThread(resource_id, &bitmaps[i]); |
+ } |
} |
} |
return bitmaps; |
@@ -248,75 +224,6 @@ ImageLoader* ImageLoader::Get(content::BrowserContext* context) { |
return ImageLoaderFactory::GetForBrowserContext(context); |
} |
-// A map from a resource path to the resource ID. Used only by |
-// IsComponentExtensionResource below. |
-static base::LazyInstance<std::map<base::FilePath, int> > path_to_resource_id = |
- LAZY_INSTANCE_INITIALIZER; |
- |
-// static |
-bool ImageLoader::IsComponentExtensionResource( |
- const base::FilePath& extension_path, |
- const base::FilePath& resource_path, |
- int* resource_id) { |
- static const GritResourceMap kExtraComponentExtensionResources[] = { |
- {"web_store/webstore_icon_128.png", IDR_WEBSTORE_ICON}, |
- {"web_store/webstore_icon_16.png", IDR_WEBSTORE_ICON_16}, |
- {"chrome_app/product_logo_128.png", IDR_PRODUCT_LOGO_128}, |
- {"chrome_app/product_logo_16.png", IDR_PRODUCT_LOGO_16}, |
-#if defined(ENABLE_SETTINGS_APP) |
- {"settings_app/settings_app_icon_128.png", IDR_SETTINGS_APP_ICON_128}, |
- {"settings_app/settings_app_icon_16.png", IDR_SETTINGS_APP_ICON_16}, |
- {"settings_app/settings_app_icon_32.png", IDR_SETTINGS_APP_ICON_32}, |
- {"settings_app/settings_app_icon_48.png", IDR_SETTINGS_APP_ICON_48}, |
-#endif |
- }; |
- |
- if (path_to_resource_id.Get().empty()) { |
- AddComponentResourceEntries( |
- path_to_resource_id.Pointer(), |
- kComponentExtensionResources, |
- kComponentExtensionResourcesSize); |
- AddComponentResourceEntries( |
- path_to_resource_id.Pointer(), |
- kExtraComponentExtensionResources, |
- arraysize(kExtraComponentExtensionResources)); |
-#if defined(OS_CHROMEOS) |
- size_t file_manager_resource_size; |
- const GritResourceMap* file_manager_resources = |
- file_manager::GetFileManagerResources(&file_manager_resource_size); |
- AddComponentResourceEntries( |
- path_to_resource_id.Pointer(), |
- file_manager_resources, |
- file_manager_resource_size); |
- |
- size_t keyboard_resource_size; |
- const GritResourceMap* keyboard_resources = |
- keyboard::GetKeyboardExtensionResources(&keyboard_resource_size); |
- AddComponentResourceEntries( |
- path_to_resource_id.Pointer(), |
- keyboard_resources, |
- keyboard_resource_size); |
-#endif |
- } |
- |
- base::FilePath directory_path = extension_path; |
- base::FilePath resources_dir; |
- base::FilePath relative_path; |
- if (!PathService::Get(chrome::DIR_RESOURCES, &resources_dir) || |
- !resources_dir.AppendRelativePath(directory_path, &relative_path)) { |
- return false; |
- } |
- relative_path = relative_path.Append(resource_path); |
- relative_path = relative_path.NormalizePathSeparators(); |
- |
- std::map<base::FilePath, int>::const_iterator entry = |
- path_to_resource_id.Get().find(relative_path); |
- if (entry != path_to_resource_id.Get().end()) |
- *resource_id = entry->second; |
- |
- return entry != path_to_resource_id.Get().end(); |
-} |
- |
void ImageLoader::LoadImageAsync(const Extension* extension, |
const ExtensionResource& resource, |
const gfx::Size& max_size, |