Open Bug 2007925 Opened 20 hours ago Updated 16 hours ago

"nsDOMWindowUtils::ToTopLevelWidgetRect" needs to take full zoom into account

Categories

(Core :: Layout, defect)

defect

Tracking

()

People

(Reporter: whimboo, Unassigned, NeedInfo)

References

(Blocks 2 open bugs)

Details

With async mouse events the following test is failing because the nsDOMWindowUtils::ToTopLevelWidgetRect() method as used by LayoutUtils.rectToTopLevelWidgetRect() isn't taking the full zoom setting into account. As result the calculated position is wrong and the click is not happening at the expected position.

https://searchfox.org/firefox-main/source/testing/web-platform/mozilla/tests/dom/events/screenX_screenY_after_propagation_in_zoomed_doc.html

As per the comment in nsDOMWindowUtils::ConvertTo the method ViewportUtils::DocumentRelativeLayoutToVisual() doesn't seem to apply it correctly.

To verify use the following command:

mach wpt --setpref="remote.log.level=Trace" testing/web-platform/mozilla/tests/dom/events/screenX_screenY_after_propagation_in_zoomed_doc.html --setpref="remote.events.async.mouse.enabled=true"

I'm going to disable the async mouse events for now for this particular test to keep it passing.

That seems wrong? This is the code that takes zoom level into account, by virtue of using the AppUnitsPerDevPixel of the child page.

That comment is about "desktop zoom" which is the panning / zooming, not the zoom that test is using.

Flags: needinfo?(hskupin)

Hm, the test uses SpecialPowers.setFullZoom(window, 2); to set the full zoom, which itself uses the fullZoom property of the BrowsingContext. So it means full zoom is not full zoom but desktop zoom?

The method that we currently use in Marionette relies on the computation of the code as layed out in comment 0. So at some point the desktop zoom needs to be applied as well. If this is panning / zooming I would then like to ask Botond for further feedback. Should we then move this bug to APZ as well?

Flags: needinfo?(hskupin) → needinfo?(botond)
You need to log in before you can comment on or make changes to this bug.