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