| Index: chrome/browser/ui/webui/favicon_source.cc
|
| diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui/favicon_source.cc
|
| index c7977999300299d78e100628ef983d61a07ccc8d..88a805af3d22d85d647b9ee35b567ba954a407c4 100644
|
| --- a/chrome/browser/ui/webui/favicon_source.cc
|
| +++ b/chrome/browser/ui/webui/favicon_source.cc
|
| @@ -10,7 +10,7 @@
|
| #include "base/bind_helpers.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "chrome/browser/favicon/favicon_service_factory.h"
|
| -#include "chrome/browser/history/top_sites.h"
|
| +#include "chrome/browser/history/top_sites_factory.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/search/instant_io_context.h"
|
| #include "chrome/browser/sync/open_tabs_ui_delegate.h"
|
| @@ -19,6 +19,7 @@
|
| #include "chrome/common/favicon/favicon_url_parser.h"
|
| #include "chrome/common/url_constants.h"
|
| #include "chrome/grit/locale_settings.h"
|
| +#include "components/history/core/browser/top_sites.h"
|
| #include "net/url_request/url_request.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| #include "ui/base/layout.h"
|
| @@ -85,7 +86,7 @@ void FaviconSource::StartDataRequest(
|
| if (parsed.is_icon_url) {
|
| // TODO(michaelbai): Change GetRawFavicon to support combination of
|
| // IconType.
|
| - favicon_service->GetRawFavicon(
|
| + favicon_service->GetRawFavicon(
|
| url,
|
| favicon_base::FAVICON,
|
| desired_size_in_pixel,
|
| @@ -96,17 +97,19 @@ void FaviconSource::StartDataRequest(
|
| callback, url, parsed.size_in_dip, parsed.device_scale_factor)),
|
| &cancelable_task_tracker_);
|
| } else {
|
| - // Intercept requests for prepopulated pages.
|
| - for (int i = 0; i < history::kPrepopulatedPagesCount; i++) {
|
| - if (url.spec() ==
|
| - l10n_util::GetStringUTF8(history::kPrepopulatedPages[i].url_id)) {
|
| - ui::ScaleFactor resource_scale_factor =
|
| - ui::GetSupportedScaleFactor(parsed.device_scale_factor);
|
| - callback.Run(
|
| - ResourceBundle::GetSharedInstance().LoadDataResourceBytesForScale(
|
| - history::kPrepopulatedPages[i].favicon_id,
|
| - resource_scale_factor));
|
| - return;
|
| + // Intercept requests for prepopulated pages if TopSites exists.
|
| + scoped_refptr<history::TopSites> top_sites =
|
| + TopSitesFactory::GetForProfile(profile_);
|
| + if (top_sites) {
|
| + for (const auto& prepopulated_page : top_sites->GetPrepopulatedPages()) {
|
| + if (url == prepopulated_page.url.url) {
|
| + ui::ScaleFactor resource_scale_factor =
|
| + ui::GetSupportedScaleFactor(parsed.device_scale_factor);
|
| + callback.Run(
|
| + ResourceBundle::GetSharedInstance().LoadDataResourceBytesForScale(
|
| + prepopulated_page.favicon_id, resource_scale_factor));
|
| + return;
|
| + }
|
| }
|
| }
|
|
|
|
|