| Index: chrome/browser/ui/webui/screenshot_source.h
|
| diff --git a/chrome/browser/ui/webui/screenshot_source.h b/chrome/browser/ui/webui/screenshot_source.h
|
| index 4b071d3df0acf92a53068593cca4260e1f4625f2..3bfac8a3cdfa4741a381632a20f6f60e211da18c 100644
|
| --- a/chrome/browser/ui/webui/screenshot_source.h
|
| +++ b/chrome/browser/ui/webui/screenshot_source.h
|
| @@ -5,14 +5,19 @@
|
| #ifndef CHROME_BROWSER_UI_WEBUI_SCREENSHOT_SOURCE_H_
|
| #define CHROME_BROWSER_UI_WEBUI_SCREENSHOT_SOURCE_H_
|
|
|
| +#include <map>
|
| #include <string>
|
| #include <vector>
|
|
|
| #include "base/basictypes.h"
|
| +#include "base/memory/linked_ptr.h"
|
| #include "chrome/browser/ui/webui/chrome_url_data_manager.h"
|
|
|
| +typedef std::vector<unsigned char> ScreenshotData;
|
| +typedef linked_ptr<ScreenshotData> ScreenshotDataPtr;
|
| +
|
| // ScreenshotSource is the data source that serves screenshots (saved
|
| -// or current) to the bug report html ui
|
| +// or current) to the bug report html ui.
|
| class ScreenshotSource : public ChromeURLDataManager::DataSource {
|
| public:
|
| explicit ScreenshotSource(
|
| @@ -26,12 +31,36 @@ class ScreenshotSource : public ChromeURLDataManager::DataSource {
|
|
|
| virtual std::string GetMimeType(const std::string&) const;
|
|
|
| - std::vector<unsigned char> GetScreenshot(const std::string& path);
|
| + // Get the screenshot specified by the given relative path that we've cached
|
| + // from a previous request to the screenshots source.
|
| + // Note: This method strips the query string from the given path.
|
| + ScreenshotDataPtr GetCachedScreenshot(const std::string& screenshot_path);
|
|
|
| private:
|
| virtual ~ScreenshotSource();
|
|
|
| - std::vector<unsigned char> current_screenshot_;
|
| + // Send the screenshot specified by the given relative path to the requestor.
|
| + // This is the ancestor for SendSavedScreenshot and CacheAndSendScreenshot.
|
| + // All calls to send a screenshot should only call this method.
|
| + // Note: This method strips the query string from the given path.
|
| + void SendScreenshot(const std::string& screenshot_path, int request_id);
|
| +#if defined(OS_CHROMEOS)
|
| + // Send a saved screenshot image file specified by the given screenshot path
|
| + // to the requestor.
|
| + void SendSavedScreenshot(const std::string& screenshot_path, int request_id);
|
| +#endif
|
| + // Sends the screenshot data to the requestor while caching it locally to the
|
| + // class instance, indexed by path.
|
| + void CacheAndSendScreenshot(const std::string& screenshot_path,
|
| + int request_id,
|
| + ScreenshotDataPtr bytes);
|
| +
|
| + // Pointer to the screenshot data for the current screenshot.
|
| + ScreenshotDataPtr current_screenshot_;
|
| +
|
| + // Key: Relative path to the screenshot (including filename)
|
| + // Value: Pointer to the screenshot data associated with the path.
|
| + std::map<std::string, ScreenshotDataPtr> cached_screenshots_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ScreenshotSource);
|
| };
|
|
|