Chromium Code Reviews| Index: chrome/browser/ui/webui/fallback_icon_source.cc |
| diff --git a/chrome/browser/ui/webui/fallback_icon_source.cc b/chrome/browser/ui/webui/fallback_icon_source.cc |
| index 78eae81ba79ec1e8721db6c977891c3795402c98..5ff1ef33ab61bec6e6c24b2bc05dbd6aa54025f6 100644 |
| --- a/chrome/browser/ui/webui/fallback_icon_source.cc |
| +++ b/chrome/browser/ui/webui/fallback_icon_source.cc |
| @@ -8,25 +8,18 @@ |
| #include <vector> |
| #include "base/memory/ref_counted_memory.h" |
| +#include "chrome/browser/favicon/chrome_fallback_icon_client_factory.h" |
| #include "chrome/browser/search/instant_io_context.h" |
| #include "chrome/common/favicon/fallback_icon_url_parser.h" |
| #include "chrome/common/url_constants.h" |
| -#include "grit/platform_locale_settings.h" |
| +#include "components/favicon/core/browser/fallback_icon_client.h" |
| +#include "components/favicon_base/fallback_icon_service.h" |
| +#include "components/keyed_service/core/service_access_type.h" |
| #include "net/url_request/url_request.h" |
| -#include "ui/base/l10n/l10n_util.h" |
| #include "ui/gfx/favicon_size.h" |
| -FallbackIconSource::FallbackIconSource() { |
| - std::vector<std::string> font_list; |
| -#if defined(OS_CHROMEOS) |
| - font_list.push_back("Noto Sans"); |
| -#elif defined(OS_IOS) |
| - font_list.push_back("Helvetica Neue"); |
| -#else |
| - font_list.push_back(l10n_util::GetStringUTF8(IDS_SANS_SERIF_FONT_FAMILY)); |
| -#endif |
| - fallback_icon_service_.reset( |
| - new favicon_base::FallbackIconService(font_list)); |
| +FallbackIconSource::FallbackIconSource(FallbackIconClient* fallback_icon_client) |
| + : fallback_icon_client_(fallback_icon_client) { |
| } |
| FallbackIconSource::~FallbackIconSource() { |
| @@ -48,11 +41,8 @@ void FallbackIconSource::StartDataRequest( |
| return; |
| } |
| - GURL url(parsed.url()); |
| - std::vector<unsigned char> bitmap_data = |
| - fallback_icon_service_->RenderFallbackIconBitmap( |
| - url, parsed.size_in_pixels(), parsed.style()); |
| - callback.Run(base::RefCountedBytes::TakeVector(&bitmap_data)); |
| + SendFallbackIconHelper( |
| + parsed.url(), parsed.size_in_pixels(), parsed.style(), callback); |
| } |
| std::string FallbackIconSource::GetMimeType(const std::string&) const { |
| @@ -74,10 +64,25 @@ bool FallbackIconSource::ShouldServiceRequest( |
| return URLDataSource::ShouldServiceRequest(request); |
| } |
| -void FallbackIconSource::SendDefaultResponse( |
| +void FallbackIconSource::SendFallbackIconHelper( |
| + const GURL& url, |
| + int size_in_pixels, |
| + const favicon_base::FallbackIconStyle& style, |
| const content::URLDataSource::GotDataCallback& callback) { |
| + favicon_base::FallbackIconService* fallback_icon_service = |
|
sdefresne
2015/03/16 09:11:29
Why receive the client to only use it to access th
huangs
2015/03/16 22:06:11
Done.
|
| + fallback_icon_client_->GetFallbackIconService(); |
| + if (!fallback_icon_service) { |
| + callback.Run(nullptr); |
| + return; |
| + } |
| std::vector<unsigned char> bitmap_data = |
| - fallback_icon_service_->RenderFallbackIconBitmap( |
| - GURL(), gfx::kFaviconSize, favicon_base::FallbackIconStyle()); |
| + fallback_icon_service->RenderFallbackIconBitmap( |
| + url, size_in_pixels, style); |
| callback.Run(base::RefCountedBytes::TakeVector(&bitmap_data)); |
| } |
| + |
| +void FallbackIconSource::SendDefaultResponse( |
| + const content::URLDataSource::GotDataCallback& callback) { |
| + favicon_base::FallbackIconStyle default_style; |
| + SendFallbackIconHelper(GURL(), gfx::kFaviconSize, default_style, callback); |
| +} |