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

Unified Diff: chrome/browser/extensions/image_loading_tracker.cc

Issue 11045030: Give Chrome Web Store app an icon in its manifest file. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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
Index: chrome/browser/extensions/image_loading_tracker.cc
diff --git a/chrome/browser/extensions/image_loading_tracker.cc b/chrome/browser/extensions/image_loading_tracker.cc
index f7cd334af31ab0fd49f74685dfb89c07e4f344ba..b522758e4da9edd283f67a33a0740279a3acb372 100644
--- a/chrome/browser/extensions/image_loading_tracker.cc
+++ b/chrome/browser/extensions/image_loading_tracker.cc
@@ -14,6 +14,7 @@
#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/extensions/extension.h"
#include "chrome/common/extensions/extension_constants.h"
+#include "chrome/common/extensions/extension_file_util.h"
#include "chrome/common/extensions/extension_resource.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/notification_service.h"
@@ -31,30 +32,6 @@ using extensions::Extension;
namespace {
-struct ComponentExtensionResource {
- const char* extension_id;
- const int resource_id;
-};
-
-const ComponentExtensionResource kSpecialComponentExtensionResources[] = {
- { extension_misc::kWebStoreAppId, IDR_WEBSTORE_ICON },
- { extension_misc::kChromeAppId, IDR_PRODUCT_LOGO_128 },
-};
-
-// Finds special component extension resource id for given extension id.
-bool FindSpecialExtensionResourceId(const std::string& extension_id,
- int* out_resource_id) {
- for (size_t i = 0; i < arraysize(kSpecialComponentExtensionResources); ++i) {
- if (extension_id == kSpecialComponentExtensionResources[i].extension_id) {
- if (out_resource_id)
- *out_resource_id = kSpecialComponentExtensionResources[i].resource_id;
- return true;
- }
- }
-
- return false;
-}
-
bool ShouldResizeImageRepresentation(
ImageLoadingTracker::ImageRepresentation::ResizeCondition resize_method,
const gfx::Size& decoded_size,
@@ -247,13 +224,6 @@ class ImageLoadingTracker::ImageLoader
////////////////////////////////////////////////////////////////////////////////
// ImageLoadingTracker
-// static
-bool ImageLoadingTracker::IsSpecialBundledExtensionId(
- const std::string& extension_id) {
- int resource_id = -1;
- return FindSpecialExtensionResourceId(extension_id, &resource_id);
-}
-
ImageLoadingTracker::ImageLoadingTracker(Observer* observer)
: observer_(observer),
next_id_(0) {
@@ -295,16 +265,6 @@ void ImageLoadingTracker::LoadImages(
for (std::vector<ImageRepresentation>::const_iterator it = info_list.begin();
it != info_list.end(); ++it) {
- int resource_id = -1;
-
- // Load resources for special component extensions.
- if (FindSpecialExtensionResourceId(load_info.extension_id, &resource_id)) {
- if (!loader_)
- loader_ = new ImageLoader(this);
- loader_->LoadResource(*it, id, resource_id);
- continue;
- }
-
// If we don't have a path we don't need to do any further work, just
// respond back.
if (it->resource.relative_path().empty()) {
@@ -327,7 +287,9 @@ void ImageLoadingTracker::LoadImages(
if (!loader_)
loader_ = new ImageLoader(this);
- if (IsComponentExtensionResource(extension, it->resource, resource_id))
+ int resource_id = -1;
+ if (IsComponentExtensionResource(extension, it->resource.relative_path(),
+ &resource_id))
loader_->LoadResource(*it, id, resource_id);
else
loader_->LoadImage(*it, id);
@@ -336,22 +298,44 @@ void ImageLoadingTracker::LoadImages(
bool ImageLoadingTracker::IsComponentExtensionResource(
const Extension* extension,
- const ExtensionResource& resource,
- int& resource_id) const {
+ const 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},
+ };
+ static const size_t kExtraComponentExtensionResourcesSize =
+ arraysize(kExtraComponentExtensionResources);
+
if (extension->location() != Extension::COMPONENT)
return false;
FilePath directory_path = extension->path();
- FilePath relative_path = directory_path.BaseName().Append(
- resource.relative_path());
+ FilePath relative_path = directory_path.BaseName().Append(resource_path);
+ relative_path = relative_path.NormalizePathSeparators();
+ // TODO(tc): Make a map of FilePath -> resource ids so we don't have to
+ // covert to FilePaths all the time. This will be more useful as we add
+ // more resources.
for (size_t i = 0; i < kComponentExtensionResourcesSize; ++i) {
FilePath resource_path =
FilePath().AppendASCII(kComponentExtensionResources[i].name);
resource_path = resource_path.NormalizePathSeparators();
if (relative_path == resource_path) {
- resource_id = kComponentExtensionResources[i].value;
+ *resource_id = kComponentExtensionResources[i].value;
+ return true;
+ }
+ }
+ for (size_t i = 0; i < kExtraComponentExtensionResourcesSize; ++i) {
+ FilePath resource_path =
+ FilePath().AppendASCII(kExtraComponentExtensionResources[i].name);
+ resource_path = resource_path.NormalizePathSeparators();
+
+ if (relative_path == resource_path) {
+ *resource_id = kExtraComponentExtensionResources[i].value;
return true;
}
}
« no previous file with comments | « chrome/browser/extensions/image_loading_tracker.h ('k') | chrome/browser/extensions/image_loading_tracker_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698