}
void NativeWindow::CapturePage(const gfx::Rect& rect,
- const base::FilePath& path,
const CapturePageCallback& callback) {
GetWebContents()->GetRenderViewHost()->CopyFromBackingStore(
rect,
gfx::Size(),
base::Bind(&NativeWindow::OnCapturePageDone,
base::Unretained(this),
- path,
callback));
}
}
}
-void NativeWindow::OnCapturePageDone(const base::FilePath& filename,
- const CapturePageCallback& callback,
+void NativeWindow::OnCapturePageDone(const CapturePageCallback& callback,
bool succeed,
const SkBitmap& bitmap) {
- if (!succeed) {
- callback.Run(false);
- return;
- }
-
std::vector<unsigned char> data;
- bool encoded = gfx::PNGCodec::EncodeBGRASkBitmap(bitmap, true, &data);
- if (!encoded) {
- callback.Run(false);
- return;
- }
-
- int written = file_util::WriteFile(
- filename,
- reinterpret_cast<const char*>(&data[0]),
- data.size());
- callback.Run(written > 0);
+ if (succeed)
+ gfx::PNGCodec::EncodeBGRASkBitmap(bitmap, true, &data);
+ callback.Run(data);
}
void NativeWindow::OnRendererMessage(const string16& channel,
public content::WebContentsObserver,
public content::NotificationObserver {
public:
+ typedef base::Callback<void(const std::vector<unsigned char>& buffer)>
+ CapturePageCallback;
+
virtual ~NativeWindow();
// Create window with existing WebContents.
virtual void RestartHangMonitorTimeout();
virtual bool SetIcon(const std::string& path);
- // Captures the page with |rect| and saves the image to |path|, |callback|
- // would be called when capturing is done.
- typedef base::Callback<void(bool succeed)> CapturePageCallback;
+ // Captures the page with |rect|, |callback| would be called when capturing is
+ // done.
virtual void CapturePage(const gfx::Rect& rect,
- const base::FilePath& path,
const CapturePageCallback& callback);
// The same with closing a tab in a real browser.
void RendererUnresponsiveDelayed();
// Called when CapturePage has done.
- void OnCapturePageDone(const base::FilePath& filename,
- const CapturePageCallback& callback,
+ void OnCapturePageDone(const CapturePageCallback& callback,
bool succeed,
const SkBitmap& bitmap);