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

Side by Side Diff: chrome/browser/ui/webui/extensions/extension_icon_source.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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/extensions/extension_icon_source.h" 5 #include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/memory/ref_counted_memory.h" 9 #include "base/memory/ref_counted_memory.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 } else { 128 } else {
129 LoadExtensionImage(icon, request_id); 129 LoadExtensionImage(icon, request_id);
130 } 130 }
131 } 131 }
132 132
133 ExtensionIconSource::~ExtensionIconSource() { 133 ExtensionIconSource::~ExtensionIconSource() {
134 // Clean up all the temporary data we're holding for requests. 134 // Clean up all the temporary data we're holding for requests.
135 STLDeleteValues(&request_map_); 135 STLDeleteValues(&request_map_);
136 } 136 }
137 137
138 const SkBitmap* ExtensionIconSource::GetWebStoreImage() {
139 if (!web_store_icon_data_.get())
140 web_store_icon_data_.reset(LoadImageByResourceId(IDR_WEBSTORE_ICON));
141
142 return web_store_icon_data_.get();
143 }
144
145 const SkBitmap* ExtensionIconSource::GetDefaultAppImage() { 138 const SkBitmap* ExtensionIconSource::GetDefaultAppImage() {
146 if (!default_app_data_.get()) 139 if (!default_app_data_.get())
147 default_app_data_.reset(LoadImageByResourceId(IDR_APP_DEFAULT_ICON)); 140 default_app_data_.reset(LoadImageByResourceId(IDR_APP_DEFAULT_ICON));
148 141
149 return default_app_data_.get(); 142 return default_app_data_.get();
150 } 143 }
151 144
152 const SkBitmap* ExtensionIconSource::GetDefaultExtensionImage() { 145 const SkBitmap* ExtensionIconSource::GetDefaultExtensionImage() {
153 if (!default_extension_data_.get()) { 146 if (!default_extension_data_.get()) {
154 default_extension_data_.reset( 147 default_extension_data_.reset(
(...skipping 12 matching lines...) Expand all
167 bitmap = *image; 160 bitmap = *image;
168 161
169 ClearData(request_id); 162 ClearData(request_id);
170 SendResponse(request_id, BitmapToMemory(&bitmap)); 163 SendResponse(request_id, BitmapToMemory(&bitmap));
171 } 164 }
172 165
173 void ExtensionIconSource::LoadDefaultImage(int request_id) { 166 void ExtensionIconSource::LoadDefaultImage(int request_id) {
174 ExtensionIconRequest* request = GetData(request_id); 167 ExtensionIconRequest* request = GetData(request_id);
175 const SkBitmap* default_image = NULL; 168 const SkBitmap* default_image = NULL;
176 169
177 if (request->extension->id() == extension_misc::kWebStoreAppId) 170 if (request->extension->is_app())
178 default_image = GetWebStoreImage();
179 else if (request->extension->is_app())
180 default_image = GetDefaultAppImage(); 171 default_image = GetDefaultAppImage();
181 else 172 else
182 default_image = GetDefaultExtensionImage(); 173 default_image = GetDefaultExtensionImage();
183 174
184 SkBitmap resized_image(skia::ImageOperations::Resize( 175 SkBitmap resized_image(skia::ImageOperations::Resize(
185 *default_image, skia::ImageOperations::RESIZE_LANCZOS3, 176 *default_image, skia::ImageOperations::RESIZE_LANCZOS3,
186 request->size, request->size)); 177 request->size, request->size));
187 178
188 // There are cases where Resize returns an empty bitmap, for example if you 179 // There are cases where Resize returns an empty bitmap, for example if you
189 // ask for an image too large. In this case it is better to return the default 180 // ask for an image too large. In this case it is better to return the default
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 337
347 void ExtensionIconSource::ClearData(int request_id) { 338 void ExtensionIconSource::ClearData(int request_id) {
348 std::map<int, ExtensionIconRequest*>::iterator i = 339 std::map<int, ExtensionIconRequest*>::iterator i =
349 request_map_.find(request_id); 340 request_map_.find(request_id);
350 if (i == request_map_.end()) 341 if (i == request_map_.end())
351 return; 342 return;
352 343
353 delete i->second; 344 delete i->second;
354 request_map_.erase(i); 345 request_map_.erase(i);
355 } 346 }
OLDNEW
« no previous file with comments | « chrome/browser/resources/webstore_app/manifest.json ('k') | chrome/renderer/extensions/resource_request_policy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698