RESOLVED FIXED 89686
Incorrect handling of chained pending resources in SVGUseElement
https://bugs.webkit.org/show_bug.cgi?id=89686
Summary Incorrect handling of chained pending resources in SVGUseElement
Florin Malita
Reported 2012-06-21 12:45:32 PDT
Created attachment 148866 [details] The indirectly referenced resource is not rendered. SVGUseElement is currently building pending resources when the target is inserted into the tree, without checking first whether the target itself has any pending resources. So depending on document order, chained <use>s can yield incomplete results.
Attachments
The indirectly referenced resource is not rendered. (269 bytes, image/svg+xml)
2012-06-21 12:45 PDT, Florin Malita
no flags
Patch (15.95 KB, patch)
2012-07-11 14:28 PDT, Florin Malita
no flags
Florin Malita
Comment 1 2012-07-11 14:19:22 PDT
The problematic case is <use> on <use>, when the target <use> has pending resources. The referencing element builds its shadow and instance trees when the target <use> becomes available, and the shadow tree expansion only captures a snapshot of the tree at that time. Later on, when the pending resources for the target element are resolved, the referencing <use> never refreshes its shadow tree. To support arbitrary <use> on <use> constructs, we need some way to track these dependencies and update the referencing trees when the target trees get rebuilt. I have a patch that takes advantage of SVGDocumentExtensions' m_elementDependencies for this purpose.
Florin Malita
Comment 2 2012-07-11 14:28:41 PDT
Nikolas Zimmermann
Comment 3 2012-07-12 00:54:05 PDT
Comment on attachment 151777 [details] Patch Beautiful! I'm happy that you've reused the elementDependencies set, it was meant as general solution to be adapted for <use>: great that you've tackled this! r=me.
WebKit Review Bot
Comment 4 2012-07-12 05:26:20 PDT
Comment on attachment 151777 [details] Patch Clearing flags on attachment: 151777 Committed r122449: <http://trac.webkit.org/changeset/122449>
WebKit Review Bot
Comment 5 2012-07-12 05:26:25 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.