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 1fd66da0607687ec7f5db3d6b05cb8ec8ac6daa1..5f620084cfef55e40924886f5701cab5bd5268d0 100644 |
--- a/content/browser/devtools/renderer_overrides_handler.cc |
+++ b/content/browser/devtools/renderer_overrides_handler.cc |
@@ -43,6 +43,8 @@ |
#include "third_party/WebKit/public/web/WebInputEvent.h" |
#include "ui/gfx/codec/jpeg_codec.h" |
#include "ui/gfx/codec/png_codec.h" |
+#include "ui/gfx/display.h" |
+#include "ui/gfx/screen.h" |
#include "ui/gfx/size_conversions.h" |
#include "ui/snapshot/snapshot.h" |
#include "url/gurl.h" |
@@ -204,13 +206,16 @@ void RendererOverridesHandler::InnerSwapCompositorFrame() { |
double scale = 1; |
ParseCaptureParameters(screencast_command_.get(), &format, &quality, &scale); |
- RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( |
- host->GetView()); |
+ const gfx::Display& display = |
+ gfx::Screen::GetNativeScreen()->GetPrimaryDisplay(); |
+ float device_scale_factor = display.device_scale_factor(); |
gfx::Rect view_bounds = host->GetView()->GetViewBounds(); |
- gfx::Size snapshot_size = gfx::ToFlooredSize( |
- gfx::ScaleSize(view_bounds.size(), scale)); |
+ gfx::Size snapshot_size(gfx::ToCeiledSize( |
+ gfx::ScaleSize(view_bounds.size(), scale / device_scale_factor))); |
+ RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>( |
+ host->GetView()); |
view->CopyFromCompositingSurface( |
view_bounds, snapshot_size, |
base::Bind(&RendererOverridesHandler::ScreencastFrameCaptured, |