Move conversion methods from PageProperties up to RenderWidget
All callers that were getting there through RenderView should instead
go through RenderFrame or RenderWidget to get to the methods.
[email protected]
TBR=estade, rdevlin.cronin
Bug: 419087
Change-Id: I2b3c2198fcbfea65c7773b1a0ca8e2e15dcfd333
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1850109
Reviewed-by: Devlin <[email protected]>
Reviewed-by: Avi Drissman <[email protected]>
Commit-Queue: danakj <[email protected]>
Cr-Commit-Position: refs/heads/master@{#704366}
diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc
index 1414189..ebee2ee 100644
--- a/content/renderer/render_widget.cc
+++ b/content/renderer/render_widget.cc
@@ -2594,15 +2594,34 @@
}
void RenderWidget::ConvertViewportToWindow(blink::WebRect* rect) {
- return page_properties_->ConvertViewportToWindow(rect);
+ if (compositor_deps_->IsUseZoomForDSFEnabled()) {
+ float reverse = 1 / GetOriginalScreenInfo().device_scale_factor;
+ // TODO(oshima): We may need to allow pixel precision here as the the
+ // anchor element can be placed at half pixel.
+ gfx::Rect window_rect = gfx::ScaleToEnclosedRect(gfx::Rect(*rect), reverse);
+ rect->x = window_rect.x();
+ rect->y = window_rect.y();
+ rect->width = window_rect.width();
+ rect->height = window_rect.height();
+ }
}
void RenderWidget::ConvertViewportToWindow(blink::WebFloatRect* rect) {
- return page_properties_->ConvertViewportToWindow(rect);
+ if (compositor_deps_->IsUseZoomForDSFEnabled()) {
+ rect->x /= GetOriginalScreenInfo().device_scale_factor;
+ rect->y /= GetOriginalScreenInfo().device_scale_factor;
+ rect->width /= GetOriginalScreenInfo().device_scale_factor;
+ rect->height /= GetOriginalScreenInfo().device_scale_factor;
+ }
}
void RenderWidget::ConvertWindowToViewport(blink::WebFloatRect* rect) {
- return page_properties_->ConvertWindowToViewport(rect);
+ if (compositor_deps_->IsUseZoomForDSFEnabled()) {
+ rect->x *= GetOriginalScreenInfo().device_scale_factor;
+ rect->y *= GetOriginalScreenInfo().device_scale_factor;
+ rect->width *= GetOriginalScreenInfo().device_scale_factor;
+ rect->height *= GetOriginalScreenInfo().device_scale_factor;
+ }
}
void RenderWidget::OnRequestTextInputStateUpdate() {