Closed Bug 1683612 Opened 4 years ago Closed 4 years ago

Scrollbars are not rendered in extension's popup window with WebRender

Categories

(Core :: Panning and Zooming, defect, P2)

Firefox 86
defect

Tracking

()

VERIFIED FIXED
86 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox84 --- unaffected
firefox85 --- unaffected
firefox86 --- verified

People

(Reporter: nayinain, Assigned: hiro)

References

(Regression)

Details

(Keywords: regression)

Attachments

(3 files)

Attached file webext-test.zip

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

Steps to reproduce:

  1. Load webext-test as a temporary extension.
  2. Click to open the extension popup.
  3. Use the mouse wheel to scroll the popup contents.

Actual results:

Unable to scroll and the scroll bar is blank.

Attached image Screenshots.png

Regression window:

2020-12-21T14:42:51.223000: INFO : platform_buildid: 20201214211916
2020-12-21T14:42:51.223000: INFO : platform_changeset: 8c8bbc19e7f90f621bc92f805db1fddcdad605b4
2020-12-21T14:42:51.223000: INFO : platform_repository: https://hg.mozilla.org/integration/autoland
2020-12-21T14:42:51.223000: INFO : platform_version: 85.0a1
2020-12-21T14:43:14.223000: INFO : Narrowed integration regression window from [f77bdbdf, d8bd960f] (3 builds) to [8c8bbc19, d8bd960f] (2 builds) (~1 steps left)
2020-12-21T14:43:14.249000: DEBUG : Starting merge handling...

2020-12-21T14:43:14.249000: DEBUG : Using url: https://hg.mozilla.org/integration/autoland/json-pushes?changeset=d8bd960f9b82ca8d9ef340ae488673b6f0c0669e&full=1
2020-12-21T14:43:14.250000: DEBUG : redo: attempt 1/3
2020-12-21T14:43:14.250000: DEBUG : redo: retry: calling _default_get with args: ('https://hg.mozilla.org/integration/autoland/json-pushes?changeset=d8bd960f9b82ca8d9ef340ae488673b6f0c0669e&full=1',), kwargs: {}, attempt #1
2020-12-21T14:43:14.253000: DEBUG : urllib3.connectionpool: Resetting dropped connection: hg.mozilla.org
2020-12-21T14:43:15.948000: DEBUG : urllib3.connectionpool: https://hg.mozilla.org:443 "GET /integration/autoland/json-pushes?changeset=d8bd960f9b82ca8d9ef340ae488673b6f0c0669e&full=1 HTTP/1.1" 200 None
2020-12-21T14:43:16.009000: DEBUG : Found commit message:
Bug 1493208 - Enable apz.popups.enabled. r=botond

Differential Revision: https://phabricator.services.mozilla.com/D99310

2020-12-21T14:43:16.009000: DEBUG : Did not find a branch, checking all integration branches
2020-12-21T14:43:16.012000: INFO : The bisection is done.
2020-12-21T14:43:16.019000: INFO : Stopped

Has Regression Range: --- → yes
Has STR: --- → yes
Keywords: regression
Regressed by: 1493208

Thanks for reporting! On my linux box, it can be scrolled by mouse wheel, it doesn't render the vertical scrollbar (scroll thumb), right?

Flags: needinfo?(nayinain)

Set release status flags based on info from the regressing bug 1493208

(In reply to Hiroyuki Ikezoe (:hiro) from comment #2)

Thanks for reporting! On my linux box, it can be scrolled by mouse wheel, it doesn't render the vertical scrollbar (scroll thumb), right?

Yes.
In addition, It can scroll by the arrow keys.

Flags: needinfo?(nayinain)

Thank you!

Flags: needinfo?(hikezoe.birchill)
Summary: WebExtension popup content cannot be scrolled through the mouse wheel → Scrollbars don't render in extension's popup window
See Also: → 1683487
Summary: Scrollbars don't render in extension's popup window → Scrollbars are not rendered in extension's popup window
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: needinfo?(hikezoe.birchill)

Looks like this is a WebRender specific issue.

Summary: Scrollbars are not rendered in extension's popup window → Scrollbars are not rendered in extension's popup window with WebRender
Severity: -- → S2
Priority: -- → P2

This is quite odd, on Windows there appears the vertical scrollbar with the test extension in comment 0, but it's not scrollable, that seems to be bug 1683487.

I don't quite understand what's going on there. On my linux box, the vertical scrollbar sometimes appears especially when I double-click the extension's icon. But I don't see significant differences between WebRenderLayerScrollData when the bar appears/doesn't appear

This is a log when the bar appears;

RenderLayerScrollData(0x7fb18f969008), descendantCount=4, visible=[]
WebRenderLayerScrollData(0x7fb18f9694a0), descendantCount=1, visible=[], scrollbarType=2, scrollbarAnimationId=0x0
WebRenderLayerScrollData(0x7fb18f969628), descendantCount=0, visible=[188,-1,200,117], scrollbarType=1, scrollbarAnimationId=0x1443000000047
WebRenderLayerScrollData(0x7fb18f969190), descendantCount=1, visible=[]
WebRenderLayerScrollData(0x7fb18f969318), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=188, h=400)] [sr=(x=0, y=0, w=188, h=1200)] [s=(0,0)] [dp=(x=0, y=0, w=188, h=768)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(188 x 400)] [v=(x=0, y=0, w=188, h=400)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 38)] scrollId=24 [rcd] }] [color=dev_rgba(0, 0, 0, 0.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[]

This is a log when the bar doesn't appear

WebRenderLayerScrollData(0x7f95c69e9808), descendantCount=4, visible=[]
WebRenderLayerScrollData(0x7f95c69e9ca0), descendantCount=1, visible=[], scrollbarType=2, scrollbarAnimationId=0x0
WebRenderLayerScrollData(0x7f95c69e9e28), descendantCount=0, visible=[188,-1,200,117], scrollbarType=1, scrollbarAnimationId=0x146aa00000007
WebRenderLayerScrollData(0x7f95c69e9990), descendantCount=1, visible=[]
WebRenderLayerScrollData(0x7f95c69e9b18), descendantCount=0, metadata0={ [metrics={ [cb=(x=0, y=0, w=188, h=400)] [sr=(x=0, y=0, w=188, h=1200)] [s=(0,0)] [dp=(x=0, y=0, w=188, h=768)] [cdp=(x=0, y=0, w=0, h=0)] [rcs=(188 x 400)] [v=(x=0, y=0, w=188, h=400)] [z=(ld=1.000 r=1.000 cr=1 z=1 er=1 )] [u=(0 7)] scrollId=8 [rcd] }] [color=dev_rgba(0, 0, 0, 0.000000)] [overscroll=auto] [0 scrollupdates] }, visible=[]

Okay, probably this bounds is a problem, its size is empty.

OwnLayer p=0x7f63c45b18d8 f=0x7f63c7dd0700(ScrollbarFrame(scrollbar)(-1)) key=812 bounds(11280,0,0,0) layerBounds(11280,0,0,0) visible(11280,0,720,24000) building(11280,0,720,24000) componentAlpha(0,0,0,0) clip(0,0,0,0) asr() clipChain(0x7f63c45b1200 <0,0,0,0> [root asr]) ref=0x7f63c7dd0020 agr=0x7f63c7dd0020 (flags 0x0) (scrolltarget 7)

whereas when the bar appears;

OwnLayer p=0x7fe156459608 f=0x7fe157342700(ScrollbarFrame(scrollbar)(-1)) key=812 bounds(11280,0,720,24000) layerBounds(11280,0,720,24000) visible(11280,0,720,24000) building(11280,0,720,24000) componentAlpha(0,0,0,0) clip(0,0,12000,24000) asr() clipChain(0x7fe15645a0d8 <0,0,12000,24000> [root asr]) ref=0x7fe157342020 agr=0x7fe157342020 (flags 0x0) (scrolltarget 19)

The size looks reasonable.

So, the culprit is me. With enabling APZ in popup window, we have MobileViewportManager, thus we hit this code path, but unfortunately the display size is (0, 0, 0, 0) there unfortunately, I haven't tracked down why it's empty though, Botond told me on a Matrix channel, we might want to use MobileViewportManager in popup window, so I am going to change the code to use the display size with the dynamic toolbar height only if we have the dynamic toolbar.

Assignee: nobody → hikezoe.birchill
Status: NEW → ASSIGNED

Does the display size change later to a non-zero value? I would hope it does.

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

Does the display size change later to a non-zero value? I would hope it does.

If the case of the scrollbar appears properly, the answer is yes, the display size was initially (0, 0) and it becomes a proper size. But in the case of the problem case, it seems the display size will never be resized correctly as far as I can tell.

That seems like a bug if the display size never becomes non-zero.

See Also: → 1683810

yeah, filed bug 1683810.

In popup windows, the size will be empty thus we fail to render scrollbar parts.

Attachment #9194369 - Attachment description: Bug 1683612 - Don't use the area expanded by the dynamic toolbar if there is no dynamic toolbar. r?botond → Bug 1683612 - Don't use mobile display size where dom.meta-viewport.enable pref is false. r?botond
Pushed by hikezoe.birchill@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1d89f3cb5bb3 Don't use mobile display size where dom.meta-viewport.enable pref is false. r=botond
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 86 Branch

Reproduced with Fx 86.0a1 (2020-12-20) on Windows 10.
Verified fixed with Fx 87.0a1 (2021-02-01) and Fx 86.0b4 on Windows 10 and Ubuntu 18.04.

Status: RESOLVED → VERIFIED
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: