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 431636ebcbb69fec0688c43f60a0297a3d96cfa0..d5836a8179efe7a1e6b7ffd35b74f5d5ce454ad7 100644 |
--- a/content/renderer/gpu/gpu_benchmarking_extension.cc |
+++ b/content/renderer/gpu/gpu_benchmarking_extension.cc |
@@ -974,11 +974,18 @@ bool GpuBenchmarking::Tap(gin::Arguments* args) { |
return false; |
} |
- std::unique_ptr<SyntheticTapGestureParams> gesture_params( |
- new SyntheticTapGestureParams); |
- |
// Convert coordinates from CSS pixels to density independent pixels (DIPs). |
float page_scale_factor = context.web_view()->PageScaleFactor(); |
+ gfx::Rect rect = context.render_view_impl()->GetWidget()->ViewRect(); |
+ rect -= rect.OffsetFromOrigin(); |
+ if (!rect.Contains(position_x * page_scale_factor, |
+ position_y * page_scale_factor)) { |
+ args->ThrowError(); |
+ return false; |
+ } |
+ |
+ std::unique_ptr<SyntheticTapGestureParams> gesture_params( |
+ new SyntheticTapGestureParams); |
gesture_params->position.SetPoint(position_x * page_scale_factor, |
position_y * page_scale_factor); |