Scrollbars are not rendered in extension's popup window with WebRender
Categories
(Core :: Panning and Zooming, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr78 | --- | unaffected |
firefox84 | --- | unaffected |
firefox85 | --- | unaffected |
firefox86 | --- | verified |
People
(Reporter: nayinain, Assigned: hiro)
References
(Regression)
Details
(Keywords: regression)
Attachments
(3 files)
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0
Steps to reproduce:
- Load
webext-test
as a temporary extension. - Click to open the extension popup.
- Use the mouse wheel to scroll the popup contents.
Actual results:
Unable to scroll and the scroll bar is blank.
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=botondDifferential 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
Assignee | ||
Comment 2•4 years ago
|
||
Thanks for reporting! On my linux box, it can be scrolled by mouse wheel, it doesn't render the vertical scrollbar (scroll thumb), right?
Comment 3•4 years ago
|
||
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.
Assignee | ||
Comment 5•4 years ago
|
||
Thank you!
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Comment 6•4 years ago
|
||
Looks like this is a WebRender specific issue.
Updated•4 years ago
|
Assignee | ||
Comment 7•4 years ago
|
||
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.
Assignee | ||
Comment 8•4 years ago
|
||
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=[]
Assignee | ||
Comment 9•4 years ago
•
|
||
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.
Assignee | ||
Comment 10•4 years ago
|
||
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.
Comment 11•4 years ago
|
||
Does the display size change later to a non-zero value? I would hope it does.
Assignee | ||
Comment 12•4 years ago
|
||
(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.
Comment 13•4 years ago
|
||
That seems like a bug if the display size never becomes non-zero.
Assignee | ||
Comment 14•4 years ago
|
||
yeah, filed bug 1683810.
Assignee | ||
Comment 15•4 years ago
|
||
In popup windows, the size will be empty thus we fail to render scrollbar parts.
Updated•4 years ago
|
Comment 16•4 years ago
|
||
Comment 17•4 years ago
|
||
bugherder |
Updated•4 years ago
|
Comment 18•4 years ago
|
||
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.
Description
•