After pinch-zooming in, horizontal viewport scrollbar on BMO cannot be dragged
Categories
(Core :: Panning and Zooming, defect)
Tracking
()
People
(Reporter: botond, Assigned: tnikkel)
References
(Regression)
Details
(Keywords: regression)
Attachments
(1 file)
(deleted),
text/x-phabricator-request
|
Details |
STR
- Run latest nightly with
apz.allow_zooming=true
- Load https://bugzilla.mozilla.org/show_bug.cgi?id=1556556
- Pinch-zoom in. Observe that a horizontal viewport scrollbar appears.
- Try to drag the horizontal viewport scrollbar.
Expected results
The horizontal viewport scrollbar can be dragged
Actual results
The horizontal viewport scrollbar remains at its initial position and cannot be used to scroll the viewport. If it starts away from its initial position, attempting to drag it causes it to jump to its initial position.
Reporter | ||
Updated•5 years ago
|
Assignee | ||
Comment 1•5 years ago
|
||
Lots of problems visible using those STR (testing on mac). The vertical scroll bar is sometimes visible, sometimes not. The header sometimes stays on screen, sometimes does not.
Reporter | ||
Comment 2•5 years ago
|
||
(In reply to Timothy Nikkel (:tnikkel) from comment #1)
The vertical scroll bar is sometimes visible, sometimes not. The header sometimes stays on screen, sometimes does not.
Assuming you mean the subframe's vertical scrollbar, that's expected. The subframe's viewport is sized to the page's layout viewport, and so whether the subframe's vertical scrollbar is visible depends on where the visual viewport is positioned within the layout viewport.
The same goes for the header, which is also sized and positioned relative to the layout viewport.
Updated•5 years ago
|
Assignee | ||
Comment 3•5 years ago
|
||
This appears to have been broken for quite a while, and it's basically any page that doesn't have horizontal overflow before zooming that is affected.
Assignee | ||
Comment 4•5 years ago
|
||
Layout hittesting (nsLayoutUtils::GetFrameForArea) when it happens seems to hit the right element.
Assignee | ||
Comment 5•5 years ago
|
||
So it looks like we are getting into the scrollbar dragging code on the apzc side, but it calculate a very small "percent", dragging the scrollbar across the whole window I move from ~0% to ~1.1%.
Assignee | ||
Comment 6•5 years ago
|
||
Nevermind, 1.1 was not 1.1% but is actually 110% (the calculation allows us to go over 100% by quite a bit for some reason).
The problem is in AsyncPanZoomController::HandleDragEvent we compare GetScrollableRect to CalculateCompositionBoundsInCssPixelsOfSurroundingContent to determine how much we can scroll, in a "zoomed overflow hidden" situation those are the same.
Assignee | ||
Comment 7•5 years ago
|
||
I think we'll need an equivalent calculation to this
Assignee | ||
Comment 8•5 years ago
|
||
The scroll position and scrollable rect are inside the zoom boundary so we need to use the composisted size inside the zoom boundary as well.
Updated•5 years ago
|
Assignee | ||
Comment 9•5 years ago
|
||
There's still at least two more issues with interacting with the scroll bar after this patch, but dragging seems to work fine. I'll file those as new bugs.
Assignee | ||
Comment 10•5 years ago
|
||
One of the issues is bug 1639448.
Assignee | ||
Comment 11•5 years ago
|
||
The other one is bug 1639450.
Updated•5 years ago
|
Updated•5 years ago
|
Comment 12•5 years ago
|
||
Comment 13•5 years ago
|
||
bugherder |
Updated•5 years ago
|
Description
•