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

Side by Side Diff: third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceFilter.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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
4 * Copyright (C) 2005 Eric Seidel <eric@webkit.org> 4 * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
5 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> 5 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 void LayoutSVGResourceFilter::willBeDestroyed() { 53 void LayoutSVGResourceFilter::willBeDestroyed() {
54 disposeFilterMap(); 54 disposeFilterMap();
55 LayoutSVGResourceContainer::willBeDestroyed(); 55 LayoutSVGResourceContainer::willBeDestroyed();
56 } 56 }
57 57
58 bool LayoutSVGResourceFilter::isChildAllowed(LayoutObject* child, 58 bool LayoutSVGResourceFilter::isChildAllowed(LayoutObject* child,
59 const ComputedStyle&) const { 59 const ComputedStyle&) const {
60 return child->isSVGResourceFilterPrimitive(); 60 return child->isSVGResourceFilterPrimitive();
61 } 61 }
62 62
63 SVGElementProxySet* LayoutSVGResourceFilter::elementProxySet() {
64 return &toSVGFilterElement(*element()).elementProxySet();
65 }
66
63 void LayoutSVGResourceFilter::removeAllClientsFromCache( 67 void LayoutSVGResourceFilter::removeAllClientsFromCache(
64 bool markForInvalidation) { 68 bool markForInvalidation) {
65 // LayoutSVGResourceFilter::removeClientFromCache will be called for 69 // LayoutSVGResourceFilter::removeClientFromCache will be called for
66 // all clients through markAllClientsForInvalidation so no explicit 70 // all clients through markAllClientsForInvalidation so no explicit
67 // display item invalidation is needed here. 71 // display item invalidation is needed here.
68 disposeFilterMap(); 72 disposeFilterMap();
69 markAllClientsForInvalidation(markForInvalidation 73 markAllClientsForInvalidation(markForInvalidation
70 ? LayoutAndBoundariesInvalidation 74 ? LayoutAndBoundariesInvalidation
71 : ParentOnlyInvalidation); 75 : ParentOnlyInvalidation);
72 } 76 }
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 continue; 133 continue;
130 // Since all effects shares the same attribute value, all 134 // Since all effects shares the same attribute value, all
131 // or none of them will be changed. 135 // or none of them will be changed.
132 if (!primitive->setFilterEffectAttribute(effect, attribute)) 136 if (!primitive->setFilterEffectAttribute(effect, attribute))
133 return; 137 return;
134 nodeMap->invalidateDependentEffects(effect); 138 nodeMap->invalidateDependentEffects(effect);
135 139
136 // Issue paint invalidations for the image on the screen. 140 // Issue paint invalidations for the image on the screen.
137 markClientForInvalidation(filter.key, PaintInvalidation); 141 markClientForInvalidation(filter.key, PaintInvalidation);
138 } 142 }
139 markAllResourceClientsForInvalidation(); 143 notifyContentChanged();
140 } 144 }
141 145
142 } // namespace blink 146 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698