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); |
} |
} |