WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED DUPLICATE of
bug 47682
49866
Assert hit in WebCore::invalidateResourcesOfChildren in SVGRenderSupport.cpp
https://bugs.webkit.org/show_bug.cgi?id=49866
Summary
Assert hit in WebCore::invalidateResourcesOfChildren in SVGRenderSupport.cpp
Rob Buis
Reported
2010-11-20 09:33:28 PST
The following testcase triggers this assert: <svg xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
"> <rect id="rect" x="0" y="100" width="50" height="50" fill="white" mask="url(#mask4)"/> <defs> <mask id="mask4"> </mask> </defs> </svg> Though this unusual SVG, I am pretty sure it is valid. Cheers, Rob.
Attachments
Add attachment
proposed patch, testcase, etc.
Rob Buis
Comment 1
2010-11-20 09:39:16 PST
*** This bug has been marked as a duplicate of
bug 47682
***
Dirk Schulze
Comment 2
2010-11-20 09:42:57 PST
(In reply to
comment #0
)
> The following testcase triggers this assert: > > <svg xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
"> > <rect id="rect" x="0" y="100" width="50" height="50" fill="white" mask="url(#mask4)"/> > <defs> > <mask id="mask4"> > </mask> > </defs> > </svg> > > Though this unusual SVG, I am pretty sure it is valid. > Cheers, > > Rob.
If I reference the rect after the <defs> section by a <use> element, the test works, but if it is before this section, it asserts as well. So it might be a problem that the parsing of the document did not finished and the resources are unknown. Note, this only happens for mask and filter, but not for clipper, gradient or pattern.
Nikolas Zimmermann
Comment 3
2010-11-20 09:46:04 PST
(In reply to
comment #2
)
> (In reply to
comment #0
) > > The following testcase triggers this assert: > > > > <svg xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
"> > > <rect id="rect" x="0" y="100" width="50" height="50" fill="white" mask="url(#mask4)"/> > > <defs> > > <mask id="mask4"> > > </mask> > > </defs> > > </svg> > > > > Though this unusual SVG, I am pretty sure it is valid. > > Cheers, > > > > Rob. > > If I reference the rect after the <defs> section by a <use> element, the test works, but if it is before this section, it asserts as well. So it might be a problem that the parsing of the document did not finished and the resources are unknown. Note, this only happens for mask and filter, but not for clipper, gradient or pattern.
<use> elements are way trickier to understand. The attach time is different, the <use> rendering subtree is built delayed, so the layout flow is completly different than using no <use> element.
Dirk Schulze
Comment 4
2010-11-20 09:48:23 PST
(In reply to
comment #3
)
> (In reply to
comment #2
) > > (In reply to
comment #0
) > > > The following testcase triggers this assert: > > > > > > <svg xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
"> > > > <rect id="rect" x="0" y="100" width="50" height="50" fill="white" mask="url(#mask4)"/> > > > <defs> > > > <mask id="mask4"> > > > </mask> > > > </defs> > > > </svg> > > > > > > Though this unusual SVG, I am pretty sure it is valid. > > > Cheers, > > > > > > Rob. > > > > If I reference the rect after the <defs> section by a <use> element, the test works, but if it is before this section, it asserts as well. So it might be a problem that the parsing of the document did not finished and the resources are unknown. Note, this only happens for mask and filter, but not for clipper, gradient or pattern. > > <use> elements are way trickier to understand. The attach time is different, the <use> rendering subtree is built delayed, so the layout flow is completly different than using no <use> element.
Nevertheless, if you move the rect after the resource, it works.
Nikolas Zimmermann
Comment 5
2010-11-20 09:53:35 PST
(In reply to
comment #4
)
> (In reply to
comment #3
) > > (In reply to
comment #2
) > > > (In reply to
comment #0
) > > > > The following testcase triggers this assert: > > > > > > > > <svg xmlns="
http://www.w3.org/2000/svg
" xmlns:xlink="
http://www.w3.org/1999/xlink
"> > > > > <rect id="rect" x="0" y="100" width="50" height="50" fill="white" mask="url(#mask4)"/> > > > > <defs> > > > > <mask id="mask4"> > > > > </mask> > > > > </defs> > > > > </svg> > > > > > > > > Though this unusual SVG, I am pretty sure it is valid. > > > > Cheers, > > > > > > > > Rob. > > > > > > If I reference the rect after the <defs> section by a <use> element, the test works, but if it is before this section, it asserts as well. So it might be a problem that the parsing of the document did not finished and the resources are unknown. Note, this only happens for mask and filter, but not for clipper, gradient or pattern. > > > > <use> elements are way trickier to understand. The attach time is different, the <use> rendering subtree is built delayed, so the layout flow is completly different than using no <use> element. > > Nevertheless, if you move the rect after the resource, it works.
Sure, the order matters. I suspect we have a problem with the calls to RenderSVGResource:* in RenderSVGPath and other renderers.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug