Commit 9f19adc8 authored by Dave Tapuska's avatar Dave Tapuska Committed by Commit Bot

Adjust VisibleViewportSize to be in DIPs.

This fixes failing tests that are testing the reception of received
bounds as the DIPs -> Blink Space -> DIPs caused a larger rectangle.

BUG=1131389

Change-Id: Ie3be0990060d7252d70702d7abd72c1a3c7463ac
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2425397
Commit-Queue: Dave Tapuska <dtapuska@chromium.org>
Reviewed-by: default avatardanakj <danakj@chromium.org>
Cr-Commit-Position: refs/heads/master@{#809954}
parent 38fddca3
......@@ -179,8 +179,8 @@ void WebExternalWidgetImpl::UpdateVisualProperties(
viz::LocalSurfaceIdAllocation()),
visual_properties.compositor_viewport_pixel_rect,
visual_properties.screen_info);
widget_base_->SetVisibleViewportSize(
widget_base_->DIPsToBlinkSpace(visual_properties.visible_viewport_size));
widget_base_->SetVisibleViewportSizeInDIPs(
visual_properties.visible_viewport_size);
Resize(WebSize(widget_base_->DIPsToBlinkSpace(visual_properties.new_size)));
client_->DidUpdateVisualProperties();
}
......@@ -204,7 +204,7 @@ void WebExternalWidgetImpl::SetScreenRects(
}
gfx::Size WebExternalWidgetImpl::VisibleViewportSizeInDIPs() {
return widget_base_->BlinkSpaceToDIPs(widget_base_->VisibleViewportSize());
return widget_base_->VisibleViewportSizeInDIPs();
}
void WebExternalWidgetImpl::SetPendingWindowRect(
......
......@@ -502,7 +502,7 @@ void WebPagePopupImpl::SetScreenRects(const gfx::Rect& widget_screen_rect,
}
gfx::Size WebPagePopupImpl::VisibleViewportSizeInDIPs() {
return widget_base_->BlinkSpaceToDIPs(widget_base_->VisibleViewportSize());
return widget_base_->VisibleViewportSizeInDIPs();
}
void WebPagePopupImpl::SetPendingWindowRect(
......@@ -813,8 +813,8 @@ void WebPagePopupImpl::UpdateVisualProperties(
viz::LocalSurfaceIdAllocation()),
visual_properties.compositor_viewport_pixel_rect,
visual_properties.screen_info);
widget_base_->SetVisibleViewportSize(
widget_base_->DIPsToBlinkSpace(visual_properties.visible_viewport_size));
widget_base_->SetVisibleViewportSizeInDIPs(
visual_properties.visible_viewport_size);
Resize(WebSize(widget_base_->DIPsToBlinkSpace(visual_properties.new_size)));
}
......
......@@ -754,10 +754,12 @@ void WebFrameWidgetBase::UpdateVisualProperties(
}
}
gfx::Size old_visible_viewport_size = widget_base_->VisibleViewportSize();
gfx::Size old_visible_viewport_size_in_dips =
widget_base_->VisibleViewportSizeInDIPs();
ApplyVisualPropertiesSizing(visual_properties);
if (old_visible_viewport_size != widget_base_->VisibleViewportSize()) {
if (old_visible_viewport_size_in_dips !=
widget_base_->VisibleViewportSizeInDIPs()) {
ForEachLocalFrameControlledByWidget(
local_root_->GetFrame(),
WTF::BindRepeating([](WebLocalFrame* local_frame) {
......@@ -771,7 +773,7 @@ void WebFrameWidgetBase::UpdateVisualProperties(
remote_frame->Client()->DidChangeVisibleViewportSize(
visible_viewport_size);
},
widget_base_->BlinkSpaceToDIPs(widget_base_->VisibleViewportSize())));
widget_base_->VisibleViewportSizeInDIPs()));
}
// All non-top-level Widgets (child local-root frames, Portals, GuestViews,
......@@ -1228,7 +1230,7 @@ void WebFrameWidgetBase::SetScreenRects(const gfx::Rect& widget_screen_rect,
}
gfx::Size WebFrameWidgetBase::VisibleViewportSizeInDIPs() {
return widget_base_->BlinkSpaceToDIPs(widget_base_->VisibleViewportSize());
return widget_base_->VisibleViewportSizeInDIPs();
}
void WebFrameWidgetBase::SetPendingWindowRect(
......
......@@ -1188,8 +1188,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
// Store this even when auto-resizing, it is the size of the full viewport
// used for clipping, and this value is propagated down the Widget
// hierarchy via the VisualProperties waterfall.
widget_base_->SetVisibleViewportSize(
widget_base_->DIPsToBlinkSpace(visual_properties.visible_viewport_size));
widget_base_->SetVisibleViewportSizeInDIPs(
visual_properties.visible_viewport_size);
// Widgets in a WebView's frame tree without a local main frame
// set the size of the WebView to be the |visible_viewport_size|, in order
......@@ -1199,7 +1199,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
// main frame do not do this in order to not clobber the source of truth in
// the main frame.
if (!View()->MainFrameImpl()) {
View()->Resize(WebSize(widget_base_->VisibleViewportSize()));
View()->Resize(WebSize(widget_base_->DIPsToBlinkSpace(
widget_base_->VisibleViewportSizeInDIPs())));
}
Resize(WebSize(widget_base_->DIPsToBlinkSpace(visual_properties.new_size)));
......
......@@ -222,7 +222,7 @@ void WebViewFrameWidget::EnableDeviceEmulation(
device_emulator_ = MakeGarbageCollected<ScreenMetricsEmulator>(
this, widget_base_->GetScreenInfo(), size_in_dips,
widget_base_->BlinkSpaceToDIPs(widget_base_->VisibleViewportSize()),
widget_base_->VisibleViewportSizeInDIPs(),
widget_base_->WidgetScreenRect(), widget_base_->WindowScreenRect());
}
device_emulator_->ChangeEmulationParams(parameters);
......@@ -443,8 +443,7 @@ void WebViewFrameWidget::SetScreenInfoAndSize(
DCHECK(!web_view_->AutoResizeMode());
UpdateScreenInfo(screen_info);
widget_base_->SetVisibleViewportSize(
widget_base_->DIPsToBlinkSpace(visible_viewport_size_in_dips));
widget_base_->SetVisibleViewportSizeInDIPs(visible_viewport_size_in_dips);
Resize(WebSize(widget_base_->DIPsToBlinkSpace(widget_size_in_dips)));
}
......@@ -537,14 +536,16 @@ void WebViewFrameWidget::ApplyVisualPropertiesSizing(
// Store this even when auto-resizing, it is the size of the full viewport
// used for clipping, and this value is propagated down the Widget
// hierarchy via the VisualProperties waterfall.
widget_base_->SetVisibleViewportSize(
widget_base_->DIPsToBlinkSpace(visual_properties.visible_viewport_size));
widget_base_->SetVisibleViewportSizeInDIPs(
visual_properties.visible_viewport_size);
if (!AutoResizeMode()) {
size_ = widget_base_->DIPsToBlinkSpace(visual_properties.new_size);
View()->ResizeWithBrowserControls(
WebSize(size_), WebSize(widget_base_->VisibleViewportSize()),
WebSize(size_),
WebSize(widget_base_->DIPsToBlinkSpace(
widget_base_->VisibleViewportSizeInDIPs())),
visual_properties.browser_controls_params);
}
}
......
......@@ -257,14 +257,14 @@ class PLATFORM_EXPORT WidgetBase : public mojom::blink::Widget,
void SetScreenRects(const gfx::Rect& widget_screen_rect,
const gfx::Rect& window_screen_rect);
// Returns the visible viewport size (blink coordinate space).
const gfx::Size& VisibleViewportSize() const {
return visible_viewport_size_;
// Returns the visible viewport size.
const gfx::Size& VisibleViewportSizeInDIPs() const {
return visible_viewport_size_in_dips_;
}
// Set the visible viewport size (blink coordinate space).
void SetVisibleViewportSize(const gfx::Size& size) {
visible_viewport_size_ = size;
// Set the visible viewport size.
void SetVisibleViewportSizeInDIPs(const gfx::Size& size) {
visible_viewport_size_in_dips_ = size;
}
// Converts from DIPs to Blink coordinate space (ie. Viewport/Physical
......@@ -419,8 +419,10 @@ class PLATFORM_EXPORT WidgetBase : public mojom::blink::Widget,
gfx::Rect window_screen_rect_;
base::Optional<gfx::Rect> pending_window_rect_;
// The size of the visible viewport (blink coordinate space).
gfx::Size visible_viewport_size_;
// The size of the visible viewport (in DIPs).
// TODO(dtapuska): Figure out if we can change this to Blink Space.
// See https://crbug.com/1131389
gfx::Size visible_viewport_size_in_dips_;
const bool use_zoom_for_dsf_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment