Index: chrome/browser/ui/webui/screenshot_source.cc |
=================================================================== |
--- chrome/browser/ui/webui/screenshot_source.cc (revision 176942) |
+++ chrome/browser/ui/webui/screenshot_source.cc (working copy) |
@@ -20,7 +20,6 @@ |
#include "chrome/browser/prefs/pref_service.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/profiles/profile_manager.h" |
-#include "chrome/browser/ui/webui/chrome_url_data_manager.h" |
#include "chrome/common/chrome_paths.h" |
#include "chrome/common/pref_names.h" |
#include "chrome/common/url_constants.h" |
@@ -144,9 +143,11 @@ |
return chrome::kChromeUIScreenshotPath; |
} |
-void ScreenshotSource::StartDataRequest(const std::string& path, bool, |
- int request_id) { |
- SendScreenshot(path, request_id); |
+void ScreenshotSource::StartDataRequest( |
+ const std::string& path, |
+ bool is_incognito, |
+ const content::URLDataSource::GotDataCallback& callback) { |
+ SendScreenshot(path, callback); |
} |
std::string ScreenshotSource::GetMimeType(const std::string&) const { |
@@ -167,14 +168,15 @@ |
} |
} |
-void ScreenshotSource::SendScreenshot(const std::string& screenshot_path, |
- int request_id) { |
+void ScreenshotSource::SendScreenshot( |
+ const std::string& screenshot_path, |
+ const content::URLDataSource::GotDataCallback& callback) { |
// Strip the query param value - we only use it as a hack to ensure our |
// image gets reloaded instead of being pulled from the browser cache |
std::string path = screenshot_path.substr( |
0, screenshot_path.find_first_of("?")); |
if (path == ScreenshotSource::kScreenshotCurrent) { |
- CacheAndSendScreenshot(path, request_id, current_screenshot_); |
+ CacheAndSendScreenshot(path, callback, current_screenshot_); |
#if defined(OS_CHROMEOS) |
} else if (path.compare(0, strlen(ScreenshotSource::kScreenshotSaved), |
ScreenshotSource::kScreenshotSaved) == 0) { |
@@ -199,7 +201,7 @@ |
file_system->GetFileByResourceId( |
decoded_filename, |
base::Bind(&ScreenshotSource::GetSavedScreenshotCallback, |
- base::Unretained(this), screenshot_path, request_id), |
+ base::Unretained(this), screenshot_path, callback), |
google_apis::GetContentCallback()); |
} else { |
BrowserThread::PostTask( |
@@ -207,25 +209,25 @@ |
base::Bind(&ScreenshotSource::SendSavedScreenshot, |
base::Unretained(this), |
screenshot_path, |
- request_id, download_path.Append(decoded_filename))); |
+ callback, download_path.Append(decoded_filename))); |
} |
#endif |
} else { |
CacheAndSendScreenshot( |
- path, request_id, ScreenshotDataPtr(new ScreenshotData())); |
+ path, callback, ScreenshotDataPtr(new ScreenshotData())); |
} |
} |
#if defined(OS_CHROMEOS) |
void ScreenshotSource::SendSavedScreenshot( |
const std::string& screenshot_path, |
- int request_id, |
+ const content::URLDataSource::GotDataCallback& callback, |
const FilePath& file) { |
ScreenshotDataPtr read_bytes(new ScreenshotData); |
int64 file_size = 0; |
if (!file_util::GetFileSize(file, &file_size)) { |
- CacheAndSendScreenshot(screenshot_path, request_id, read_bytes); |
+ CacheAndSendScreenshot(screenshot_path, callback, read_bytes); |
return; |
} |
@@ -234,37 +236,36 @@ |
static_cast<int>(file_size))) |
read_bytes->clear(); |
- CacheAndSendScreenshot(screenshot_path, request_id, read_bytes); |
+ CacheAndSendScreenshot(screenshot_path, callback, read_bytes); |
} |
void ScreenshotSource::GetSavedScreenshotCallback( |
const std::string& screenshot_path, |
- int request_id, |
+ const content::URLDataSource::GotDataCallback& callback, |
drive::DriveFileError error, |
const FilePath& file, |
const std::string& unused_mime_type, |
drive::DriveFileType file_type) { |
if (error != drive::DRIVE_FILE_OK || file_type != drive::REGULAR_FILE) { |
ScreenshotDataPtr read_bytes(new ScreenshotData); |
- CacheAndSendScreenshot(screenshot_path, request_id, read_bytes); |
+ CacheAndSendScreenshot(screenshot_path, callback, read_bytes); |
return; |
} |
content::BrowserThread::PostTask( |
content::BrowserThread::FILE, FROM_HERE, |
base::Bind(&ScreenshotSource::SendSavedScreenshot, |
- base::Unretained(this), screenshot_path, request_id, file)); |
+ base::Unretained(this), screenshot_path, callback, file)); |
} |
#endif |
void ScreenshotSource::CacheAndSendScreenshot( |
const std::string& screenshot_path, |
- int request_id, |
+ const content::URLDataSource::GotDataCallback& callback, |
ScreenshotDataPtr bytes) { |
// Strip the query from the screenshot path. |
std::string path = screenshot_path.substr( |
0, screenshot_path.find_first_of("?")); |
cached_screenshots_[path] = bytes; |
- url_data_source()->SendResponse( |
- request_id, new base::RefCountedBytes(*bytes)); |
+ callback.Run(new base::RefCountedBytes(*bytes)); |
} |