Index: third_party/WebKit/Source/core/style/FilterOperation.h |
diff --git a/third_party/WebKit/Source/core/style/FilterOperation.h b/third_party/WebKit/Source/core/style/FilterOperation.h |
index 234d8bb5a7b84c1807b05955b8843562c6a548f7..cf564f9f3524cb46233bb6d2c5a3177db66a288c 100644 |
--- a/third_party/WebKit/Source/core/style/FilterOperation.h |
+++ b/third_party/WebKit/Source/core/style/FilterOperation.h |
@@ -38,6 +38,8 @@ |
namespace blink { |
class Filter; |
+class SVGResourceClient; |
+class SVGElementProxy; |
// CSS Filters |
@@ -128,8 +130,8 @@ class CORE_EXPORT FilterOperation |
class CORE_EXPORT ReferenceFilterOperation : public FilterOperation { |
public: |
static ReferenceFilterOperation* create(const String& url, |
- const AtomicString& fragment) { |
- return new ReferenceFilterOperation(url, fragment); |
+ SVGElementProxy& elementProxy) { |
+ return new ReferenceFilterOperation(url, elementProxy); |
} |
bool affectsOpacity() const override { return true; } |
@@ -137,33 +139,30 @@ class CORE_EXPORT ReferenceFilterOperation : public FilterOperation { |
FloatRect mapRect(const FloatRect&) const override; |
const String& url() const { return m_url; } |
- const AtomicString& fragment() const { return m_fragment; } |
Filter* getFilter() const { return m_filter.get(); } |
void setFilter(Filter* filter) { m_filter = filter; } |
+ SVGElementProxy& elementProxy() const { return *m_elementProxy; } |
+ |
+ void addClient(SVGResourceClient*); |
+ void removeClient(SVGResourceClient*); |
+ |
DECLARE_VIRTUAL_TRACE(); |
private: |
+ ReferenceFilterOperation(const String& url, SVGElementProxy&); |
+ |
FilterOperation* blend(const FilterOperation* from, |
double progress) const override { |
NOTREACHED(); |
return nullptr; |
} |
- bool operator==(const FilterOperation& o) const override { |
- if (!isSameType(o)) |
- return false; |
- const ReferenceFilterOperation* other = |
- static_cast<const ReferenceFilterOperation*>(&o); |
- return m_url == other->m_url; |
- } |
- |
- ReferenceFilterOperation(const String& url, const AtomicString& fragment) |
- : FilterOperation(REFERENCE), m_url(url), m_fragment(fragment) {} |
+ bool operator==(const FilterOperation&) const override; |
String m_url; |
- AtomicString m_fragment; |
+ Member<SVGElementProxy> m_elementProxy; |
Member<Filter> m_filter; |
}; |