| Index: content/browser/devtools/devtools_frame_trace_recorder.cc
|
| diff --git a/content/browser/devtools/devtools_frame_trace_recorder.cc b/content/browser/devtools/devtools_frame_trace_recorder.cc
|
| index 0771f8f1908760c01a442e5d321b112dd9a20e83..8d4696fcc533b803bb0eea1fa3e835c0ce77b2cb 100644
|
| --- a/content/browser/devtools/devtools_frame_trace_recorder.cc
|
| +++ b/content/browser/devtools/devtools_frame_trace_recorder.cc
|
| @@ -91,14 +91,20 @@ void CaptureFrame(RenderFrameHostImpl* host,
|
| int current_frame_count = base::subtle::NoBarrier_Load(&frame_data_count);
|
| if (current_frame_count >= kMaximumFrameDataCount)
|
| return;
|
| - float scale = metadata.page_scale_factor;
|
| - float area = metadata.scrollable_viewport_size.GetArea();
|
| - if (area * scale * scale > kFrameAreaLimit)
|
| - scale = sqrt(kFrameAreaLimit / area);
|
| - gfx::Size snapshot_size(gfx::ToRoundedSize(gfx::ScaleSize(
|
| - metadata.scrollable_viewport_size, scale)));
|
| +
|
| + gfx::Size src_size = gfx::ToCeiledSize(gfx::ScaleSize(
|
| + metadata.scrollable_viewport_size, metadata.page_scale_factor));
|
| + gfx::Size snapshot_size;
|
| + float area = src_size.GetArea();
|
| + if (area <= kFrameAreaLimit) {
|
| + snapshot_size = src_size;
|
| + } else {
|
| + double scale = sqrt(kFrameAreaLimit / area);
|
| + snapshot_size = gfx::ScaleToCeiledSize(src_size, scale);
|
| + }
|
| +
|
| view->CopyFromCompositingSurface(
|
| - gfx::Rect(), snapshot_size,
|
| + gfx::Rect(gfx::Point(), src_size), snapshot_size,
|
| base::Bind(FrameCaptured, base::TimeTicks::Now()),
|
| kN32_SkColorType);
|
| }
|
|
|