| OLD | NEW |
| 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 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 // If the request data cannot be parsed, request parameters will not be | 127 // If the request data cannot be parsed, request parameters will not be |
| 128 // added to |request_map_|. | 128 // added to |request_map_|. |
| 129 // Send back the default application icon (not resized or desaturated) as | 129 // Send back the default application icon (not resized or desaturated) as |
| 130 // the default response. | 130 // the default response. |
| 131 callback.Run(BitmapToMemory(GetDefaultAppImage()).get()); | 131 callback.Run(BitmapToMemory(GetDefaultAppImage()).get()); |
| 132 return; | 132 return; |
| 133 } | 133 } |
| 134 | 134 |
| 135 ExtensionIconRequest* request = GetData(next_id); | 135 ExtensionIconRequest* request = GetData(next_id); |
| 136 ExtensionResource icon = IconsInfo::GetIconResource( | 136 ExtensionResource icon = IconsInfo::GetIconResource( |
| 137 request->extension, request->size, request->match); | 137 request->extension.get(), request->size, request->match); |
| 138 | 138 |
| 139 if (icon.relative_path().empty()) { | 139 if (icon.relative_path().empty()) { |
| 140 LoadIconFailed(next_id); | 140 LoadIconFailed(next_id); |
| 141 } else { | 141 } else { |
| 142 LoadExtensionImage(icon, next_id); | 142 LoadExtensionImage(icon, next_id); |
| 143 } | 143 } |
| 144 } | 144 } |
| 145 | 145 |
| 146 ExtensionIconSource::~ExtensionIconSource() { | 146 ExtensionIconSource::~ExtensionIconSource() { |
| 147 // Clean up all the temporary data we're holding for requests. | 147 // Clean up all the temporary data we're holding for requests. |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 196 if (resized_image.empty()) | 196 if (resized_image.empty()) |
| 197 resized_image = *default_image; | 197 resized_image = *default_image; |
| 198 | 198 |
| 199 FinalizeImage(&resized_image, request_id); | 199 FinalizeImage(&resized_image, request_id); |
| 200 } | 200 } |
| 201 | 201 |
| 202 void ExtensionIconSource::LoadExtensionImage(const ExtensionResource& icon, | 202 void ExtensionIconSource::LoadExtensionImage(const ExtensionResource& icon, |
| 203 int request_id) { | 203 int request_id) { |
| 204 ExtensionIconRequest* request = GetData(request_id); | 204 ExtensionIconRequest* request = GetData(request_id); |
| 205 ImageLoader::Get(profile_)->LoadImageAsync( | 205 ImageLoader::Get(profile_)->LoadImageAsync( |
| 206 request->extension, icon, | 206 request->extension.get(), |
| 207 icon, |
| 207 gfx::Size(request->size, request->size), | 208 gfx::Size(request->size, request->size), |
| 208 base::Bind(&ExtensionIconSource::OnImageLoaded, AsWeakPtr(), request_id)); | 209 base::Bind(&ExtensionIconSource::OnImageLoaded, AsWeakPtr(), request_id)); |
| 209 } | 210 } |
| 210 | 211 |
| 211 void ExtensionIconSource::LoadFaviconImage(int request_id) { | 212 void ExtensionIconSource::LoadFaviconImage(int request_id) { |
| 212 FaviconService* favicon_service = | 213 FaviconService* favicon_service = |
| 213 FaviconServiceFactory::GetForProfile(profile_, Profile::EXPLICIT_ACCESS); | 214 FaviconServiceFactory::GetForProfile(profile_, Profile::EXPLICIT_ACCESS); |
| 214 // Fall back to the default icons if the service isn't available. | 215 // Fall back to the default icons if the service isn't available. |
| 215 if (favicon_service == NULL) { | 216 if (favicon_service == NULL) { |
| 216 LoadDefaultImage(request_id); | 217 LoadDefaultImage(request_id); |
| 217 return; | 218 return; |
| 218 } | 219 } |
| 219 | 220 |
| 220 GURL favicon_url = | 221 GURL favicon_url = |
| 221 AppLaunchInfo::GetFullLaunchURL(GetData(request_id)->extension); | 222 AppLaunchInfo::GetFullLaunchURL(GetData(request_id)->extension.get()); |
| 222 favicon_service->GetRawFaviconForPageURL( | 223 favicon_service->GetRawFaviconForPageURL( |
| 223 favicon_url, | 224 favicon_url, |
| 224 favicon_base::FAVICON, | 225 favicon_base::FAVICON, |
| 225 gfx::kFaviconSize, | 226 gfx::kFaviconSize, |
| 226 base::Bind(&ExtensionIconSource::OnFaviconDataAvailable, | 227 base::Bind(&ExtensionIconSource::OnFaviconDataAvailable, |
| 227 base::Unretained(this), | 228 base::Unretained(this), |
| 228 request_id), | 229 request_id), |
| 229 &cancelable_task_tracker_); | 230 &cancelable_task_tracker_); |
| 230 } | 231 } |
| 231 | 232 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 255 const gfx::Image& image) { | 256 const gfx::Image& image) { |
| 256 if (image.IsEmpty()) | 257 if (image.IsEmpty()) |
| 257 LoadIconFailed(request_id); | 258 LoadIconFailed(request_id); |
| 258 else | 259 else |
| 259 FinalizeImage(image.ToSkBitmap(), request_id); | 260 FinalizeImage(image.ToSkBitmap(), request_id); |
| 260 } | 261 } |
| 261 | 262 |
| 262 void ExtensionIconSource::LoadIconFailed(int request_id) { | 263 void ExtensionIconSource::LoadIconFailed(int request_id) { |
| 263 ExtensionIconRequest* request = GetData(request_id); | 264 ExtensionIconRequest* request = GetData(request_id); |
| 264 ExtensionResource icon = IconsInfo::GetIconResource( | 265 ExtensionResource icon = IconsInfo::GetIconResource( |
| 265 request->extension, request->size, request->match); | 266 request->extension.get(), request->size, request->match); |
| 266 | 267 |
| 267 if (request->size == extension_misc::EXTENSION_ICON_BITTY) | 268 if (request->size == extension_misc::EXTENSION_ICON_BITTY) |
| 268 LoadFaviconImage(request_id); | 269 LoadFaviconImage(request_id); |
| 269 else | 270 else |
| 270 LoadDefaultImage(request_id); | 271 LoadDefaultImage(request_id); |
| 271 } | 272 } |
| 272 | 273 |
| 273 bool ExtensionIconSource::ParseData( | 274 bool ExtensionIconSource::ParseData( |
| 274 const std::string& path, | 275 const std::string& path, |
| 275 int request_id, | 276 int request_id, |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 340 std::map<int, ExtensionIconRequest*>::iterator i = | 341 std::map<int, ExtensionIconRequest*>::iterator i = |
| 341 request_map_.find(request_id); | 342 request_map_.find(request_id); |
| 342 if (i == request_map_.end()) | 343 if (i == request_map_.end()) |
| 343 return; | 344 return; |
| 344 | 345 |
| 345 delete i->second; | 346 delete i->second; |
| 346 request_map_.erase(i); | 347 request_map_.erase(i); |
| 347 } | 348 } |
| 348 | 349 |
| 349 } // namespace extensions | 350 } // namespace extensions |
| OLD | NEW |