compositing/geometry/foreground-layer.html
compositing/geometry/repaint-foreground-layer.html
do not paint borders correctly in NG.
I've attached the reduced test case border_nopaint.html
I've enabled paint tracing, and the output is attached as NG.json
CSS properties that are necessary to trigger the bug:
display: inline-block; (triggers PaintAtomicInline)
transform: translateZ(0);
overflow: hidden;
z-index: -1;
My guess is that some interaction between paint layers, and NG is causing this. If you look at NG display items, there is a
"Child Containment Layer" which I assume clips its children, so
that border painted by its children does not show up.
Interesting facts:
DIV.box first child is "Child Containment Layer"
DIV.box paints its border in DIV.box (foreground) Layer which is a child of the "Child Containment Layer"
My knowledge of CSS paint algorithm is not very deep, so I need some help trying to figure out what should be happening instead.
DIV.box is an AtomicInline, and only paints all of its parts at
once in PaintPhase::kForeground phase.
I think that the solution is something like "if AtomicInline has its
own layer, it should get painted using regular paint algorithm, and
not all at once during PaintPhase::kForeground"
|
Deleted:
border_nopaint.html
785 bytes
|
|
Deleted:
NG.json
11.7 KB
|
Comment 1 by atotic@chromium.org
, Jun 20 2018