| 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/chrome_web_ui_controller_factory.h" | 5 #include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 589 #else | 589 #else |
| 590 RunFaviconCallbackAsync( | 590 RunFaviconCallbackAsync( |
| 591 callback, new std::vector<favicon_base::FaviconRawBitmapResult>()); | 591 callback, new std::vector<favicon_base::FaviconRawBitmapResult>()); |
| 592 #endif | 592 #endif |
| 593 return; | 593 return; |
| 594 } | 594 } |
| 595 | 595 |
| 596 std::vector<favicon_base::FaviconRawBitmapResult>* favicon_bitmap_results = | 596 std::vector<favicon_base::FaviconRawBitmapResult>* favicon_bitmap_results = |
| 597 new std::vector<favicon_base::FaviconRawBitmapResult>(); | 597 new std::vector<favicon_base::FaviconRawBitmapResult>(); |
| 598 | 598 |
| 599 // Assume that GetFaviconResourceBytes() returns favicons which are | 599 // Use ui::GetSupportedScaleFactors instead of |
| 600 // |gfx::kFaviconSize| x |gfx::kFaviconSize| DIP. | 600 // favicon_base::GetFaviconScales() because chrome favicons comes from |
| 601 std::vector<ui::ScaleFactor> scale_factors = | 601 // resources. |
| 602 favicon_base::GetFaviconScaleFactors(); | 602 std::vector<ui::ScaleFactor> resource_scale_factors = |
| 603 ui::GetSupportedScaleFactors(); |
| 604 |
| 603 std::vector<gfx::Size> candidate_sizes; | 605 std::vector<gfx::Size> candidate_sizes; |
| 604 for (size_t i = 0; i < scale_factors.size(); ++i) { | 606 for (size_t i = 0; i < resource_scale_factors.size(); ++i) { |
| 605 float scale = ui::GetScaleForScaleFactor(scale_factors[i]); | 607 float scale = ui::GetScaleForScaleFactor(resource_scale_factors[i]); |
| 608 // Assume that GetFaviconResourceBytes() returns favicons which are |
| 609 // |gfx::kFaviconSize| x |gfx::kFaviconSize| DIP. |
| 606 int candidate_edge_size = | 610 int candidate_edge_size = |
| 607 static_cast<int>(gfx::kFaviconSize * scale + 0.5f); | 611 static_cast<int>(gfx::kFaviconSize * scale + 0.5f); |
| 608 candidate_sizes.push_back( | 612 candidate_sizes.push_back( |
| 609 gfx::Size(candidate_edge_size, candidate_edge_size)); | 613 gfx::Size(candidate_edge_size, candidate_edge_size)); |
| 610 } | 614 } |
| 611 std::vector<size_t> selected_indices; | 615 std::vector<size_t> selected_indices; |
| 612 SelectFaviconFrameIndices(candidate_sizes, | 616 SelectFaviconFrameIndices( |
| 613 desired_sizes_in_pixel, | 617 candidate_sizes, desired_sizes_in_pixel, &selected_indices, NULL); |
| 614 &selected_indices, | |
| 615 NULL); | |
| 616 for (size_t i = 0; i < selected_indices.size(); ++i) { | 618 for (size_t i = 0; i < selected_indices.size(); ++i) { |
| 617 size_t selected_index = selected_indices[i]; | 619 size_t selected_index = selected_indices[i]; |
| 618 scoped_refptr<base::RefCountedMemory> bitmap(GetFaviconResourceBytes( | 620 ui::ScaleFactor selected_resource_scale = |
| 619 url, scale_factors[selected_index])); | 621 resource_scale_factors[selected_index]; |
| 622 |
| 623 scoped_refptr<base::RefCountedMemory> bitmap( |
| 624 GetFaviconResourceBytes(url, selected_resource_scale)); |
| 620 if (bitmap.get() && bitmap->size()) { | 625 if (bitmap.get() && bitmap->size()) { |
| 621 favicon_base::FaviconRawBitmapResult bitmap_result; | 626 favicon_base::FaviconRawBitmapResult bitmap_result; |
| 622 bitmap_result.bitmap_data = bitmap; | 627 bitmap_result.bitmap_data = bitmap; |
| 623 // Leave |bitmap_result|'s icon URL as the default of GURL(). | 628 // Leave |bitmap_result|'s icon URL as the default of GURL(). |
| 624 bitmap_result.icon_type = favicon_base::FAVICON; | 629 bitmap_result.icon_type = favicon_base::FAVICON; |
| 625 favicon_bitmap_results->push_back(bitmap_result); | 630 favicon_bitmap_results->push_back(bitmap_result); |
| 626 | 631 |
| 627 bitmap_result.pixel_size = candidate_sizes[selected_index]; | 632 bitmap_result.pixel_size = candidate_sizes[selected_index]; |
| 628 } | 633 } |
| 629 } | 634 } |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 702 #endif | 707 #endif |
| 703 | 708 |
| 704 // Android doesn't use the plugins pages. | 709 // Android doesn't use the plugins pages. |
| 705 if (page_url.host() == chrome::kChromeUIPluginsHost) | 710 if (page_url.host() == chrome::kChromeUIPluginsHost) |
| 706 return PluginsUI::GetFaviconResourceBytes(scale_factor); | 711 return PluginsUI::GetFaviconResourceBytes(scale_factor); |
| 707 | 712 |
| 708 #endif | 713 #endif |
| 709 | 714 |
| 710 return NULL; | 715 return NULL; |
| 711 } | 716 } |
| OLD | NEW |