Chromium Code Reviews| 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 3e9ffc3c203f244933567f35ed4f117cf6adc0d2..36f54929193f615a019ad9784626ad5a51996c4f 100644 |
| --- a/content/browser/devtools/renderer_overrides_handler.cc |
| +++ b/content/browser/devtools/renderer_overrides_handler.cc |
| @@ -12,6 +12,7 @@ |
| #include "base/files/file_path.h" |
| #include "base/strings/string16.h" |
| #include "base/values.h" |
| +#include "cc/output/compositor_frame_metadata.h" |
| #include "content/browser/child_process_security_policy_impl.h" |
| #include "content/browser/devtools/devtools_protocol_constants.h" |
| #include "content/browser/devtools/devtools_tracing_handler.h" |
| @@ -170,7 +171,7 @@ void RendererOverridesHandler::OnSwapCompositorFrame() { |
| base::Bind(&RendererOverridesHandler::ScreenshotCaptured, |
| weak_factory_.GetWeakPtr(), |
| scoped_refptr<DevToolsProtocol::Command>(), format, quality, |
| - scale)); |
| + view_port->GetCompositorFrameMetadata())); |
| } |
| @@ -289,7 +290,7 @@ RendererOverridesHandler::PageCaptureScreenshot( |
| if (success) { |
| base::DictionaryValue* result = new base::DictionaryValue(); |
| result->SetString( |
| - devtools::Page::captureScreenshot::kResponseData, base64_data); |
| + devtools::Page::kData, base64_data); |
| return command->SuccessResponse(result); |
| } |
| return command->InternalErrorResponse("Unable to base64encode screenshot"); |
| @@ -304,7 +305,8 @@ RendererOverridesHandler::PageCaptureScreenshot( |
| view_port->CopyFromCompositingSurface( |
| view_bounds, snapshot_size, |
| base::Bind(&RendererOverridesHandler::ScreenshotCaptured, |
| - weak_factory_.GetWeakPtr(), command, format, quality, scale)); |
| + weak_factory_.GetWeakPtr(), command, format, quality, |
| + view_port->GetCompositorFrameMetadata())); |
|
Sami
2013/08/28 15:42:50
I think reading the screenshot and the frame metad
|
| return command->AsyncResponsePromise(); |
| } |
| @@ -327,7 +329,7 @@ void RendererOverridesHandler::ScreenshotCaptured( |
| scoped_refptr<DevToolsProtocol::Command> command, |
| const std::string& format, |
| int quality, |
| - double scale, |
| + const cc::CompositorFrameMetadata& metadata, |
| bool success, |
| const SkBitmap& bitmap) { |
| if (!success) { |
| @@ -380,14 +382,27 @@ void RendererOverridesHandler::ScreenshotCaptured( |
| return; |
| } |
| + base::DictionaryValue* viewport = new base::DictionaryValue(); |
| + viewport->SetDouble(devtools::Page::kDeviceScaleFactor, |
| + metadata.device_scale_factor); |
| + viewport->SetDouble(devtools::Page::kPageScaleFactor, |
| + metadata.page_scale_factor); |
| + viewport->SetDouble(devtools::Page::kScrollLeft, |
| + metadata.root_scroll_offset.x()); |
| + viewport->SetDouble(devtools::Page::kScrollTop, |
| + metadata.root_scroll_offset.y()); |
| + viewport->SetDouble(devtools::Page::kViewportWidth, |
| + metadata.viewport_size.width()); |
| + viewport->SetDouble(devtools::Page::kViewportHeight, |
| + metadata.viewport_size.height()); |
| + |
| base::DictionaryValue* response = new base::DictionaryValue(); |
| + response->SetString(devtools::Page::kData, base_64_data); |
| + response->Set(devtools::Page::kViewport, viewport); |
| + |
| if (command) { |
| - response->SetString( |
| - devtools::Page::captureScreenshot::kResponseData, base_64_data); |
| SendAsyncResponse(command->SuccessResponse(response)); |
| } else { |
| - response->SetString( |
| - devtools::Page::screencastFrame::kResponseData, base_64_data); |
| SendNotification(devtools::Page::screencastFrame::kName, response); |
| } |
| } |