Index: content/renderer/gpu/gpu_benchmarking_extension.cc |
diff --git a/content/renderer/gpu/gpu_benchmarking_extension.cc b/content/renderer/gpu/gpu_benchmarking_extension.cc |
index 88e14fac59ae60e80a49bf1f4cd6e94be46c9a73..e5454049a5d982928b16c55ccb8eac99c6bccd03 100644 |
--- a/content/renderer/gpu/gpu_benchmarking_extension.cc |
+++ b/content/renderer/gpu/gpu_benchmarking_extension.cc |
@@ -854,28 +854,40 @@ float GpuBenchmarking::VisualViewportY() { |
GpuBenchmarkingContext context; |
if (!context.Init(false)) |
return 0.0; |
- return context.web_view()->visualViewportOffset().y; |
+ float y = context.web_view()->visualViewportOffset().y; |
+ blink::WebRect rect(0, y, 0, 0); |
+ context.render_view_impl()->convertViewportToWindow(&rect); |
+ return rect.y; |
} |
float GpuBenchmarking::VisualViewportX() { |
GpuBenchmarkingContext context; |
if (!context.Init(false)) |
return 0.0; |
- return context.web_view()->visualViewportOffset().x; |
+ float x = context.web_view()->visualViewportOffset().x; |
+ blink::WebRect rect(x, 0, 0, 0); |
+ context.render_view_impl()->convertViewportToWindow(&rect); |
+ return rect.x; |
} |
float GpuBenchmarking::VisualViewportHeight() { |
GpuBenchmarkingContext context; |
if (!context.Init(false)) |
return 0.0; |
- return context.web_view()->visualViewportSize().height; |
+ float height = context.web_view()->visualViewportSize().height; |
+ blink::WebRect rect(0, 0, 0, height); |
+ context.render_view_impl()->convertViewportToWindow(&rect); |
+ return rect.height; |
} |
float GpuBenchmarking::VisualViewportWidth() { |
GpuBenchmarkingContext context; |
if (!context.Init(false)) |
return 0.0; |
- return context.web_view()->visualViewportSize().width; |
+ float width = context.web_view()->visualViewportSize().width; |
+ blink::WebRect rect(0, 0, width, 0); |
+ context.render_view_impl()->convertViewportToWindow(&rect); |
+ return rect.width; |
} |
bool GpuBenchmarking::Tap(gin::Arguments* args) { |