SVG layout leaves objects still needing layout
authorschenney@chromium.org <schenney@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 21 Mar 2012 20:49:40 +0000 (20:49 +0000)
committerschenney@chromium.org <schenney@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 21 Mar 2012 20:49:40 +0000 (20:49 +0000)
commit00205e8c0aa6bf64be382ad7b00f8f22a33ef35a
tree12c8b4e3a6031cf40a587c7a6a65f77a7ba842c4
parent4b2884d8b60b0e934315f57ad4306eded8c3b5b7
SVG layout leaves objects still needing layout
https://bugs.webkit.org/show_bug.cgi?id=81006

Reviewed by Nikolas Zimmermann.

Source/WebCore:

Change the layout of SVG objects such that resources that trigger
layout of other objects are handled in a distinct pass, and then
objects still requiring layout are laid out again.

Test: svg/custom/delete-text-innerText-crash.html

* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::layout):
* rendering/svg/RenderSVGResourceMarker.cpp:
(WebCore::RenderSVGResourceMarker::layout):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::layout):
(WebCore::RenderSVGRoot::addResourceForClientInvalidation):
(WebCore):
* rendering/svg/RenderSVGRoot.h:
(RenderSVGRoot):

LayoutTests:

* svg/custom/delete-text-crash-expected.png: Removed.
* svg/custom/delete-text-crash-expected.txt:
* svg/custom/delete-text-crash.html:
* svg/custom/delete-text-innerText-crash-expected.txt: Added.
* svg/custom/delete-text-innerText-crash.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@111601 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/svg/custom/delete-text-crash-expected.png [deleted file]
LayoutTests/svg/custom/delete-text-crash-expected.txt
LayoutTests/svg/custom/delete-text-crash.html
LayoutTests/svg/custom/delete-text-innerText-crash-expected.txt [new file with mode: 0644]
LayoutTests/svg/custom/delete-text-innerText-crash.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp
Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp
Source/WebCore/rendering/svg/RenderSVGRoot.cpp
Source/WebCore/rendering/svg/RenderSVGRoot.h