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 e6d18c3ef726ca3aac0d82361e50b3f3e3fdec0a..b4e699a4b03c6a38bec0d16b98dc3d2bb5345fc0 100644 |
--- a/content/browser/devtools/renderer_overrides_handler.cc |
+++ b/content/browser/devtools/renderer_overrides_handler.cc |
@@ -203,9 +203,16 @@ void RendererOverridesHandler::InnerSwapCompositorFrame() { |
last_frame_time_ = base::TimeTicks::Now(); |
- RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( |
- host->GetView()); |
- gfx::Size screen_size_dip(view->GetRequestedRendererSize()); |
+ // FIXME: do not use previous frame metadata. |
pfeldman
2014/06/25 13:19:10
// TODO(vkuzkokov): do not ...
as per chromium cod
|
+ cc::CompositorFrameMetadata& metadata = last_compositor_frame_metadata_; |
+ |
+ float page_scale = metadata.page_scale_factor; |
+ gfx::SizeF view_size_dip = gfx::ScaleSize(metadata.viewport_size, page_scale); |
dgozman
2014/06/25 13:25:38
I'd say this is actually viewport_size_dip.
|
+ |
+ float total_bar_height = metadata.location_bar_content_translation.y() + |
dgozman
2014/06/25 13:25:38
total_bar_height_dip
|
+ metadata.overdraw_bottom_height; |
+ gfx::SizeF screen_size_dip(view_size_dip.width(), |
dgozman
2014/06/25 13:25:38
And this one is view_size_dip.
|
+ view_size_dip.height() + total_bar_height); |
std::string format; |
int quality = kDefaultScreenshotQuality; |
@@ -224,6 +231,8 @@ void RendererOverridesHandler::InnerSwapCompositorFrame() { |
&max_height); |
} |
+ RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( |
+ host->GetView()); |
blink::WebScreenInfo screen_info; |
view->GetScreenInfo(&screen_info); |
double device_scale_factor = screen_info.deviceScaleFactor; |
@@ -244,14 +253,8 @@ void RendererOverridesHandler::InnerSwapCompositorFrame() { |
if (scale <= 0) |
scale = 0.1; |
- // FIXME: do not use previous frame metadata. |
- cc::CompositorFrameMetadata& metadata = last_compositor_frame_metadata_; |
- gfx::SizeF view_size_dip = gfx::ScaleSize(metadata.viewport_size, |
- metadata.page_scale_factor); |
- |
gfx::Size snapshot_size_dip(gfx::ToRoundedSize( |
gfx::ScaleSize(view_size_dip, scale))); |
- |
if (snapshot_size_dip.width() > 0 && snapshot_size_dip.height() > 0) { |
gfx::Rect view_bounds_dip(gfx::ToRoundedSize(view_size_dip)); |
view->CopyFromCompositingSurface( |
@@ -609,6 +612,18 @@ void RendererOverridesHandler::ScreencastFrameCaptured( |
response_metadata->Set( |
devtools::Page::ScreencastFrameMetadata::kParamViewport, viewport); |
+ gfx::SizeF view_size_dip = gfx::ScaleSize(metadata.viewport_size, |
+ metadata.page_scale_factor); |
+ base::DictionaryValue* device = new base::DictionaryValue(); |
+ device->SetDouble(devtools::DOM::Rect::kParamWidth, |
+ view_size_dip.width()); |
+ device->SetDouble(devtools::DOM::Rect::kParamHeight, |
+ view_size_dip.height() + |
+ metadata.location_bar_content_translation.y() + |
+ metadata.overdraw_bottom_height); |
+ response_metadata->Set( |
+ devtools::Page::ScreencastFrameMetadata::kParamDevice, device); |
pfeldman
2014/06/25 13:19:10
This would require the roll, no? I'd rather have t
|
+ |
response->Set(devtools::Page::screencastFrame::kParamMetadata, |
response_metadata); |
} |