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 d700dee9459362adad5459477dd16d4503bf795a..8fe1e9b4946e8849e5db7937f6ce41684cac18a4 100644 |
| --- a/content/browser/devtools/renderer_overrides_handler.cc |
| +++ b/content/browser/devtools/renderer_overrides_handler.cc |
| @@ -199,14 +199,10 @@ void RendererOverridesHandler::InnerSwapCompositorFrame() { |
| // TODO(vkuzkokov): do not use previous frame metadata. |
| cc::CompositorFrameMetadata& metadata = last_compositor_frame_metadata_; |
| - float page_scale = metadata.page_scale_factor; |
| gfx::SizeF viewport_size_dip = gfx::ScaleSize( |
| - metadata.scrollable_viewport_size, page_scale); |
| - |
| - float total_bar_height_dip = metadata.location_bar_content_translation.y() + |
| - metadata.overdraw_bottom_height; |
| - gfx::SizeF screen_size_dip(viewport_size_dip.width(), |
| - viewport_size_dip.height() + total_bar_height_dip); |
| + metadata.scrollable_viewport_size, metadata.page_scale_factor); |
| + gfx::SizeF screen_size_dip = gfx::ScaleSize(view->GetPhysicalBackingSize(), |
| + 1 / metadata.device_scale_factor); |
| std::string format; |
| int quality = kDefaultScreenshotQuality; |
| @@ -570,6 +566,17 @@ void RendererOverridesHandler::ScreencastFrameCaptured( |
| if (metadata.device_scale_factor != 0) { |
| base::DictionaryValue* response_metadata = new base::DictionaryValue(); |
| + RenderViewHost* host = GetRenderViewHostImpl(); |
| + RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( |
| + host->GetView()); |
| + if (!view) |
| + return; |
| + |
| + gfx::SizeF viewport_size_dip = gfx::ScaleSize( |
| + metadata.scrollable_viewport_size, metadata.page_scale_factor); |
| + gfx::SizeF screen_size_dip = gfx::ScaleSize( |
| + view->GetPhysicalBackingSize(), 1 / metadata.device_scale_factor); |
|
dgozman
2014/08/19 13:05:47
Does GetPhysicalBackingSize() change when top cont
aelias_OOO_until_Jul13
2014/08/19 21:28:39
It doesn't change. GetPhysicalBackingSize returns
dgozman
2014/08/20 04:47:01
Great! I remember we erroneously called method her
|
| + |
| response_metadata->SetDouble( |
| devtools::Page::ScreencastFrameMetadata::kParamDeviceScaleFactor, |
| metadata.device_scale_factor); |
| @@ -587,7 +594,9 @@ void RendererOverridesHandler::ScreencastFrameCaptured( |
| metadata.location_bar_content_translation.y()); |
| response_metadata->SetDouble( |
| devtools::Page::ScreencastFrameMetadata::kParamOffsetBottom, |
| - metadata.overdraw_bottom_height); |
| + screen_size_dip.height() - |
| + metadata.location_bar_content_translation.y() - |
| + viewport_size_dip.height()); |
| base::DictionaryValue* viewport = new base::DictionaryValue(); |
| viewport->SetDouble(devtools::DOM::Rect::kParamX, |
| @@ -601,16 +610,12 @@ void RendererOverridesHandler::ScreencastFrameCaptured( |
| response_metadata->Set( |
| devtools::Page::ScreencastFrameMetadata::kParamViewport, viewport); |
| - gfx::SizeF viewport_size_dip = gfx::ScaleSize( |
| - metadata.scrollable_viewport_size, metadata.page_scale_factor); |
| response_metadata->SetDouble( |
| devtools::Page::ScreencastFrameMetadata::kParamDeviceWidth, |
| - viewport_size_dip.width()); |
| + screen_size_dip.width()); |
| response_metadata->SetDouble( |
| devtools::Page::ScreencastFrameMetadata::kParamDeviceHeight, |
| - viewport_size_dip.height() + |
| - metadata.location_bar_content_translation.y() + |
| - metadata.overdraw_bottom_height); |
| + screen_size_dip.height()); |
| response_metadata->SetDouble( |
| devtools::Page::ScreencastFrameMetadata::kParamScrollOffsetX, |
| metadata.root_scroll_offset.x()); |