Index: third_party/WebKit/Source/core/svg/SVGResourceClient.h |
diff --git a/third_party/WebKit/Source/core/svg/SVGResourceClient.h b/third_party/WebKit/Source/core/svg/SVGResourceClient.h |
index e3f8ec0b36da34d7b73629f4ce5094e695ee0834..58b4f5378f9c9a8ee6f2412c75245c6a397f413d 100644 |
--- a/third_party/WebKit/Source/core/svg/SVGResourceClient.h |
+++ b/third_party/WebKit/Source/core/svg/SVGResourceClient.h |
@@ -7,26 +7,35 @@ |
#include "core/CoreExport.h" |
#include "core/fetch/DocumentResource.h" |
+#include "core/svg/SVGFilterElement.h" |
#include "platform/heap/Handle.h" |
namespace blink { |
-class TreeScope; |
+class Document; |
+class FilterOperations; |
class CORE_EXPORT SVGResourceClient : public DocumentResourceClient { |
+ USING_PRE_FINALIZER(SVGResourceClient, clearFilterReferences); |
+ |
public: |
- virtual ~SVGResourceClient() {} |
+ SVGResourceClient(); |
+ ~SVGResourceClient() override; |
+ void addFilterReferences(const FilterOperations&, const Document&); |
+ void clearFilterReferences(); |
- virtual TreeScope* treeScope() = 0; |
+ virtual void filterNeedsInvalidation() = 0; |
- virtual void resourceContentChanged() = 0; |
- virtual void resourceElementChanged() = 0; |
+ void filterWillBeDestroyed(SVGFilterElement*); |
- protected: |
- SVGResourceClient() {} |
+ void notifyFinished(Resource*) override; |
+ String debugName() const override { return "SVGResourceClient"; } |
- String debugName() const override { return "SVGResourceClient"; } |
- void notifyFinished(Resource*) override { resourceElementChanged(); } |
+ DECLARE_TRACE(); |
+ |
+ private: |
+ HeapHashSet<WeakMember<SVGFilterElement>> m_internalFilterReferences; |
+ HeapVector<Member<DocumentResource>> m_externalFilterReferences; |
}; |
} // namespace blink |