Closed Bug 1490571 Opened 6 years ago Closed 5 years ago

Not able to scroll after resizing responsive design mode view

Categories

(Core :: Web Painting, defect, P3)

69 Branch
defect

Tracking

()

VERIFIED FIXED
mozilla73
Tracking Status
firefox-esr68 --- unaffected
firefox71 --- wontfix
firefox72 --- verified
firefox73 --- verified

People

(Reporter: shobson, Assigned: tnikkel)

References

(Blocks 2 open bugs, Regression)

Details

(Keywords: regression, Whiteboard: [rdm-reserve] [dt-q])

Attachments

(2 files)

1) Open RWD mode 2) scroll around a bit 3) drag the side of the frame the website is in to re-size it 4) try to scroll again 5) not be able to scroll :( Switching to another tab and coming back seems to fix it.
Unfortunately I can't reproduce the issue. Which OS and Firefox version are you on?
Flags: needinfo?(shobson)
64.0a1 on MacOS High Sierra. It's been happening for a few weeks but I kept hoping it would be fixed so I wouldn't have to file a bug.
Flags: needinfo?(shobson)
Ok, I managed to bump into this issue now pretty frequently, too. It is really annoying, so I'm setting a priority here.
Priority: -- → P2
Whiteboard: [dt-q]
Addition to STR: 1. Make sure viewport is center aligned. I couldn't reproduce it in the left-aligned setting (I guess this was the issue when I first tried) 2. When resizing, use the handles on the viewport. When resizing through the device selector, everything works as expected.

This error could already be fixed. I reported something similar here:
https://bugzilla.mozilla.org/show_bug.cgi?id=1457603#c39

It was at the same time (~ 4 months ago). I reported a crash but before Firefox crashed it was no longer possible to scroll in RDM after resizing the RDM viewport. Since the crash was fixed, the scrolling problem has never appeared again for me. So it seems related.

Whiteboard: [dt-q] → [rdm-mvp] [dt-q]

I'm not able to reproduce this. Is this still failing for you? If so, would you please post a testcase that reliably demonstrates the problem?

Flags: needinfo?(shobson)
Priority: P2 → P3
Whiteboard: [rdm-mvp] [dt-q] → [rdm-reserve] [dt-q]

Sorry for the slow reply. I made a video of the problem happening for me on www.mozilla.org. It's hard to show in a video that I can't scroll but hopefully it will help you replicate the problem. I lose my scrool wheel at around 6.25s.

I'm now on macOS Mojave 10.14.5 (18F132) and Nightly 69.0a1 (2019-06-14)

Flags: needinfo?(shobson)

It was fixed for me (see comment #5) but it happens again since a few days.

Hi,

I have managed to reproduce the issue on latest Nightly 69.0a1 (2019-06-24) (64-bit), using macOS Mojave 10.14, Windows 10 and Ubuntu 18.04.

This is a regression from 2019-06-04
First bad Build ID: 20190604034844
Pushlog: https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=dfc513e7e1413158d8d0d6ccf029c4a0b6a0a2ca&tochange=d17dc040eec7635a7f91468831c7fb74a7924ef6

Hey guys, it seems this issue is related to Webrender somehow, with gfx.webrender.all set to true in about:config, the user is able to scroll through the viewport after resizing it, but as soon as you turn it off the scrolling function no longer works after the user resizes the window.

Please note that Composition in about:support should show Webrender instead of openGl or Basic.

Bugbug thinks this bug is a regression, but please revert this change in case of error.

Keywords: regression
See Also: → 1564336

Hey...just wanted to say that I still get this unwanted behaviour .

I am on Mac OS Mojave, Firefox dev edition build is 70.0b6 (64-bit). But this is happening for half a year, maybe even more.

One little workaround is to click outside the responsive frame and then when you enter the frame again, the scrolling will work. No need to click inside the frame, it will work without it.

After you resize the frame manually, click outside it and scroll will work.

It is not that hard to click once after each dimension change, but it can get annoying :)

Can reproduce on Nightly + macOS 10.14.6, with WebRender off. STR:

  1. Open a long web page, e.g. https://firefox-dev.tools/
  2. Enable RDM.
  3. Resize the viewport width by dragging the viewport's right edge.
  4. Hover the page content and try scrolling with the mouse wheel.

A workaround seems to be, after steps 3, to click the RDM's page background (outside of the viewport). After that, scrolling works as expected. Clicking in the page content can help too (but not systematically).

I wonder if the workarounds (switching to another tab, clicking the background) point to a focus and DOM event issue? Do we perhaps intercept scroll events in the content page to avoid scrolling the RDM page (which might be done in CSS only today with overscroll-behavior: contain)?

mozregression identified Bug 1413546 as the source of the regression. Miko, would you please consider how retained display lists my cause this issue?

Flags: needinfo?(mikokm)
Regressed by: 1413546

Confirmed that is regression ranges down to the single commit enabling parent rdl, and flipping the parent rdl pref fixes/breaks it.

Flags: needinfo?(tnikkel)

(In reply to Brad Werth [:bradwerth] from comment #18)

mozregression identified Bug 1413546 as the source of the regression. Miko, would you please consider how retained display lists my cause this issue?

I can think of three possible reasons:

  1. Lack of frame invalidation after resizing
  2. Invalid hit test information (bug 1534549)
  3. APZ problem

I looked into this briefly and after trying a workaround for 2), I think the cause is 1) or 3).
This might also be a FrameLayerBuilder bug, since I only managed to reproduce this with WebRender disabled.

Flags: needinfo?(mikokm)

I did some testing in Firefox 71 (Beta) and 72 (Nightly).
If I middle-click in the RDM viewport to initiate auto-scroll when after a resize scrolling with the wheel stops working and then cancel auto-scroll via ESC then scrolling with the mouse wheel starts working again and it keeps working when I resize the window.
If I leave the tab and return to this tab then it immediately starts happening again when I resize the RDM viewport and can't scroll with the mouse wheel until I enter and leave auto-scroll again.

(In reply to Miko Mynttinen [:miko] from comment #20)

I can think of three possible reasons:

  1. Lack of frame invalidation after resizing
  2. Invalid hit test information (bug 1534549)
  3. APZ problem

I looked into this briefly and after trying a workaround for 2), I think the cause is 1) or 3).
This might also be a FrameLayerBuilder bug, since I only managed to reproduce this with WebRender disabled.

Are you willing to take the bug and re-characterize it as a graphics issue?

Flags: needinfo?(mikokm)

I noticed that the ref layer for the child process had "force-ehr" on it sometimes, which happens when it is tagged with EventRegionsOverride::ForceEmptyHitRegion. Commenting out this line

https://searchfox.org/mozilla-central/rev/04d8e7629354bab9e6a285183e763410860c5006/layout/generic/nsSubDocumentFrame.cpp#1323

fixes the bug for me. So my current guess is that responsive design mode toggles pointer events none on something and we don't invalidate so it wrongly stays pointer events none in the layer tree.

Component: Responsive Design Mode → Web Painting
Flags: needinfo?(tnikkel)
Product: DevTools → Core
Summary: Not able to scroll after resizing RWD view → Not able to scroll after resizing responsive design mode view
Version: 64 Branch → 69 Branch

(In reply to Timothy Nikkel (:tnikkel) from comment #23)

So my current guess is that responsive design mode toggles pointer events none on something and we don't invalidate so it wrongly stays pointer events none in the layer tree.

This guess seems to be correct. Patch coming up.

Flags: needinfo?(mikokm)
Assignee: nobody → tnikkel
Pushed by tnikkel@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e5875d21e9b5 Pointer events changes need to schedule a paint because they can change the event regions override on layers. r=mattwoodrow

Hi,
I tested this issue and it still occurs in 71, 72 and 73, I'll update the flags.

Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla73

Verified - fixed on latest Nightly 73.0a1 (2019-12-04) (Build id: 20191204215924) on Mac OS 10.14 , Windows 10 and Ubuntu 18.04

Should this be uplifted to 72?

Flags: needinfo?(tnikkel)

Comment on attachment 9113117 [details]
Bug 1490571. Pointer events changes need to schedule a paint because they can change the event regions override on layers. r?mattwoodrow

Beta/Release Uplift Approval Request

  • User impact if declined: responsive design mode can't scroll after resizing
  • Is this code covered by automated tests?: No
  • 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): just triggers a paint on pointer events changes
  • String changes made/needed:
Flags: needinfo?(tnikkel)
Attachment #9113117 - Flags: approval-mozilla-beta?

Comment on attachment 9113117 [details]
Bug 1490571. Pointer events changes need to schedule a paint because they can change the event regions override on layers. r?mattwoodrow

looks like a simple fix, verified on nightly, approved for 72.0b3

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

Verified - fixed on latest Beta 72.0b3 (Build id: 20191205201734) on Mac OS 10.14 , Windows 10 and Ubuntu 18.04

P3 and 72 is in 3 weeks, wontfix 71.

Status: RESOLVED → VERIFIED
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: