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

Side by Side Diff: chrome/browser/favicon/favicon_service.cc

Issue 326143002: Remove ui::GetImageScale (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix mac build Created 6 years, 6 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
« no previous file with comments | « chrome/browser/favicon/favicon_handler.cc ('k') | chrome/browser/favicon/favicon_util.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/favicon/favicon_service.h" 5 #include "chrome/browser/favicon/favicon_service.h"
6 6
7 #include "base/hash.h" 7 #include "base/hash.h"
8 #include "base/message_loop/message_loop_proxy.h" 8 #include "base/message_loop/message_loop_proxy.h"
9 #include "chrome/browser/favicon/favicon_util.h" 9 #include "chrome/browser/favicon/favicon_util.h"
10 #include "chrome/browser/history/history_backend.h" 10 #include "chrome/browser/history/history_backend.h"
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 base::CancelableTaskTracker* tracker) { 85 base::CancelableTaskTracker* tracker) {
86 favicon_base::FaviconResultsCallback callback_runner = 86 favicon_base::FaviconResultsCallback callback_runner =
87 Bind(&FaviconService::RunFaviconImageCallbackWithBitmapResults, 87 Bind(&FaviconService::RunFaviconImageCallbackWithBitmapResults,
88 base::Unretained(this), callback, desired_size_in_dip); 88 base::Unretained(this), callback, desired_size_in_dip);
89 if (history_service_) { 89 if (history_service_) {
90 std::vector<GURL> icon_urls; 90 std::vector<GURL> icon_urls;
91 icon_urls.push_back(icon_url); 91 icon_urls.push_back(icon_url);
92 return history_service_->GetFavicons( 92 return history_service_->GetFavicons(
93 icon_urls, icon_type, desired_size_in_dip, 93 icon_urls, icon_type, desired_size_in_dip,
94 FaviconUtil::GetFaviconScaleFactors(), callback_runner, tracker); 94 FaviconUtil::GetFaviconScaleFactors(), callback_runner, tracker);
95 } else {
96 return RunWithEmptyResultAsync(callback_runner, tracker);
97 } 95 }
96 return RunWithEmptyResultAsync(callback_runner, tracker);
98 } 97 }
99 98
100 base::CancelableTaskTracker::TaskId FaviconService::GetRawFavicon( 99 base::CancelableTaskTracker::TaskId FaviconService::GetRawFavicon(
101 const GURL& icon_url, 100 const GURL& icon_url,
102 favicon_base::IconType icon_type, 101 favicon_base::IconType icon_type,
103 int desired_size_in_dip, 102 int desired_size_in_dip,
104 ui::ScaleFactor desired_scale_factor, 103 ui::ScaleFactor desired_scale_factor,
105 const favicon_base::FaviconRawCallback& callback, 104 const favicon_base::FaviconRawCallback& callback,
106 base::CancelableTaskTracker* tracker) { 105 base::CancelableTaskTracker* tracker) {
107 favicon_base::FaviconResultsCallback callback_runner = 106 favicon_base::FaviconResultsCallback callback_runner =
108 Bind(&FaviconService::RunFaviconRawCallbackWithBitmapResults, 107 Bind(&FaviconService::RunFaviconRawCallbackWithBitmapResults,
109 base::Unretained(this), 108 base::Unretained(this),
110 callback, desired_size_in_dip, desired_scale_factor); 109 callback, desired_size_in_dip, desired_scale_factor);
111 110
112 if (history_service_) { 111 if (history_service_) {
113 std::vector<GURL> icon_urls; 112 std::vector<GURL> icon_urls;
114 icon_urls.push_back(icon_url); 113 icon_urls.push_back(icon_url);
115 std::vector<ui::ScaleFactor> desired_scale_factors; 114 std::vector<ui::ScaleFactor> desired_scale_factors;
116 desired_scale_factors.push_back(desired_scale_factor); 115 desired_scale_factors.push_back(desired_scale_factor);
117 116
118 return history_service_->GetFavicons( 117 return history_service_->GetFavicons(
119 icon_urls, icon_type, desired_size_in_dip, desired_scale_factors, 118 icon_urls, icon_type, desired_size_in_dip, desired_scale_factors,
120 callback_runner, tracker); 119 callback_runner, tracker);
121 } else {
122 return RunWithEmptyResultAsync(callback_runner, tracker);
123 } 120 }
121 return RunWithEmptyResultAsync(callback_runner, tracker);
124 } 122 }
125 123
126 base::CancelableTaskTracker::TaskId FaviconService::GetFavicon( 124 base::CancelableTaskTracker::TaskId FaviconService::GetFavicon(
127 const GURL& icon_url, 125 const GURL& icon_url,
128 favicon_base::IconType icon_type, 126 favicon_base::IconType icon_type,
129 int desired_size_in_dip, 127 int desired_size_in_dip,
130 const favicon_base::FaviconResultsCallback& callback, 128 const favicon_base::FaviconResultsCallback& callback,
131 base::CancelableTaskTracker* tracker) { 129 base::CancelableTaskTracker* tracker) {
132 if (history_service_) { 130 if (history_service_) {
133 std::vector<GURL> icon_urls; 131 std::vector<GURL> icon_urls;
134 icon_urls.push_back(icon_url); 132 icon_urls.push_back(icon_url);
135 return history_service_->GetFavicons( 133 return history_service_->GetFavicons(
136 icon_urls, icon_type, desired_size_in_dip, 134 icon_urls, icon_type, desired_size_in_dip,
137 FaviconUtil::GetFaviconScaleFactors(), callback, tracker); 135 FaviconUtil::GetFaviconScaleFactors(), callback, tracker);
138 } else {
139 return RunWithEmptyResultAsync(callback, tracker);
140 } 136 }
137 return RunWithEmptyResultAsync(callback, tracker);
141 } 138 }
142 139
143 base::CancelableTaskTracker::TaskId 140 base::CancelableTaskTracker::TaskId
144 FaviconService::UpdateFaviconMappingsAndFetch( 141 FaviconService::UpdateFaviconMappingsAndFetch(
145 const GURL& page_url, 142 const GURL& page_url,
146 const std::vector<GURL>& icon_urls, 143 const std::vector<GURL>& icon_urls,
147 int icon_types, 144 int icon_types,
148 int desired_size_in_dip, 145 int desired_size_in_dip,
149 const favicon_base::FaviconResultsCallback& callback, 146 const favicon_base::FaviconResultsCallback& callback,
150 base::CancelableTaskTracker* tracker) { 147 base::CancelableTaskTracker* tracker) {
151 if (history_service_) { 148 if (history_service_) {
152 return history_service_->UpdateFaviconMappingsAndFetch( 149 return history_service_->UpdateFaviconMappingsAndFetch(
153 page_url, icon_urls, icon_types, desired_size_in_dip, 150 page_url, icon_urls, icon_types, desired_size_in_dip,
154 FaviconUtil::GetFaviconScaleFactors(), callback, tracker); 151 FaviconUtil::GetFaviconScaleFactors(), callback, tracker);
155 } else {
156 return RunWithEmptyResultAsync(callback, tracker);
157 } 152 }
153 return RunWithEmptyResultAsync(callback, tracker);
158 } 154 }
159 155
160 base::CancelableTaskTracker::TaskId FaviconService::GetFaviconImageForURL( 156 base::CancelableTaskTracker::TaskId FaviconService::GetFaviconImageForURL(
161 const FaviconForURLParams& params, 157 const FaviconForURLParams& params,
162 const favicon_base::FaviconImageCallback& callback, 158 const favicon_base::FaviconImageCallback& callback,
163 base::CancelableTaskTracker* tracker) { 159 base::CancelableTaskTracker* tracker) {
164 return GetFaviconForURLImpl( 160 return GetFaviconForURLImpl(
165 params, 161 params,
166 FaviconUtil::GetFaviconScaleFactors(), 162 FaviconUtil::GetFaviconScaleFactors(),
167 Bind(&FaviconService::RunFaviconImageCallbackWithBitmapResults, 163 Bind(&FaviconService::RunFaviconImageCallbackWithBitmapResults,
(...skipping 30 matching lines...) Expand all
198 base::CancelableTaskTracker* tracker) { 194 base::CancelableTaskTracker* tracker) {
199 favicon_base::FaviconResultsCallback favicon_results_callback = 195 favicon_base::FaviconResultsCallback favicon_results_callback =
200 Bind(&FaviconService::RunFaviconRawCallbackWithBitmapResults, 196 Bind(&FaviconService::RunFaviconRawCallbackWithBitmapResults,
201 base::Unretained(this), callback, 0, ui::ScaleFactor()); 197 base::Unretained(this), callback, 0, ui::ScaleFactor());
202 if (page_url.SchemeIs(content::kChromeUIScheme) || 198 if (page_url.SchemeIs(content::kChromeUIScheme) ||
203 page_url.SchemeIs(extensions::kExtensionScheme)) { 199 page_url.SchemeIs(extensions::kExtensionScheme)) {
204 std::vector<ui::ScaleFactor> scale_factor; 200 std::vector<ui::ScaleFactor> scale_factor;
205 scale_factor.push_back(ui::SCALE_FACTOR_100P); 201 scale_factor.push_back(ui::SCALE_FACTOR_100P);
206 return GetFaviconForChromeURL(profile, page_url, scale_factor, 202 return GetFaviconForChromeURL(profile, page_url, scale_factor,
207 favicon_results_callback, tracker); 203 favicon_results_callback, tracker);
208 } else if (history_service_) { 204 }
205 if (history_service_) {
209 return history_service_->GetLargestFaviconForURL(page_url, icon_types, 206 return history_service_->GetLargestFaviconForURL(page_url, icon_types,
210 minimum_size_in_pixels, callback, tracker); 207 minimum_size_in_pixels, callback, tracker);
211 } 208 }
212 return RunWithEmptyResultAsync(favicon_results_callback, tracker); 209 return RunWithEmptyResultAsync(favicon_results_callback, tracker);
213 } 210 }
214 211
215 base::CancelableTaskTracker::TaskId FaviconService::GetFaviconForURL( 212 base::CancelableTaskTracker::TaskId FaviconService::GetFaviconForURL(
216 const FaviconForURLParams& params, 213 const FaviconForURLParams& params,
217 const favicon_base::FaviconResultsCallback& callback, 214 const favicon_base::FaviconResultsCallback& callback,
218 base::CancelableTaskTracker* tracker) { 215 base::CancelableTaskTracker* tracker) {
(...skipping 13 matching lines...) Expand all
232 ui::ScaleFactor desired_scale_factor = ui::SCALE_FACTOR_100P; 229 ui::ScaleFactor desired_scale_factor = ui::SCALE_FACTOR_100P;
233 favicon_base::FaviconResultsCallback callback_runner = 230 favicon_base::FaviconResultsCallback callback_runner =
234 Bind(&FaviconService::RunFaviconRawCallbackWithBitmapResults, 231 Bind(&FaviconService::RunFaviconRawCallbackWithBitmapResults,
235 base::Unretained(this), 232 base::Unretained(this),
236 callback, desired_size_in_dip, desired_scale_factor); 233 callback, desired_size_in_dip, desired_scale_factor);
237 234
238 if (history_service_) { 235 if (history_service_) {
239 return history_service_->GetFaviconForID( 236 return history_service_->GetFaviconForID(
240 favicon_id, desired_size_in_dip, desired_scale_factor, 237 favicon_id, desired_size_in_dip, desired_scale_factor,
241 callback_runner, tracker); 238 callback_runner, tracker);
242 } else {
243 return RunWithEmptyResultAsync(callback_runner, tracker);
244 } 239 }
240 return RunWithEmptyResultAsync(callback_runner, tracker);
245 } 241 }
246 242
247 void FaviconService::SetFaviconOutOfDateForPage(const GURL& page_url) { 243 void FaviconService::SetFaviconOutOfDateForPage(const GURL& page_url) {
248 if (history_service_) 244 if (history_service_)
249 history_service_->SetFaviconsOutOfDateForPage(page_url); 245 history_service_->SetFaviconsOutOfDateForPage(page_url);
250 } 246 }
251 247
252 void FaviconService::CloneFavicon(const GURL& old_page_url, 248 void FaviconService::CloneFavicon(const GURL& old_page_url,
253 const GURL& new_page_url) { 249 const GURL& new_page_url) {
254 if (history_service_) 250 if (history_service_)
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
322 318
323 base::CancelableTaskTracker::TaskId FaviconService::GetFaviconForURLImpl( 319 base::CancelableTaskTracker::TaskId FaviconService::GetFaviconForURLImpl(
324 const FaviconForURLParams& params, 320 const FaviconForURLParams& params,
325 const std::vector<ui::ScaleFactor>& desired_scale_factors, 321 const std::vector<ui::ScaleFactor>& desired_scale_factors,
326 const favicon_base::FaviconResultsCallback& callback, 322 const favicon_base::FaviconResultsCallback& callback,
327 base::CancelableTaskTracker* tracker) { 323 base::CancelableTaskTracker* tracker) {
328 if (params.page_url.SchemeIs(content::kChromeUIScheme) || 324 if (params.page_url.SchemeIs(content::kChromeUIScheme) ||
329 params.page_url.SchemeIs(extensions::kExtensionScheme)) { 325 params.page_url.SchemeIs(extensions::kExtensionScheme)) {
330 return GetFaviconForChromeURL(profile_, params.page_url, 326 return GetFaviconForChromeURL(profile_, params.page_url,
331 desired_scale_factors, callback, tracker); 327 desired_scale_factors, callback, tracker);
332 } else if (history_service_) { 328 }
329 if (history_service_) {
333 return history_service_->GetFaviconsForURL(params.page_url, 330 return history_service_->GetFaviconsForURL(params.page_url,
334 params.icon_types, 331 params.icon_types,
335 params.desired_size_in_dip, 332 params.desired_size_in_dip,
336 desired_scale_factors, 333 desired_scale_factors,
337 callback, 334 callback,
338 tracker); 335 tracker);
339 } 336 }
340 return RunWithEmptyResultAsync(callback, tracker); 337 return RunWithEmptyResultAsync(callback, tracker);
341 } 338 }
342 339
(...skipping 30 matching lines...) Expand all
373 370
374 // If the desired size is 0, SelectFaviconFrames() will return the largest 371 // If the desired size is 0, SelectFaviconFrames() will return the largest
375 // bitmap without doing any resizing. As |favicon_bitmap_results| has bitmap 372 // bitmap without doing any resizing. As |favicon_bitmap_results| has bitmap
376 // data for a single bitmap, return it and avoid an unnecessary decode. 373 // data for a single bitmap, return it and avoid an unnecessary decode.
377 if (desired_size_in_dip == 0) { 374 if (desired_size_in_dip == 0) {
378 callback.Run(bitmap_result); 375 callback.Run(bitmap_result);
379 return; 376 return;
380 } 377 }
381 378
382 // If history bitmap is already desired pixel size, return early. 379 // If history bitmap is already desired pixel size, return early.
383 float desired_scale = ui::GetImageScale(desired_scale_factor); 380 float desired_scale = ui::GetScaleForScaleFactor(desired_scale_factor);
384 int desired_edge_width_in_pixel = static_cast<int>( 381 int desired_edge_width_in_pixel = static_cast<int>(
385 desired_size_in_dip * desired_scale + 0.5f); 382 desired_size_in_dip * desired_scale + 0.5f);
383
386 gfx::Size desired_size_in_pixel(desired_edge_width_in_pixel, 384 gfx::Size desired_size_in_pixel(desired_edge_width_in_pixel,
387 desired_edge_width_in_pixel); 385 desired_edge_width_in_pixel);
388 if (bitmap_result.pixel_size == desired_size_in_pixel) { 386 if (bitmap_result.pixel_size == desired_size_in_pixel) {
389 callback.Run(bitmap_result); 387 callback.Run(bitmap_result);
390 return; 388 return;
391 } 389 }
392 390
393 // Convert raw bytes to SkBitmap, resize via SelectFaviconFrames(), then 391 // Convert raw bytes to SkBitmap, resize via SelectFaviconFrames(), then
394 // convert back. 392 // convert back.
395 std::vector<ui::ScaleFactor> desired_scale_factors; 393 std::vector<ui::ScaleFactor> desired_scale_factors;
396 desired_scale_factors.push_back(desired_scale_factor); 394 desired_scale_factors.push_back(desired_scale_factor);
397 gfx::Image resized_image = FaviconUtil::SelectFaviconFramesFromPNGs( 395 gfx::Image resized_image = FaviconUtil::SelectFaviconFramesFromPNGs(
398 favicon_bitmap_results, desired_scale_factors, desired_size_in_dip); 396 favicon_bitmap_results, desired_scale_factors, desired_size_in_dip);
399 397
400 std::vector<unsigned char> resized_bitmap_data; 398 std::vector<unsigned char> resized_bitmap_data;
401 if (!gfx::PNGCodec::EncodeBGRASkBitmap(resized_image.AsBitmap(), false, 399 if (!gfx::PNGCodec::EncodeBGRASkBitmap(resized_image.AsBitmap(), false,
402 &resized_bitmap_data)) { 400 &resized_bitmap_data)) {
403 callback.Run(favicon_base::FaviconBitmapResult()); 401 callback.Run(favicon_base::FaviconBitmapResult());
404 return; 402 return;
405 } 403 }
406 404
407 bitmap_result.bitmap_data = base::RefCountedBytes::TakeVector( 405 bitmap_result.bitmap_data = base::RefCountedBytes::TakeVector(
408 &resized_bitmap_data); 406 &resized_bitmap_data);
409 callback.Run(bitmap_result); 407 callback.Run(bitmap_result);
410 } 408 }
OLDNEW
« no previous file with comments | « chrome/browser/favicon/favicon_handler.cc ('k') | chrome/browser/favicon/favicon_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698