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

Unified Diff: content/browser/devtools/renderer_overrides_handler.cc

Issue 190693002: Migrate Telemetry from beginWindowSnapshotPNG to Page.captureScreenshot (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 6 years, 7 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: content/browser/devtools/renderer_overrides_handler.cc
diff --git a/content/browser/devtools/renderer_overrides_handler.cc b/content/browser/devtools/renderer_overrides_handler.cc
index 5f620084cfef55e40924886f5701cab5bd5268d0..4d869887d3a7787984b59f023da3d751bd11c6df 100644
--- a/content/browser/devtools/renderer_overrides_handler.cc
+++ b/content/browser/devtools/renderer_overrides_handler.cc
@@ -470,43 +470,37 @@ RendererOverridesHandler::PageNavigateToHistoryEntry(
scoped_refptr<DevToolsProtocol::Response>
RendererOverridesHandler::PageCaptureScreenshot(
scoped_refptr<DevToolsProtocol::Command> command) {
- RenderViewHost* host = agent_->GetRenderViewHost();
+ RenderViewHostImpl* host = static_cast<RenderViewHostImpl*>(
+ agent_->GetRenderViewHost());
if (!host->GetView())
return command->InternalErrorResponse("Unable to access the view");
- gfx::Rect view_bounds = host->GetView()->GetViewBounds();
- gfx::Rect snapshot_bounds(view_bounds.size());
- gfx::Size snapshot_size = snapshot_bounds.size();
-
- std::vector<unsigned char> png_data;
- if (ui::GrabViewSnapshot(host->GetView()->GetNativeView(),
- &png_data,
- snapshot_bounds)) {
- if (png_data.size())
- return command->SuccessResponse(CreateScreenshotResponse(png_data));
- else
- return command->InternalErrorResponse("Unable to capture screenshot");
- }
-
- ui::GrabViewSnapshotAsync(
- host->GetView()->GetNativeView(),
- snapshot_bounds,
- base::ThreadTaskRunnerHandle::Get(),
+ host->GetSnapshotFromBrowser(
base::Bind(&RendererOverridesHandler::ScreenshotCaptured,
- weak_factory_.GetWeakPtr(), command));
+ weak_factory_.GetWeakPtr(), command));
return command->AsyncResponsePromise();
}
void RendererOverridesHandler::ScreenshotCaptured(
scoped_refptr<DevToolsProtocol::Command> command,
- scoped_refptr<base::RefCountedBytes> png_data) {
- if (png_data) {
- SendAsyncResponse(
- command->SuccessResponse(CreateScreenshotResponse(png_data->data())));
- } else {
+ const unsigned char* png_data,
+ size_t png_size) {
+ if (!png_data || !png_size) {
SendAsyncResponse(
command->InternalErrorResponse("Unable to capture screenshot"));
+ return;
}
+
+ std::string base_64_data;
+ base::Base64Encode(
+ base::StringPiece(reinterpret_cast<const char*>(png_data), png_size),
+ &base_64_data);
+
+ base::DictionaryValue* response = new base::DictionaryValue();
+ response->SetString(devtools::Page::screencastFrame::kParamData,
+ base_64_data);
+
+ SendAsyncResponse(command->SuccessResponse(response));
}
scoped_refptr<DevToolsProtocol::Response>
« no previous file with comments | « content/browser/devtools/renderer_overrides_handler.h ('k') | content/browser/renderer_host/render_widget_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698