| Summary: | Update handling of negative std.dev for feGaussianblur/feDropShadow | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Ahmad Saleem <ahmad.saleem792> | ||||
| Component: | SVG | Assignee: | Nobody <webkit-unassigned> | ||||
| Status: | NEW --- | ||||||
| Severity: | Normal | CC: | karlcow, sabouhallawa, simon.fraser, webkit-bug-importer, zimmermann | ||||
| Priority: | P2 | Keywords: | BrowserCompat, InRadar | ||||
| Version: | WebKit Nightly Build | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Attachments: |
|
||||||
|
Description
Ahmad Saleem
2023-06-20 11:12:11 PDT
This is a degenerate case.
Currently WebKit disables the effect of the whole filter graph if the standard deviation is negative. See this code in buildFilterEffectsGraph():
auto effect = effectElement.filterEffect(*inputs, destinationContext);
if (!effect)
return std::nullopt;
And see this code in SVGFEDropShadowElement::createFilterEffect():
if (stdDeviationX() < 0 || stdDeviationY() < 0)
return nullptr;
(In reply to Said Abou-Hallawa from comment #2) > This is a degenerate case. > > Currently WebKit disables the effect of the whole filter graph if the > standard deviation is negative. See this code in buildFilterEffectsGraph(): > > auto effect = effectElement.filterEffect(*inputs, destinationContext); > if (!effect) > return std::nullopt; > > And see this code in SVGFEDropShadowElement::createFilterEffect(): > > if (stdDeviationX() < 0 || stdDeviationY() < 0) > return nullptr; Good help! I was not aware of 'buildFilterEffectsGraph' part, should I do PR to match Chrome's behavior since it is aligned with web-spec? Created attachment 466835 [details]
test case
|