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

Side by Side Diff: chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc

Issue 335233003: Convert ui::ScaleFactor -> float in favicon/history code (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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
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/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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 #include "content/public/browser/web_contents.h" 67 #include "content/public/browser/web_contents.h"
68 #include "content/public/browser/web_ui.h" 68 #include "content/public/browser/web_ui.h"
69 #include "content/public/common/content_client.h" 69 #include "content/public/common/content_client.h"
70 #include "content/public/common/url_utils.h" 70 #include "content/public/common/url_utils.h"
71 #include "extensions/browser/extension_registry.h" 71 #include "extensions/browser/extension_registry.h"
72 #include "extensions/browser/extension_system.h" 72 #include "extensions/browser/extension_system.h"
73 #include "extensions/common/constants.h" 73 #include "extensions/common/constants.h"
74 #include "extensions/common/extension.h" 74 #include "extensions/common/extension.h"
75 #include "extensions/common/feature_switch.h" 75 #include "extensions/common/feature_switch.h"
76 #include "extensions/common/manifest.h" 76 #include "extensions/common/manifest.h"
77 #include "ui/base/layout.h"
77 #include "ui/gfx/favicon_size.h" 78 #include "ui/gfx/favicon_size.h"
78 #include "ui/web_dialogs/web_dialog_ui.h" 79 #include "ui/web_dialogs/web_dialog_ui.h"
79 #include "url/gurl.h" 80 #include "url/gurl.h"
80 81
81 #if !defined(DISABLE_NACL) 82 #if !defined(DISABLE_NACL)
82 #include "chrome/browser/ui/webui/nacl_ui.h" 83 #include "chrome/browser/ui/webui/nacl_ui.h"
83 #endif 84 #endif
84 85
85 #if defined(ENABLE_CONFIGURATION_POLICY) 86 #if defined(ENABLE_CONFIGURATION_POLICY)
86 #include "chrome/browser/ui/webui/policy_ui.h" 87 #include "chrome/browser/ui/webui/policy_ui.h"
(...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 WebUIFactoryFunction function = GetWebUIFactoryFunction(web_ui, profile, url); 564 WebUIFactoryFunction function = GetWebUIFactoryFunction(web_ui, profile, url);
564 if (!function) 565 if (!function)
565 return NULL; 566 return NULL;
566 567
567 return (*function)(web_ui, url); 568 return (*function)(web_ui, url);
568 } 569 }
569 570
570 void ChromeWebUIControllerFactory::GetFaviconForURL( 571 void ChromeWebUIControllerFactory::GetFaviconForURL(
571 Profile* profile, 572 Profile* profile,
572 const GURL& page_url, 573 const GURL& page_url,
573 const std::vector<ui::ScaleFactor>& scale_factors, 574 const std::vector<float>& favicon_scales,
574 const favicon_base::FaviconResultsCallback& callback) const { 575 const favicon_base::FaviconResultsCallback& callback) const {
575 // Before determining whether page_url is an extension url, we must handle 576 // Before determining whether page_url is an extension url, we must handle
576 // overrides. This changes urls in |kChromeUIScheme| to extension urls, and 577 // overrides. This changes urls in |kChromeUIScheme| to extension urls, and
577 // allows to use ExtensionWebUI::GetFaviconForURL. 578 // allows to use ExtensionWebUI::GetFaviconForURL.
578 GURL url(page_url); 579 GURL url(page_url);
579 ExtensionWebUI::HandleChromeURLOverride(&url, profile); 580 ExtensionWebUI::HandleChromeURLOverride(&url, profile);
580 581
581 // All extensions but the bookmark manager get their favicon from the icons 582 // All extensions but the bookmark manager get their favicon from the icons
582 // part of the manifest. 583 // part of the manifest.
583 if (url.SchemeIs(extensions::kExtensionScheme) && 584 if (url.SchemeIs(extensions::kExtensionScheme) &&
584 url.host() != extension_misc::kBookmarkManagerId) { 585 url.host() != extension_misc::kBookmarkManagerId) {
585 #if defined(ENABLE_EXTENSIONS) 586 #if defined(ENABLE_EXTENSIONS)
586 ExtensionWebUI::GetFaviconForURL(profile, url, callback); 587 ExtensionWebUI::GetFaviconForURL(profile, url, callback);
587 #else 588 #else
588 RunFaviconCallbackAsync( 589 RunFaviconCallbackAsync(
589 callback, new std::vector<favicon_base::FaviconRawBitmapResult>()); 590 callback, new std::vector<favicon_base::FaviconRawBitmapResult>());
590 #endif 591 #endif
591 return; 592 return;
592 } 593 }
593 594
594 std::vector<favicon_base::FaviconRawBitmapResult>* favicon_bitmap_results = 595 std::vector<favicon_base::FaviconRawBitmapResult>* favicon_bitmap_results =
595 new std::vector<favicon_base::FaviconRawBitmapResult>(); 596 new std::vector<favicon_base::FaviconRawBitmapResult>();
596 597
597 for (size_t i = 0; i < scale_factors.size(); ++i) { 598 for (size_t i = 0; i < favicon_scales.size(); ++i) {
598 scoped_refptr<base::RefCountedMemory> bitmap(GetFaviconResourceBytes( 599 scoped_refptr<base::RefCountedMemory> bitmap(
599 url, scale_factors[i])); 600 GetFaviconResourceBytes(url, favicon_scales[i]));
600 if (bitmap.get() && bitmap->size()) { 601 if (bitmap.get() && bitmap->size()) {
601 favicon_base::FaviconRawBitmapResult bitmap_result; 602 favicon_base::FaviconRawBitmapResult bitmap_result;
602 bitmap_result.bitmap_data = bitmap; 603 bitmap_result.bitmap_data = bitmap;
603 // Leave |bitmap_result|'s icon URL as the default of GURL(). 604 // Leave |bitmap_result|'s icon URL as the default of GURL().
604 bitmap_result.icon_type = favicon_base::FAVICON; 605 bitmap_result.icon_type = favicon_base::FAVICON;
605 favicon_bitmap_results->push_back(bitmap_result); 606 favicon_bitmap_results->push_back(bitmap_result);
606 607
607 // Assume that |bitmap| is |gfx::kFaviconSize| x |gfx::kFaviconSize| 608 // Assume that |bitmap| is |gfx::kFaviconSize| x |gfx::kFaviconSize|
608 // DIP. 609 // DIP.
609 float scale = ui::GetScaleForScaleFactor(scale_factors[i]); 610 float scale = favicon_scales[i];
610 int edge_pixel_size = 611 int edge_pixel_size =
611 static_cast<int>(gfx::kFaviconSize * scale + 0.5f); 612 static_cast<int>(gfx::kFaviconSize * scale + 0.5f);
612 bitmap_result.pixel_size = gfx::Size(edge_pixel_size, edge_pixel_size); 613 bitmap_result.pixel_size = gfx::Size(edge_pixel_size, edge_pixel_size);
613 } 614 }
614 } 615 }
615 616
616 RunFaviconCallbackAsync(callback, favicon_bitmap_results); 617 RunFaviconCallbackAsync(callback, favicon_bitmap_results);
617 } 618 }
618 619
619 // static 620 // static
620 ChromeWebUIControllerFactory* ChromeWebUIControllerFactory::GetInstance() { 621 ChromeWebUIControllerFactory* ChromeWebUIControllerFactory::GetInstance() {
621 return Singleton<ChromeWebUIControllerFactory>::get(); 622 return Singleton<ChromeWebUIControllerFactory>::get();
622 } 623 }
623 624
624 ChromeWebUIControllerFactory::ChromeWebUIControllerFactory() { 625 ChromeWebUIControllerFactory::ChromeWebUIControllerFactory() {
625 } 626 }
626 627
627 ChromeWebUIControllerFactory::~ChromeWebUIControllerFactory() { 628 ChromeWebUIControllerFactory::~ChromeWebUIControllerFactory() {
628 } 629 }
629 630
630 base::RefCountedMemory* ChromeWebUIControllerFactory::GetFaviconResourceBytes( 631 base::RefCountedMemory* ChromeWebUIControllerFactory::GetFaviconResourceBytes(
631 const GURL& page_url, ui::ScaleFactor scale_factor) const { 632 const GURL& page_url,
633 float scale) const {
634 ui::ScaleFactor scale_factor = ui::GetSupportedScaleFactor(scale);
632 #if !defined(OS_ANDROID) // Bookmarks are part of NTP on Android. 635 #if !defined(OS_ANDROID) // Bookmarks are part of NTP on Android.
633 // The bookmark manager is a chrome extension, so we have to check for it 636 // The bookmark manager is a chrome extension, so we have to check for it
634 // before we check for extension scheme. 637 // before we check for extension scheme.
635 if (page_url.host() == extension_misc::kBookmarkManagerId) 638 if (page_url.host() == extension_misc::kBookmarkManagerId)
636 return BookmarksUI::GetFaviconResourceBytes(scale_factor); 639 return BookmarksUI::GetFaviconResourceBytes(scale_factor);
637 640
638 // The extension scheme is handled in GetFaviconForURL. 641 // The extension scheme is handled in GetFaviconForURL.
639 if (page_url.SchemeIs(extensions::kExtensionScheme)) { 642 if (page_url.SchemeIs(extensions::kExtensionScheme)) {
640 NOTREACHED(); 643 NOTREACHED();
641 return NULL; 644 return NULL;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
687 #endif 690 #endif
688 691
689 // Android doesn't use the plugins pages. 692 // Android doesn't use the plugins pages.
690 if (page_url.host() == chrome::kChromeUIPluginsHost) 693 if (page_url.host() == chrome::kChromeUIPluginsHost)
691 return PluginsUI::GetFaviconResourceBytes(scale_factor); 694 return PluginsUI::GetFaviconResourceBytes(scale_factor);
692 695
693 #endif 696 #endif
694 697
695 return NULL; 698 return NULL;
696 } 699 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698