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); |
} |
} |