LayoutTests:

        Reviewed by Darin and Hyatt.

        - test for http://bugzilla.opendarwin.org/show_bug.cgi?id=9561
          REGRESSION: Content property on :before of button causes hang on click or hover

        * fast/forms/button-generated-content-expected.checksum: Added.
        * fast/forms/button-generated-content-expected.png: Added.
        * fast/forms/button-generated-content-expected.txt: Added.
        * fast/forms/button-generated-content.html: Added.

WebCore:

        Reviewed by Darin and Hyatt.

        - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9561
          REGRESSION: Content property on :before of button causes hang on click or hover

        Test: fast/forms/button-generated-content.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::setStyle):
        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::updatePseudoChild): Added. Calls updatePseudoChildForObject()
        on the button itself or on its inner div, if it has one.
        * rendering/RenderButton.h:
        (WebCore::RenderButton::createsAnonymousWrapper): Added. Returns true.
        * rendering/RenderContainer.cpp:
        (WebCore::RenderContainer::pseudoChild): Added. Returns the child containing
        generated content of the requested type if there is one, or otherwise the
        child before/after which such generated content should come.
        (WebCore::RenderContainer::updatePseudoChild): Removed the child parameter and moved the guts
        of this method into updatePseudoChildForObject, which this method calls unless the object
        is an anonymous wrapper.
        (WebCore::RenderContainer::updatePseudoChildForObject): Added. Does the what
        updatePseudoChildForObject did previously, but fetches the pseudo style from
        the styledObject parameter.
        * rendering/RenderContainer.h:
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::setStyle):
        (WebCore::RenderInline::addChildToFlow):
        (WebCore::RenderInline::splitInlines):
        (WebCore::RenderInline::splitFlow):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::createsAnonymousWrapper): Added. This method replaces
        allowsReusingAnonymousChild and returns the opposite of what that method used to
        return. Returns true if the object creates an anonymous child to contain all its
        other children.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@15079 268f45cc-cd09-0410-ab3c-d52691b4dbfc
13 files changed