| Index: third_party/WebKit/Source/platform/graphics/filters/FilterEffect.cpp
|
| diff --git a/third_party/WebKit/Source/platform/graphics/filters/FilterEffect.cpp b/third_party/WebKit/Source/platform/graphics/filters/FilterEffect.cpp
|
| index 3c4448004c871e75ab4517c96f11987c6f3e9f5c..a533ca05316c0627b22fca8297fa4ab8bb4b2840 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/filters/FilterEffect.cpp
|
| +++ b/third_party/WebKit/Source/platform/graphics/filters/FilterEffect.cpp
|
| @@ -85,16 +85,20 @@ FloatRect FilterEffect::determineAbsolutePaintRect(const FloatRect& originalRequ
|
| return inputUnion;
|
| }
|
|
|
| -FloatRect FilterEffect::mapRectRecursive(const FloatRect& rect) const
|
| +FloatRect FilterEffect::mapRectRecursive(const FloatRect& rect, bool forward) const
|
| {
|
| - FloatRect result;
|
| - if (m_inputEffects.size() > 0) {
|
| - result = m_inputEffects.at(0)->mapRectRecursive(rect);
|
| + auto mapInputs = [this](const FloatRect& rect, bool forward)
|
| + {
|
| + if (!m_inputEffects.size())
|
| + return rect;
|
| + FloatRect result = m_inputEffects.at(0)->mapRectRecursive(rect, forward);
|
| for (unsigned i = 1; i < m_inputEffects.size(); ++i)
|
| - result.unite(m_inputEffects.at(i)->mapRectRecursive(rect));
|
| - } else
|
| - result = rect;
|
| - return mapRect(result);
|
| + result.unite(m_inputEffects.at(i)->mapRectRecursive(rect, forward));
|
| + return result;
|
| + };
|
| + return forward
|
| + ? mapRect(mapInputs(rect, forward), forward)
|
| + : mapInputs(mapRect(rect, forward), forward);
|
| }
|
|
|
| FilterEffect* FilterEffect::inputEffect(unsigned number) const
|
|
|