Chromium Code Reviews| Index: third_party/WebKit/Source/core/style/FilterOperation.cpp |
| diff --git a/third_party/WebKit/Source/core/style/FilterOperation.cpp b/third_party/WebKit/Source/core/style/FilterOperation.cpp |
| index 6308d7038524d54066c603caa56efdd43355da27..52500005ea962fa9f95a70bc85dbcea14e75a86e 100644 |
| --- a/third_party/WebKit/Source/core/style/FilterOperation.cpp |
| +++ b/third_party/WebKit/Source/core/style/FilterOperation.cpp |
| @@ -25,6 +25,7 @@ |
| #include "core/style/FilterOperation.h" |
| +#include "core/svg/SVGElementProxy.h" |
| #include "platform/LengthFunctions.h" |
| #include "platform/animation/AnimationUtilities.h" |
| #include "platform/graphics/filters/FEDropShadow.h" |
| @@ -44,6 +45,7 @@ FilterOperation* FilterOperation::blend(const FilterOperation* from, |
| } |
| DEFINE_TRACE(ReferenceFilterOperation) { |
| + visitor->trace(m_elementProxy); |
| visitor->trace(m_filter); |
| FilterOperation::trace(visitor); |
| } |
| @@ -55,6 +57,30 @@ FloatRect ReferenceFilterOperation::mapRect(const FloatRect& rect) const { |
| return lastEffect->mapRect(rect); |
| } |
| +ReferenceFilterOperation::ReferenceFilterOperation( |
| + const String& url, |
| + SVGElementProxy& elementProxy) |
| + : FilterOperation(REFERENCE), |
| + m_url(url), |
| + m_elementProxy(&elementProxy), |
| + m_elementProxyGeneration(elementProxy.generation()) {} |
| + |
| +void ReferenceFilterOperation::addClient(SVGResourceClient* client) { |
| + m_elementProxy->addClient(client); |
| +} |
| + |
| +void ReferenceFilterOperation::removeClient(SVGResourceClient* client) { |
| + m_elementProxy->removeClient(client); |
| +} |
| + |
| +bool ReferenceFilterOperation::operator==(const FilterOperation& o) const { |
| + if (!isSameType(o)) |
| + return false; |
| + const ReferenceFilterOperation& other = toReferenceFilterOperation(o); |
| + return m_url == other.m_url && m_elementProxy == other.m_elementProxy && |
| + m_elementProxyGeneration == other.m_elementProxyGeneration; |
|
esprehn
2016/10/25 01:18:42
What changes the generation?
fs
2016/10/25 15:00:53
All invalidations of the proxy (SVGElementProxy::p
|
| +} |
| + |
| FilterOperation* BasicColorMatrixFilterOperation::blend( |
| const FilterOperation* from, |
| double progress) const { |