Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(581)

Unified Diff: third_party/WebKit/Source/core/paint/PaintLayerFilterInfo.cpp

Issue 2490163002: Reland of "Tracking reference filter mutation via SVGElementProxy" (Closed)
Patch Set: Fix double observer unregistration; simplify scope selection; add tests Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/paint/PaintLayerFilterInfo.cpp
diff --git a/third_party/WebKit/Source/core/paint/PaintLayerFilterInfo.cpp b/third_party/WebKit/Source/core/paint/PaintLayerFilterInfo.cpp
index b2334a401e695d71a91f10ede4e37182aba8bdd4..d34a1825a7f7ea06a842c17ba4bf820070e4d4e3 100644
--- a/third_party/WebKit/Source/core/paint/PaintLayerFilterInfo.cpp
+++ b/third_party/WebKit/Source/core/paint/PaintLayerFilterInfo.cpp
@@ -30,7 +30,6 @@
#include "core/paint/PaintLayerFilterInfo.h"
#include "core/paint/PaintLayer.h"
-#include "core/style/FilterOperations.h"
#include "platform/graphics/filters/FilterEffect.h"
namespace blink {
@@ -42,19 +41,34 @@ PaintLayerFilterInfo::~PaintLayerFilterInfo() {
DCHECK(!m_layer);
}
+TreeScope* PaintLayerFilterInfo::treeScope() {
+ DCHECK(m_layer);
+ Node* node = m_layer->layoutObject()->node();
+ return node ? &node->treeScope() : nullptr;
+}
+
+void PaintLayerFilterInfo::resourceContentChanged() {
+ DCHECK(m_layer);
+ m_layer->layoutObject()->setShouldDoFullPaintInvalidation();
+ invalidateFilterChain();
+}
+
+void PaintLayerFilterInfo::resourceElementChanged() {
+ DCHECK(m_layer);
+ m_layer->layoutObject()->setShouldDoFullPaintInvalidation();
+ invalidateFilterChain();
+}
+
void PaintLayerFilterInfo::setLastEffect(FilterEffect* lastEffect) {
m_lastEffect = lastEffect;
}
-void PaintLayerFilterInfo::updateReferenceFilterClients(
- const FilterOperations& operations) {
- clearFilterReferences();
- addFilterReferences(operations, m_layer->layoutObject()->document());
+FilterEffect* PaintLayerFilterInfo::lastEffect() const {
+ return m_lastEffect;
}
-void PaintLayerFilterInfo::filterNeedsInvalidation() {
- if (m_layer)
- m_layer->filterNeedsPaintInvalidation();
+void PaintLayerFilterInfo::invalidateFilterChain() {
+ m_lastEffect = nullptr;
}
DEFINE_TRACE(PaintLayerFilterInfo) {
« no previous file with comments | « third_party/WebKit/Source/core/paint/PaintLayerFilterInfo.h ('k') | third_party/WebKit/Source/core/style/FilterOperation.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698