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

Unified Diff: chrome/browser/ui/webui/fileicon_source.cc

Issue 11881055: Simplify WebUI data sources. Currently WebUI data sources implement a URLDataSourceDelegate interfa… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix issue in about_ui exposed by cros tests Created 7 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/fileicon_source.cc
===================================================================
--- chrome/browser/ui/webui/fileicon_source.cc (revision 176942)
+++ chrome/browser/ui/webui/fileicon_source.cc (working copy)
@@ -13,7 +13,6 @@
#include "base/string_split.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
-#include "chrome/browser/ui/webui/chrome_url_data_manager.h"
#include "chrome/browser/ui/webui/web_ui_util.h"
#include "chrome/common/time_format.h"
#include "googleurl/src/gurl.h"
@@ -91,14 +90,21 @@
} // namespace
+FileIconSource::IconRequestDetails::IconRequestDetails() {
+}
+
+FileIconSource::IconRequestDetails::~IconRequestDetails() {
+}
+
FileIconSource::FileIconSource() {}
FileIconSource::~FileIconSource() {}
-void FileIconSource::FetchFileIcon(const FilePath& path,
- ui::ScaleFactor scale_factor,
- IconLoader::IconSize icon_size,
- int request_id) {
+void FileIconSource::FetchFileIcon(
+ const FilePath& path,
+ ui::ScaleFactor scale_factor,
+ IconLoader::IconSize icon_size,
+ const content::URLDataSource::GotDataCallback& callback) {
IconManager* im = g_browser_process->icon_manager();
gfx::Image* icon = im->LookupIcon(path, icon_size);
@@ -108,11 +114,11 @@
icon->ToImageSkia()->GetRepresentation(scale_factor).sk_bitmap(),
false, &icon_data->data());
- url_data_source()->SendResponse(request_id, icon_data);
+ callback.Run(icon_data);
} else {
// Attach the ChromeURLDataManager request ID to the history request.
IconRequestDetails details;
- details.request_id = request_id;
+ details.callback = callback;
details.scale_factor = scale_factor;
// Icon was not in cache, go fetch it slowly.
@@ -128,16 +134,17 @@
return kFileIconPath;
}
-void FileIconSource::StartDataRequest(const std::string& url_path,
- bool is_incognito,
- int request_id) {
+void FileIconSource::StartDataRequest(
+ const std::string& url_path,
+ bool is_incognito,
+ const content::URLDataSource::GotDataCallback& callback) {
std::string query;
FilePath file_path;
ui::ScaleFactor scale_factor;
IconLoader::IconSize icon_size;
GetFilePathAndQuery(url_path, &file_path, &query);
ParseQueryParams(query, &scale_factor, &icon_size);
- FetchFileIcon(file_path, scale_factor, icon_size, request_id);
+ FetchFileIcon(file_path, scale_factor, icon_size, callback);
}
std::string FileIconSource::GetMimeType(const std::string&) const {
@@ -155,9 +162,9 @@
false,
&icon_data->data());
- url_data_source()->SendResponse(details.request_id, icon_data);
+ details.callback.Run(icon_data);
} else {
// TODO(glen): send a dummy icon.
- url_data_source()->SendResponse(details.request_id, NULL);
+ details.callback.Run(NULL);
}
}

Powered by Google App Engine
This is Rietveld 408576698