New issue
Advanced search Search tips

Issue 917067 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Bug



Sign in to add a comment

-webkit-mask-size and -webkit-mask-composite don't interact correctly, mask image appears to be clipped

Reported by mab...@microsoft.com, Dec 20

Issue description

Chrome Version       : 71.0.3578.98 (Official Build) (64-bit) (cohort: Stable)
URLs (if applicable) : http://jsfiddle.net/2m8f6oaL/2/
Other browsers tested:
    Firefox: OK
       Edge: OK

What steps will reproduce the problem?
(1) Open jsfiddle linked above.

What is the expected result?
Only the intersection of where the repeat-x and repeat-y masks appear, which is an oval and a bit above it.

What happens instead?
The oval and small piece appear, but then it appears that outside the edges of the mask that has repeat-x, the repeat-y mask just displays without instersecting.

Please provide any additional information below. Attach a screenshot if
possible.

Tough to describe, sorry. It appears that the masks are correctly intersected at  the point that they should be, but it seems like outside of the bounds of the first mask, the second mask just displays rather than being intersected.
 
maskSizeAndComposite.png
16.7 KB View Download
Components: Blink>Paint
Labels: OS-Android OS-Chrome OS-Linux OS-Mac OS-Windows
Status: Available (was: Unconfirmed)
Standalone test case.
cr917067.html
536 bytes View Download
The mask-size is not essential to the bug really, except to make it possible to see the issue at all.

I suspect the best way to tackle this is starting with the Skia output and working backwards.
Labels: -Pri-3 Pri-2
In the display list we have the background rect painting, then a save layer with a kDst that first paints the vertical mask then paints the horizontal with srcIn. It seems like the error is in the setting up of the layer with DstIn.
I think the problem is that we don't actually "paint" the transparency in the top (non-bottom-most in general) layers of the mask-stack. (I.e when painting the top layer, the composite/blend operation only apply to the actual dest rect computed for that layer.)
TC sans images.
issue917067.html
744 bytes View Download

Sign in to add a comment