Bug 310405
| Summary: | REGRESSION(306531@main): imported/w3c/web-platform-tests/html/canvas/element/manual/filters/canvas-filter-shadow-and-properties.html is a constant IMAGE failure on macOS 26.4 | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Said Abou-Hallawa <sabouhallawa> |
| Component: | Canvas | Assignee: | Said Abou-Hallawa <sabouhallawa> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | sabouhallawa, webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=306630 | ||
Said Abou-Hallawa
On macOS 26.4, CG draws CSS filters and canvas filters. If canvas context is set to apply both `filter` and `shadow` properties (shadowColor, shadowBlur, shadowOffsetX and shadowOffsetY), the shadow properties will be dropped.
Even if we manage to keep the shadow properties, the calculations of the transparency layer outsets are missing the shadow properties. More importantly CG filters makes drawing the filter and shadow interleave:
canvas drawing -> filter -> shadow -> filter
But this is different from what is expected:
canvas drawing -> shadow -> filter
This is an edge case (like canvas-filter-shadow-and-properties.html). The canvas `filter` should be used instead of using the `shadow` properties. Combing them should not happen in practice. So for this edge case, we can just fall back to software filters.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Said Abou-Hallawa
rdar://172871030
Said Abou-Hallawa
Pull request: https://github.com/WebKit/WebKit/pull/61052
EWS
Committed 309689@main (1243de61a95c): <https://commits.webkit.org/309689@main>
Reviewed commits have been landed. Closing PR #61052 and removing active labels.