Scrolling between text selection actions creates offset for selection cursor
Categories
(Core :: Layout, defect, P1)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr68 | --- | unaffected |
firefox-esr78 | --- | wontfix |
firefox80 | --- | wontfix |
firefox81 | --- | fixed |
firefox82 | --- | fixed |
People
(Reporter: m_kato, Assigned: TYLin)
References
(Blocks 1 open bug, Regression)
Details
(Keywords: regression)
Attachments
(1 file)
47 bytes,
text/x-phabricator-request
|
RyanVM
:
approval-mozilla-beta+
|
Details | Review |
From https://github.com/mozilla-mobile/fenix/issues/13208.
Environment
- Firefox 81 (2020-08-04) on Windows 10
- Fenix Nightly
Steps to reproduce
- Open a website with selectable text, e.g. https://www.mozilla.org/en-GB/mission/
- Select some text
- Scroll down while still keeping the selected part in your viewport
- Drag the lower selection cursor down
Expected behavior
The lower selection cursor follows the touch pointer.
###Actual behavior
The lower selection cursor jumps below the context menu and now has an offset to the touch pointer.
Notes
This also occurs on Windows too. So it isn't related to GeckoView. I guess that this issue is accessibility caret.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
mozregression gives me this range, so this bug should be a regression by bug 1526268.
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 2•4 years ago
|
||
During scrolling, the caret's position relative to the
custom-content-container (cached in mImaginaryCaretRectInContainerFrame)
may not change, but its position relative to root frame can (cached in
mImaginaryCaretRect).
We need to update mImaginaryCaret each time we are in SetPosition().
Otherwise, the caret still remembers its pre-scrolling old position next
time when we drag it, resulting the caret jumping to its old
pre-scrolling position suddenly.
Note this bug only occurs on the root scroll frame where the APZ is
enabled, not in any sub-scroll frames where APZ is disable when the
caret is shown.
Comment 4•4 years ago
|
||
bugherder |
Comment 5•4 years ago
|
||
Is this likely to be a noticeable regression for users upgrading from Fennec to Fenix? If so, should we consider uplifting to Beta for 81?
Assignee | ||
Comment 6•4 years ago
|
||
Comment on attachment 9172736 [details]
Bug 1657256 - Always update the cached mImaginaryCaretRect in SetPosition().
Beta/Release Uplift Approval Request
- User impact if declined: After scrolling, the caret can jump to the wrong place rather than following the finger smoothly.
- Is this code covered by automated tests?: Yes
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: No
- If yes, steps to reproduce:
- List of other uplifts needed: None
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): A small patch that caches a value eagerly, which is essential to calculate the caret's position.
- String changes made/needed:
Assignee | ||
Comment 7•4 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM] from comment #5)
Is this likely to be a noticeable regression for users upgrading from Fennec to Fenix? If so, should we consider uplifting to Beta for 81?
Yes, it's noticeable, and is reported originally as a fenix issue https://github.com/mozilla-mobile/fenix/issues/13208
Comment 8•4 years ago
|
||
Comment on attachment 9172736 [details]
Bug 1657256 - Always update the cached mImaginaryCaretRect in SetPosition().
Approved for 81.0b6.
Comment 9•4 years ago
|
||
bugherder uplift |
Description
•