Index: chrome/browser/ui/webui/favicon_source.cc |
=================================================================== |
--- chrome/browser/ui/webui/favicon_source.cc (revision 176443) |
+++ chrome/browser/ui/webui/favicon_source.cc (working copy) |
@@ -9,6 +9,7 @@ |
#include "chrome/browser/favicon/favicon_service_factory.h" |
#include "chrome/browser/history/top_sites.h" |
#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/ui/webui/chrome_url_data_manager.h" |
#include "chrome/browser/ui/webui/web_ui_util.h" |
#include "chrome/common/url_constants.h" |
#include "grit/locale_settings.h" |
@@ -18,27 +19,18 @@ |
#include "ui/base/resource/resource_bundle.h" |
FaviconSource::FaviconSource(Profile* profile, IconType type) |
- : DataSource(type == FAVICON ? chrome::kChromeUIFaviconHost : |
- chrome::kChromeUITouchIconHost, |
- MessageLoop::current()) { |
- Init(profile, type); |
+ : profile_(profile->GetOriginalProfile()), |
+ icon_types_(type == FAVICON ? history::FAVICON : |
+ history::TOUCH_PRECOMPOSED_ICON | history::TOUCH_ICON | |
+ history::FAVICON) { |
} |
-FaviconSource::FaviconSource(Profile* profile, |
- IconType type, |
- const std::string& source_name) |
- : DataSource(source_name, MessageLoop::current()) { |
- Init(profile, type); |
-} |
- |
FaviconSource::~FaviconSource() { |
} |
-void FaviconSource::Init(Profile* profile, IconType type) { |
- profile_ = profile->GetOriginalProfile(); |
- icon_types_ = type == FAVICON ? history::FAVICON : |
- history::TOUCH_PRECOMPOSED_ICON | history::TOUCH_ICON | |
- history::FAVICON; |
+std::string FaviconSource::GetSource() { |
+ return icon_types_ == history::FAVICON ? |
+ chrome::kChromeUIFaviconHost : chrome::kChromeUITouchIconHost; |
} |
void FaviconSource::StartDataRequest(const std::string& path, |
@@ -123,7 +115,7 @@ |
for (size_t i = 0; i < arraysize(history::kPrepopulatedPages); i++) { |
if (url.spec() == |
l10n_util::GetStringUTF8(history::kPrepopulatedPages[i].url_id)) { |
- SendResponse(request_id, |
+ url_data_source()->SendResponse(request_id, |
ResourceBundle::GetSharedInstance().LoadDataResourceBytesForScale( |
history::kPrepopulatedPages[i].favicon_id, |
scale_factor)); |
@@ -168,7 +160,8 @@ |
const history::FaviconBitmapResult& bitmap_result) { |
if (bitmap_result.is_valid()) { |
// Forward the data along to the networking system. |
- SendResponse(request.request_id, bitmap_result.bitmap_data); |
+ url_data_source()->SendResponse( |
+ request.request_id, bitmap_result.bitmap_data); |
} else if (!HandleMissingResource(request)) { |
SendDefaultResponse(request); |
} |
@@ -200,5 +193,5 @@ |
default_favicons_[favicon_index] = default_favicon; |
} |
- SendResponse(icon_request.request_id, default_favicon); |
+ url_data_source()->SendResponse(icon_request.request_id, default_favicon); |
} |