Closed Bug 1905426 Opened 4 months ago Closed 3 months ago

Can't return to origin of complex table after scrolling around table

Categories

(Core :: Layout: Scrolling and Overflow, defect, P3)

Firefox 127
defect

Tracking

()

VERIFIED FIXED
130 Branch
Tracking Status
firefox-esr128 --- verified
firefox129 --- verified
firefox130 --- verified

People

(Reporter: lohphat, Assigned: emilio)

References

(Blocks 1 open bug, Regressed 1 open bug)

Details

(Keywords: reproducible)

Attachments

(5 files)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:127.0) Gecko/20100101 Firefox/127.0

Steps to reproduce:

Scroll around a complex table -- a Palo Alto Networks Firewall (PANOS) admin UI policy table.

Actual results:

If you scroll down away from row 1, then over to the right, when you scroll back to the left border you can't scroll back to origin (row 1). You must reload page to restore full table.

Expected results:

scroll vert and horiz freely around complex table.

mozregression summary: 2024-06-28T09:55:06.718000: INFO : Narrowed integration regression window from [27d6cf13, 872b6e66] (3 builds) to [27d6cf13, 1bfeb41b] (2 builds) (~1 steps left) 2024-06-28T09:55:06.758000: DEBUG : Starting merge handling... 2024-06-28T09:55:06.759000: DEBUG : Using url: https://hg.mozilla.org/integration/autoland/json-pushes?changeset=1bfeb41be90813df378b6c822b468d51d8132536&full=1 2024-06-28T09:55:06.759000: DEBUG : redo: attempt 1/3 2024-06-28T09:55:06.759000: DEBUG : redo: retry: calling _default_get with args: ('https://hg.mozilla.org/integration/autoland/json-pushes?changeset=1bfeb41be90813df378b6c822b468d51d8132536&full=1',), kwargs: {}, attempt #1 2024-06-28T09:55:06.770000: DEBUG : urllib3.connectionpool: Resetting dropped connection: hg.mozilla.org 2024-06-28T09:55:08.785000: DEBUG : urllib3.connectionpool: https://hg.mozilla.org:443 "GET /integration/autoland/json-pushes?changeset=1bfeb41be90813df378b6c822b468d51d8132536&full=1 HTTP/1.1" 200 None 2024-06-28T09:55:08.871000: DEBUG : Found commit message: Bug 1846996: Move the test variant 'xorigin' to never expire.r=jmaher,nika Differential Revision: https://phabricator.services.mozilla.com/D187120 2024-06-28T09:55:08.872000: DEBUG : Did not find a branch, checking all integration branches 2024-06-28T09:55:08.876000: INFO : The bisection is done. 2024-06-28T09:55:08.887000: INFO : Stopped

The web UI is for PANOS a market leader firewall OEM. It should be relatively easy to find an appropriate testbed to reproduce the issue.

Simply load the POLICY tab and try to scroll around a larger rulebase.

PANOS version: 10.2.9-h1 on a PA-5250 NGFW

The Bugbug bot thinks this bug should belong to the 'Core::Layout: Tables' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Layout: Tables
Product: Firefox → Core
Summary: Can't return to origin of complex table after scrolling around complex table → Can't return to origin of complex table after scrolling around table

Reporter, do you remember roughly when you started experiencing this issue? Or has it always been happening?

Flags: needinfo?(lohphat)

Image showing origin of table visible.

Flags: needinfo?(lohphat)

This image shows that the right hand vert scollbar it at top yet table is not at top row of table. page must be reloaded for table to re-appear.

(In reply to Gregory Pappas [:gregp] from comment #4)

Reporter, do you remember roughly when you started experiencing this issue? Or has it always been happening?

It's been buggy for a while. When I've compared against Chrome, it does not demonstrate the same behavior.

I've wanted to report earlier but didn't have a way to narrow it down. But I've learned to use the mozregression tool on two other bugs so I felt I could at least start the process with reasonable data from the tool output.

Attached video table_bug.webm

Thanks for clarifying! I think I can reproduce the issue.

Steps to reproduce:

  1. Navigate to https://login.paloaltonetworks.com/live/PreRegister
  2. Create an account
  3. Navigate to https://jp1.demo.paloaltonetworks.com/php/login.php
  4. Click "Use Single Sign-On"
  5. Click "Continue"
  6. Login
  7. Click "Policies"
  8. Scroll down a bit
  9. Scroll to the right
  10. Scroll to the left
  11. Try to scroll back up

Actual results:
The table glitches out and cannot be scrolled to row 1

Expected results:
Table scrolls to row 1

Reporter, does this match your experience?

Flags: needinfo?(lohphat)

BINGO!

Flags: needinfo?(lohphat)

That strange "jitter" when scrolling is another symptom.

I'm not able to reproduce the issue when layout.css.scroll-anchoring.enabled is disabled in about:config

Confirmed workaround fixes it on MACOS with layout.css.scroll-anchoring.enabled = disabled

Status: UNCONFIRMED → NEW
Ever confirmed: true

The severity field is not set for this bug.
:emilio, could you have a look please?

For more information, please visit BugBot documentation.

Flags: needinfo?(emilio)

Greg, I can't repro this. After step 6 I get an SSO failure.

That said, this looks a lot like bug 1907289. Does this reproduce on the latest nightly? Maybe they are hitting the same bug.

If it does... Would it be possible to create some sort of test-case for this? The mozregression in comment 7 can't be right, since bug 1846996 was a test-only change.

Flags: needinfo?(emilio) → needinfo?(gregp)

Hmm, I also see SSO failure, that's strange. Try https://jp1.demo.paloaltonetworks.com/php/login.php or https://jp3.demo.paloaltonetworks.com/php/login.php, I think these ones still function.

Flags: needinfo?(gregp)

See link in the comment. We were checking both offsets, but blink only
checks one.

In this case, the page has a table with overflow-x: auto and
overflow-y: hidden. They implement a custom virtual scrolling on the
vertical axis, and scroll-anchoring interacts poorly with it.

Adapt zero-scroll-offset.html to test for this.

Assignee: nobody → emilio
Status: NEW → ASSIGNED

Ok I figured out what's going on, in particular why the "scroll to the right" bit is needed. It's a subtle different in our scroll anchoring heuristics... The page could fix it on their end by applying overflow-anchor: none to the relevant scroller.

Severity: -- → S3
Component: Layout: Tables → Layout: Scrolling and Overflow
Priority: -- → P3
Pushed by ealvarez@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/6ccbb0036fca Refine zero-scroll-offset scroll anchoring heuristic to match blink. r=hiro
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/47248 for changes under testing/web-platform/tests
Regressions: 1909395
Status: ASSIGNED → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 130 Branch
Upstream PR merged by moz-wptsync-bot

Comment on attachment 9413983 [details]
Bug 1905426 - Refine zero-scroll-offset scroll anchoring heuristic to match blink. r=#layout

Beta/Release Uplift Approval Request

  • User impact if declined: This is a trivial fix that should help with scroll jumping in the wild.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: Yes
  • If yes, steps to reproduce: comment 8 (but see the urls in follow-up comments)
  • List of other uplifts needed: none
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Trivial
  • String changes made/needed: none
  • Is Android affected?: Yes

ESR Uplift Approval Request

  • If this is not a sec:{high,crit} bug, please state case for ESR consideration: This is a trivial fix that should help with scroll jumping in the wild.
  • User impact if declined: Scroll jumping in some cases.
  • Fix Landed on Version: 130
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): As small of a fix as it gets.
Attachment #9413983 - Flags: approval-mozilla-esr128?
Attachment #9413983 - Flags: approval-mozilla-beta?
Flags: qe-verify+
QA Whiteboard: [qa-triaged]

Reproduced the initial issue described in comment 8 using an old Nightly build from 2024-06-27. Verified that using latest Nightly build 130.0a1 I can't reproduce this issue across platforms (Windows 11, macOS 13.6 and Ubuntu 22.04).

Status: RESOLVED → VERIFIED

Comment on attachment 9413983 [details]
Bug 1905426 - Refine zero-scroll-offset scroll anchoring heuristic to match blink. r=#layout

hg graft -er 29a40a412575

Attachment #9413983 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Comment on attachment 9413983 [details]
Bug 1905426 - Refine zero-scroll-offset scroll anchoring heuristic to match blink. r=#layout

Approved for 128.1esr

Attachment #9413983 - Flags: approval-mozilla-esr128? → approval-mozilla-esr128+

(In reply to Bogdan Maris, Desktop QA from comment #23)

Reproduced the initial issue described in comment 8 using an old Nightly build from 2024-06-27. Verified that using latest Nightly build 130.0a1 I can't reproduce this issue across platforms (Windows 11, macOS 13.6 and Ubuntu 22.04).

Also verified this as fixed using Firefox 129 beta from treeherder on the same platforms. Not marking as verified since the build for esr128 is not available yet, will verify Monday when the build with the fix will be available.

(In reply to Bogdan Maris, Desktop QA from comment #28)

(In reply to Bogdan Maris, Desktop QA from comment #23)

Reproduced the initial issue described in comment 8 using an old Nightly build from 2024-06-27. Verified that using latest Nightly build 130.0a1 I can't reproduce this issue across platforms (Windows 11, macOS 13.6 and Ubuntu 22.04).

Also verified this as fixed using Firefox 129 beta from treeherder on the same platforms. Not marking as verified since the build for esr128 is not available yet, will verify Monday when the build with the fix will be available.

Also verified using latest Firefox esr128 across platforms (Windows 11, macOS 13.6 and Ubuntu 22.04).

Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: