| 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/favicon/favicon_handler.h" | 5 #include "components/favicon/core/browser/favicon_handler.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/bind.h" | 11 #include "base/bind.h" |
| 12 #include "base/bind_helpers.h" | 12 #include "base/bind_helpers.h" |
| 13 #include "base/memory/ref_counted_memory.h" | 13 #include "base/memory/ref_counted_memory.h" |
| 14 #include "build/build_config.h" | 14 #include "build/build_config.h" |
| 15 #include "chrome/browser/favicon/favicon_service.h" | |
| 16 #include "components/favicon/core/browser/favicon_client.h" | 15 #include "components/favicon/core/browser/favicon_client.h" |
| 16 #include "components/favicon/core/browser/favicon_service.h" |
| 17 #include "components/favicon/core/favicon_driver.h" | 17 #include "components/favicon/core/favicon_driver.h" |
| 18 #include "components/favicon_base/favicon_util.h" | 18 #include "components/favicon_base/favicon_util.h" |
| 19 #include "components/favicon_base/select_favicon_frames.h" | 19 #include "components/favicon_base/select_favicon_frames.h" |
| 20 #include "skia/ext/image_operations.h" | 20 #include "skia/ext/image_operations.h" |
| 21 #include "ui/gfx/codec/png_codec.h" | 21 #include "ui/gfx/codec/png_codec.h" |
| 22 #include "ui/gfx/image/image_skia.h" | 22 #include "ui/gfx/image/image_skia.h" |
| 23 #include "ui/gfx/image/image_util.h" | 23 #include "ui/gfx/image/image_util.h" |
| 24 | 24 |
| 25 using favicon::FaviconURL; | 25 using favicon::FaviconURL; |
| 26 | 26 |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 // Returns true if at least one of |bitmap_results| is valid. | 117 // Returns true if at least one of |bitmap_results| is valid. |
| 118 bool HasValidResult( | 118 bool HasValidResult( |
| 119 const std::vector<favicon_base::FaviconRawBitmapResult>& bitmap_results) { | 119 const std::vector<favicon_base::FaviconRawBitmapResult>& bitmap_results) { |
| 120 return std::find_if(bitmap_results.begin(), bitmap_results.end(), IsValid) != | 120 return std::find_if(bitmap_results.begin(), bitmap_results.end(), IsValid) != |
| 121 bitmap_results.end(); | 121 bitmap_results.end(); |
| 122 } | 122 } |
| 123 | 123 |
| 124 // Returns the index of the entry with the largest area. | 124 // Returns the index of the entry with the largest area. |
| 125 int GetLargestSizeIndex(const std::vector<gfx::Size>& sizes) { | 125 int GetLargestSizeIndex(const std::vector<gfx::Size>& sizes) { |
| 126 DCHECK(!sizes.empty()); | 126 DCHECK(!sizes.empty()); |
| 127 int ret = 0; | 127 size_t ret = 0; |
| 128 for (size_t i = 1; i < sizes.size(); ++i) { | 128 for (size_t i = 1; i < sizes.size(); ++i) { |
| 129 if (sizes[ret].GetArea() < sizes[i].GetArea()) | 129 if (sizes[ret].GetArea() < sizes[i].GetArea()) |
| 130 ret = i; | 130 ret = i; |
| 131 } | 131 } |
| 132 return ret; | 132 return static_cast<int>(ret); |
| 133 } | 133 } |
| 134 | 134 |
| 135 // Return the index of a size which is same as the given |size|, -1 returned if | 135 // Return the index of a size which is same as the given |size|, -1 returned if |
| 136 // there is no such bitmap. | 136 // there is no such bitmap. |
| 137 int GetIndexBySize(const std::vector<gfx::Size>& sizes, | 137 int GetIndexBySize(const std::vector<gfx::Size>& sizes, |
| 138 const gfx::Size& size) { | 138 const gfx::Size& size) { |
| 139 DCHECK(!sizes.empty()); | 139 DCHECK(!sizes.empty()); |
| 140 std::vector<gfx::Size>::const_iterator i = | 140 std::vector<gfx::Size>::const_iterator i = |
| 141 std::find(sizes.begin(), sizes.end(), size); | 141 std::find(sizes.begin(), sizes.end(), size); |
| 142 if (i == sizes.end()) | 142 if (i == sizes.end()) |
| (...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 684 continue; | 684 continue; |
| 685 | 685 |
| 686 gfx::Size largest = | 686 gfx::Size largest = |
| 687 image_url.icon_sizes[GetLargestSizeIndex(image_url.icon_sizes)]; | 687 image_url.icon_sizes[GetLargestSizeIndex(image_url.icon_sizes)]; |
| 688 image_url.icon_sizes.clear(); | 688 image_url.icon_sizes.clear(); |
| 689 image_url.icon_sizes.push_back(largest); | 689 image_url.icon_sizes.push_back(largest); |
| 690 } | 690 } |
| 691 std::stable_sort(image_urls_.begin(), image_urls_.end(), | 691 std::stable_sort(image_urls_.begin(), image_urls_.end(), |
| 692 CompareIconSize); | 692 CompareIconSize); |
| 693 } | 693 } |
| OLD | NEW |