| Index: Source/core/svg/SVGFEDropShadowElement.cpp
|
| diff --git a/Source/core/svg/SVGFEDropShadowElement.cpp b/Source/core/svg/SVGFEDropShadowElement.cpp
|
| index 932e30e67e55f11db9e4917e2381d78b8880c3f5..24775e128e36b86bfa9db5dbe66bbbbb282017b1 100644
|
| --- a/Source/core/svg/SVGFEDropShadowElement.cpp
|
| +++ b/Source/core/svg/SVGFEDropShadowElement.cpp
|
| @@ -80,9 +80,6 @@ PassRefPtrWillBeRawPtr<FilterEffect> SVGFEDropShadowElement::build(SVGFilterBuil
|
| if (!layoutObject)
|
| return nullptr;
|
|
|
| - if (stdDeviationX()->currentValue()->value() < 0 || stdDeviationY()->currentValue()->value() < 0)
|
| - return nullptr;
|
| -
|
| ASSERT(layoutObject->style());
|
| const SVGComputedStyle& svgStyle = layoutObject->style()->svgStyle();
|
|
|
| @@ -93,7 +90,10 @@ PassRefPtrWillBeRawPtr<FilterEffect> SVGFEDropShadowElement::build(SVGFilterBuil
|
| if (!input1)
|
| return nullptr;
|
|
|
| - RefPtrWillBeRawPtr<FilterEffect> effect = FEDropShadow::create(filter, stdDeviationX()->currentValue()->value(), stdDeviationY()->currentValue()->value(), m_dx->currentValue()->value(), m_dy->currentValue()->value(), color, opacity);
|
| + // Clamp std.dev. to non-negative. (See SVGFEGaussianBlurElement::build)
|
| + float stdDevX = std::max(0.0f, stdDeviationX()->currentValue()->value());
|
| + float stdDevY = std::max(0.0f, stdDeviationY()->currentValue()->value());
|
| + RefPtrWillBeRawPtr<FilterEffect> effect = FEDropShadow::create(filter, stdDevX, stdDevY, m_dx->currentValue()->value(), m_dy->currentValue()->value(), color, opacity);
|
| effect->inputEffects().append(input1);
|
| return effect.release();
|
| }
|
|
|