Bug 1639975 Comment 9 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

Thanks for the log. This is the context of the assert

Painting --- before optimization (dirty 0,0,69120,50820):
SolidColor p=0x560e6892f028 f=0x560e688bf170(Viewport(-1)) key=54 bounds(0,0,69120,50820) layerBounds(0,0,69120,50820) visible(0,0,69120,50820) building(0,0,69120,50820) componentAlpha(0,0,0,0) clip() asr() clipChain() uniform ref=0x560e688bf170 agr=0x560e688bf170 (opaque 0,0,69120,50820) (rgba 255,255,255,255)
CompositorHitTestInfo p=0x560e6892eaf0 f=0x560e688bf2f8(HTMLScroll(html)(-1)) key=27 bounds(0,0,0,0) layerBounds(0,0,0,0) visible(0,0,69120,50820) building(0,0,69120,50820) componentAlpha(0,0,0,0) clip() asr() clipChain() ref=0x560e688bf170 agr=0x560e688bf170 hitTestInfo(0x1) hitTestArea(0,0,69120,50820)
CompositorHitTestInfo p=0x560e6892ebe0 f=0x560e688bf218(Canvas(html)(-1)) key=283 bounds(0,0,0,0) layerBounds(0,0,0,0) visible(0,0,69120,50820) building(0,0,69120,50820) componentAlpha(0,0,0,0) clip() asr(<0x560e688bf398>) clipChain(0x560e6892ecd0 <0,0,69120,50820> [root asr]) ref=0x560e688bf170 agr=0x560e688bf218 hitTestInfo(0x1) hitTestArea(0,0,69120,50820)
CompositorHitTestInfo p=0x560e6892eda8 f=0x560e688bf218(Canvas(html)(-1)) key=27 bounds(0,0,0,0) layerBounds(0,0,0,0) visible(0,0,69120,50820) building(0,0,69120,50820) componentAlpha(0,0,0,0) clip(0,0,69120,50820) asr(<0x560e688bf398>) clipChain(0x560e6892ed60 <0,0,69120,50820> [0x560e688bf398], 0x560e6892ecd0 <0,0,69120,50820> [root asr]) ref=0x560e688bf170 agr=0x560e688bf218 hitTestInfo(0x1) hitTestArea(0,0,69120,50820)
CanvasBackgroundColor p=0x560e6892ee98 f=0x560e688bf218(Canvas(html)(-1)) key=17 bounds(0,0,69120,50820) layerBounds(0,0,69120,50820) visible(0,0,69120,50820) building(0,0,69120,50820) componentAlpha(0,0,0,0) clip(0,0,69120,50820) asr(<0x560e688bf398>) clipChain(0x560e6892ed60 <0,0,69120,50820> [0x560e688bf398], 0x560e6892ecd0 <0,0,69120,50820> [root asr]) uniform ref=0x560e688bf170 agr=0x560e688bf218 (opaque 0,0,69120,50820) (rgba 255,255,255,255)
nsDisplayCanvas p=0x560e6892ef60 f=0x560e688c0050(HTMLCanvas(canvas)(0)) key=16 bounds(480,480,18000,9000) layerBounds(480,480,18000,9000) visible(0,0,69120,50820) building(0,0,69120,50820) componentAlpha(0,0,0,0) clip(0,0,69120,50820) asr(<0x560e688bf398>) clipChain(0x560e6892ed60 <0,0,69120,50820> [0x560e688bf398], 0x560e6892ecd0 <0,0,69120,50820> [root asr]) ref=0x560e688bf170 agr=0x560e688bf218
Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Paint() is not implemented!), at /builds/worker/checkouts/gecko/layout/painting/nsDisplayList.h:3232

This seems to point to nsDisplayCanvas as the item without an implemented Paint. Because we are calling PushItemAsImage we know that CreateWebRenderCommands returned false, the only way that happens is if the context type of the canvas element is none.

This is a little odd, the testcase doesn't have a canvas, so we must be painting some other document that the frontend code creates?
Thanks for the log. This is the context of the assert

Painting --- before optimization (dirty 0,0,69120,50820):
SolidColor p=0x560e6892f028 f=0x560e688bf170(Viewport(-1)) key=54 bounds(0,0,69120,50820) layerBounds(0,0,69120,50820) visible(0,0,69120,50820) building(0,0,69120,50820) componentAlpha(0,0,0,0) clip() asr() clipChain() uniform ref=0x560e688bf170 agr=0x560e688bf170 (opaque 0,0,69120,50820) (rgba 255,255,255,255)
CompositorHitTestInfo p=0x560e6892eaf0 f=0x560e688bf2f8(HTMLScroll(html)(-1)) key=27 bounds(0,0,0,0) layerBounds(0,0,0,0) visible(0,0,69120,50820) building(0,0,69120,50820) componentAlpha(0,0,0,0) clip() asr() clipChain() ref=0x560e688bf170 agr=0x560e688bf170 hitTestInfo(0x1) hitTestArea(0,0,69120,50820)
CompositorHitTestInfo p=0x560e6892ebe0 f=0x560e688bf218(Canvas(html)(-1)) key=283 bounds(0,0,0,0) layerBounds(0,0,0,0) visible(0,0,69120,50820) building(0,0,69120,50820) componentAlpha(0,0,0,0) clip() asr(<0x560e688bf398>) clipChain(0x560e6892ecd0 <0,0,69120,50820> [root asr]) ref=0x560e688bf170 agr=0x560e688bf218 hitTestInfo(0x1) hitTestArea(0,0,69120,50820)
CompositorHitTestInfo p=0x560e6892eda8 f=0x560e688bf218(Canvas(html)(-1)) key=27 bounds(0,0,0,0) layerBounds(0,0,0,0) visible(0,0,69120,50820) building(0,0,69120,50820) componentAlpha(0,0,0,0) clip(0,0,69120,50820) asr(<0x560e688bf398>) clipChain(0x560e6892ed60 <0,0,69120,50820> [0x560e688bf398], 0x560e6892ecd0 <0,0,69120,50820> [root asr]) ref=0x560e688bf170 agr=0x560e688bf218 hitTestInfo(0x1) hitTestArea(0,0,69120,50820)
CanvasBackgroundColor p=0x560e6892ee98 f=0x560e688bf218(Canvas(html)(-1)) key=17 bounds(0,0,69120,50820) layerBounds(0,0,69120,50820) visible(0,0,69120,50820) building(0,0,69120,50820) componentAlpha(0,0,0,0) clip(0,0,69120,50820) asr(<0x560e688bf398>) clipChain(0x560e6892ed60 <0,0,69120,50820> [0x560e688bf398], 0x560e6892ecd0 <0,0,69120,50820> [root asr]) uniform ref=0x560e688bf170 agr=0x560e688bf218 (opaque 0,0,69120,50820) (rgba 255,255,255,255)
nsDisplayCanvas p=0x560e6892ef60 f=0x560e688c0050(HTMLCanvas(canvas)(0)) key=16 bounds(480,480,18000,9000) layerBounds(480,480,18000,9000) visible(0,0,69120,50820) building(0,0,69120,50820) componentAlpha(0,0,0,0) clip(0,0,69120,50820) asr(<0x560e688bf398>) clipChain(0x560e6892ed60 <0,0,69120,50820> [0x560e688bf398], 0x560e6892ecd0 <0,0,69120,50820> [root asr]) ref=0x560e688bf170 agr=0x560e688bf218
Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Paint() is not implemented!), at /builds/worker/checkouts/gecko/layout/painting/nsDisplayList.h:3232

This seems to point to nsDisplayCanvas as the item without an implemented Paint. Because we are calling PushItemAsImage we know that CreateWebRenderCommands returned false, the only way that happens is if the context type of the canvas element is none.

Back to Bug 1639975 Comment 9