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

Issue 2490163002: Reland of "Tracking reference filter mutation via SVGElementProxy" (Closed)

Created:
4 years, 1 month ago by fs
Modified:
4 years, 1 month ago
Reviewers:
pdr., esprehn
CC:
ajuma+watch-canvas_chromium.org, darktears, apavlov+blink_chromium.org, blink-reviews, blink-reviews-css, blink-reviews-dom_chromium.org, blink-reviews-layout_chromium.org, blink-reviews-paint_chromium.org, blink-reviews-style_chromium.org, Rik, chromium-reviews, dglazkov+blink, dshwang, krit, eae+blinkwatch, f(malita), gavinp+loader_chromium.org, gyuyoung2, haraken, Nate Chapin, jchaffraix+rendering, Justin Novosad, kouhei+svg_chromium.org, leviw+renderwatch, loading-reviews+fetch_chromium.org, pdr+svgwatchlist_chromium.org, pdr+renderingwatchlist_chromium.org, rwlbuis, Stephen Chennney, sof, szager+layoutwatch_chromium.org, tyoshino+watch_chromium.org, zoltan1
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Reland of "Tracking reference filter mutation via SVGElementProxy" This introduces SVGElementProxy - a new piece with the functionality of DocumentResourceReference and the ReferenceFilterBuilder merged. It provides the means to track clients of a certain element (only SVGFilterElements for now, but will likely be extended to other types if it ends up sticking.) An SVGElementProxy is created, and primarily owned, by CSSURIValue. The proxy also handles loading of a resource document, if requested. Clients are SVGResourceClients, like before, with methods/callbacks renamed. Some of the old functionality of SVGResourceClient has either been moved to clients, to the proxy or been replaced with different solutions. Mutations to the element/subtree is signaled separately from any potential changes to the actual reference (anything that might invalidate the element reference.) Fixed an issue from [1] where an observer would be removed too early if there was several clients sharing it, causing crashes. [1] https://codereview.chromium.org/2401343002 BUG=439970 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Committed: https://crrev.com/c5de692783f306d25186d46039f8541c9c4ebbe0 Cr-Commit-Position: refs/heads/master@{#431235}

Patch Set 1 #

Patch Set 2 : Fix double observer unregistration; simplify scope selection; add tests #

Unified diffs Side-by-side diffs Delta from patch set Stats (+634 lines, -694 lines) Patch
A third_party/WebKit/LayoutTests/css3/filters/multiple-references-id-mutate-crash.html View 1 1 chunk +16 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/css3/filters/multiple-references-id-mutate-crash-2.html View 1 1 chunk +18 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/css3/filters/multiple-references-id-mutate-crash-2-expected.txt View 1 1 chunk +2 lines, -0 lines 0 comments Download
A third_party/WebKit/LayoutTests/css3/filters/multiple-references-id-mutate-crash-expected.txt View 1 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/css/CSSURIValue.h View 1 chunk +5 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/core/css/CSSURIValue.cpp View 2 chunks +15 lines, -15 lines 0 comments Download
M third_party/WebKit/Source/core/css/resolver/ElementStyleResources.h View 3 chunks +2 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/css/resolver/ElementStyleResources.cpp View 3 chunks +11 lines, -24 lines 0 comments Download
M third_party/WebKit/Source/core/css/resolver/FilterOperationResolver.cpp View 2 chunks +4 lines, -15 lines 0 comments Download
M third_party/WebKit/Source/core/dom/Document.h View 4 chunks +0 lines, -12 lines 0 comments Download
M third_party/WebKit/Source/core/dom/Document.cpp View 4 chunks +0 lines, -31 lines 0 comments Download
M third_party/WebKit/Source/core/dom/Element.h View 1 chunk +0 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/dom/Element.cpp View 3 chunks +1 line, -9 lines 0 comments Download
M third_party/WebKit/Source/core/dom/Node.h View 3 chunks +14 lines, -25 lines 0 comments Download
M third_party/WebKit/Source/core/dom/Node.cpp View 1 chunk +0 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/dom/StyleChangeReason.h View 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/dom/StyleChangeReason.cpp View 1 chunk +0 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/fetch/BUILD.gn View 1 chunk +0 lines, -1 line 0 comments Download
D third_party/WebKit/Source/core/fetch/DocumentResourceReference.h View 1 chunk +0 lines, -62 lines 0 comments Download
M third_party/WebKit/Source/core/frame/FrameView.cpp View 1 chunk +0 lines, -13 lines 0 comments Download
M third_party/WebKit/Source/core/layout/LayoutBoxModelObject.cpp View 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/BUILD.gn View 1 chunk +0 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceContainer.h View 4 chunks +5 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceContainer.cpp View 7 chunks +19 lines, -46 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceFilter.h View 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/svg/LayoutSVGResourceFilter.cpp View 2 chunks +5 lines, -1 line 0 comments Download
D third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.h View 1 chunk +0 lines, -60 lines 0 comments Download
D third_party/WebKit/Source/core/layout/svg/ReferenceFilterBuilder.cpp View 1 chunk +0 lines, -95 lines 0 comments Download
M third_party/WebKit/Source/core/paint/FilterEffectBuilder.cpp View 2 chunks +7 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.h View 6 chunks +2 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayer.cpp View 11 chunks +31 lines, -73 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayerFilterInfo.h View 2 chunks +6 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/paint/PaintLayerFilterInfo.cpp View 2 chunks +22 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/core/style/FilterOperation.h View 3 chunks +13 lines, -14 lines 0 comments Download
M third_party/WebKit/Source/core/style/FilterOperation.cpp View 3 chunks +22 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/style/FilterOperations.h View 2 chunks +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/style/FilterOperations.cpp View 2 chunks +14 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/core/svg/BUILD.gn View 2 chunks +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/svg/SVGDocumentExtensions.h View 2 chunks +3 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/svg/SVGDocumentExtensions.cpp View 1 chunk +0 lines, -1 line 0 comments Download
A third_party/WebKit/Source/core/svg/SVGElementProxy.h View 1 chunk +138 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/svg/SVGElementProxy.cpp View 1 1 chunk +196 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/svg/SVGFilterElement.h View 3 chunks +3 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/svg/SVGFilterElement.cpp View 4 chunks +7 lines, -17 lines 0 comments Download
M third_party/WebKit/Source/core/svg/SVGResourceClient.h View 1 chunk +9 lines, -18 lines 0 comments Download
D third_party/WebKit/Source/core/svg/SVGResourceClient.cpp View 1 chunk +0 lines, -86 lines 0 comments Download
M third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.h View 3 chunks +8 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2D.cpp View 2 chunks +23 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/canvas2d/CanvasRenderingContext2DState.cpp View 2 chunks +1 line, -9 lines 0 comments Download

Messages

Total messages: 16 (10 generated)
esprehn
lgtm
4 years, 1 month ago (2016-11-10 09:36:13 UTC) #5
esprehn
On 2016/11/10 at 09:36:13, esprehn wrote: > lgtm Can you comment in the change description ...
4 years, 1 month ago (2016-11-10 09:36:42 UTC) #6
fs
On 2016/11/10 at 09:36:42, esprehn wrote: > On 2016/11/10 at 09:36:13, esprehn wrote: > > ...
4 years, 1 month ago (2016-11-10 09:40:53 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2490163002/20001
4 years, 1 month ago (2016-11-10 12:43:10 UTC) #13
commit-bot: I haz the power
Committed patchset #2 (id:20001)
4 years, 1 month ago (2016-11-10 12:48:28 UTC) #14
commit-bot: I haz the power
4 years, 1 month ago (2016-11-10 12:50:15 UTC) #16
Message was sent while issue was closed.
Patchset 2 (id:??) landed as
https://crrev.com/c5de692783f306d25186d46039f8541c9c4ebbe0
Cr-Commit-Position: refs/heads/master@{#431235}

Powered by Google App Engine
This is Rietveld 408576698