WebCore:
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 22 Nov 2007 05:23:20 +0000 (05:23 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 22 Nov 2007 05:23:20 +0000 (05:23 +0000)
commitfb795845344fac092f51fcc3b0fb0927ce88c435
tree683f1cce9e0b824453e1918634e4648480ebea53
parent57846003579f42f2a8c01b455d3d289be3d2075e
WebCore:

        Reviewed by Eric Seidel.

        - fix <rdar://problem/5607037> REGRESSION (r27351): Departure date does not repaint when changed on Google Maps public transit planner (16034)

        Test: fast/repaint/subtree-root-skipped.html

        * page/FrameView.cpp:
        (WebCore::FrameViewPrivate::FrameViewPrivate): Initialize the layout
        root to 0.
        (WebCore::FrameView::layoutRoot): Changed to return a RenderObject
        instead of a Node.
        (WebCore::FrameView::layout): Changed for layout root being a renderer
        rather than a DOM node. Also replaced clearing the repaint rects
        set with asserting that it is empty if this is the top-level call to
        layout(). If it is not, the set may contain rects from enclosing
        layout() and those should not be removed.
        (WebCore::FrameView::scheduleRelayout): Changed for layout root being
        a renderer rather than a DOM node.
        (WebCore::isObjectAncestorContainerOf): Added this helper function that
        tests whether one object will be marked by calling
        markContainingBlocksForLayout() on the other.
        (WebCore::FrameView::scheduleRelayoutOfSubtree): Changed for layout
        root being a renderer rather than a DOM node. Changed the check if new
        and current layout roots are on the same path from the root to use
        the subgraph of the render tree defined by container()hood instead of
        the DOM tree and parenthood.
        * page/FrameView.h:
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::calcWidth): Changed for layout root being a
        renderer rather than a DOM node.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::~RenderObject): Added an assertion that the
        object being deleted is not currently the layout root.
        (WebCore::RenderObject::scheduleRelayout): Changed for layout root being
        a renderer rather than a DOM node.

LayoutTests:

        Reviewed by Eric Seidel.

        - repaint test for <rdar://problem/5607037> REGRESSION (r27351): Departure date does not repaint when changed on Google Maps public transit planner (16034)

        * fast/repaint/subtree-root-skipped.html: Added.
        * platform/mac-leopard/fast/repaint/subtree-root-skipped-expected.checksum: Added.
        * platform/mac-leopard/fast/repaint/subtree-root-skipped-expected.png: Added.
        * platform/mac/fast/repaint/subtree-root-skipped-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@27952 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/fast/repaint/subtree-root-skipped.html [new file with mode: 0644]
LayoutTests/platform/mac-leopard/fast/repaint/subtree-root-skipped-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac-leopard/fast/repaint/subtree-root-skipped-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/fast/repaint/subtree-root-skipped-expected.txt [new file with mode: 0644]
WebCore/ChangeLog
WebCore/page/FrameView.cpp
WebCore/page/FrameView.h
WebCore/rendering/RenderBox.cpp
WebCore/rendering/RenderObject.cpp