Closed Bug 1613566 Opened 1 year ago Closed 3 months ago

the root scrollbar thumb dragging is somewhat broken in fission

Categories

(Core :: Layout, defect, P3)

defect

Tracking

()

RESOLVED FIXED
87 Branch
Fission Milestone M7
Tracking Status
firefox87 --- fixed

People

(Reporter: hiro, Assigned: hiro)

References

(Blocks 2 open bugs)

Details

Attachments

(3 files)

I have totally no idea what happens there.

STR

  1. Make sure "Restore tabs" is enabled in about:preferences
  2. Open https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#Thresholds
  3. Close browser window
  4. Open a new browser process with enabling fission
  5. Drag the scrollbar thumb to scroll up and down

Actually result
Scroll position jumps to the end and jumps back repeatedly

Reloading the page fixed this issue for some reasons.

I am not sure IntersectionObserver is needed to reproduce this issue, but as far as I can tell I haven't seen this issue on other pages.

Smaug, do you or any of the other people working on session history just now have any idea what may be happening here?

Flags: needinfo?(bugs)

The test page does use cross-origin iframes.

Tracking for Fission Nightly (M6)

Fission Milestone: --- → M6

Can you still reproduce? I just tried and I couldn't.

Flags: needinfo?(hikezoe.birchill)

Yes, looks like still happening on WebRender. I can no longer see the issue on non WebRender. I don't recall it was originally happening only on WebRender.

That said, it's hard to reproduce this, sometimes it happens, sometimes it doesn't happen at all..

It seems Session Restore is not related. I can see the issue with 1) open a new tab and 2) load https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API#Thresholds 3) scroll with dragging the scroll thumb.

Flags: needinfo?(hikezoe.birchill)

Now I am suspecting this is also not related to IntersectionObserver. This looks somewhat related to interactions between the root scroller and the OOP iframe's scroller.

I can reproduce on non WebRender as well. Probably the issue is easier reproducible on a debug build.

Haven't been able to reproduce here. I'll set this to M7 (blocking Fission in beta) unless we find this happening in more scenarios.

Severity: normal → S3
Fission Milestone: M6 → M7
Attached video A screencast

I tried local build to see whether it still persists or not, actually still there.

Confirmed still happening on a local debug build with/without WebRender.

Note that I am now mostly sure that this issue is not related to session restore.

Assignee: nobody → hikezoe.birchill
Status: NEW → ASSIGNED
Flags: needinfo?(bugs)

It seems like a key factor to reproduce this issue reliably is there should be a single browser window and single tab in the window. If there are multiple tabs, it's hard to reproduce (though I could sometimes reproduce it with multiple tabs).

And when the vertical scroll thumb is dragged, the scroll container's scroll amount is somewhat confused by the OOP iframe's scroll container?

Summary: Interaction between IntersectionObserver and session restore seems to break scrolling by scrollbar thumb dragging in fission → the root scrollbar thumb dragging is somewhat broken in fission
Pushed by hikezoe.birchill@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c5b734ffc74f
Use layersId to find the target hit testing tree node for scroll thumb dragging. r=botond
Status: ASSIGNED → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 87 Branch
QA Whiteboard: [qa-87b-p2]
You need to log in before you can comment on or make changes to this bug.