WebCore:

2009-06-22  David Levin  <levin@chromium.org>

        Reviewed by David Hyatt and Eric Seidel.

        REGRESSION: When the main page (ScrollView) has a custom scrollbar, it crashes on destruction.
        https://bugs.webkit.org/show_bug.cgi?id=26326

        Test: scrollbars/scrollbar-crash-on-refresh.html

        * dom/Document.cpp:
        (WebCore::Document::detach):
        Gives the FrameView a change to do any necessary cleanup on
        Document::detach() which is where the renderArena gets detroyed.
        * page/FrameView.cpp:
        (WebCore::FrameView::detachCustomScrollbars):
        Gets rid of any custom scrollbars (if the docment supplied them).
        * page/FrameView.h:
        * platform/Scrollbar.h:
        (WebCore::Scrollbar::isCustomScrollbar):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::destroy):
        Removed the check for document()->frame().  If frame() is 0 in this code,
        then the call to animation() is also incorrect (since it does document()->frame()->animation()).
        * rendering/RenderScrollbar.h:
        (WebCore::RenderScrollbar::isCustomScrollbar):

LayoutTests:

2009-06-22  David Levin  <levin@chromium.org>

        Reviewed by David Hyatt and Eric Seidel.

        REGRESSION: When the main page (ScrollView) has a custom scrollbar, it crashes on destruction.
        https://bugs.webkit.org/show_bug.cgi?id=26326

        Test that refreshing an iframe with custom scrollbars works without crashing.

        * scrollbars/resources/page-with-custom-scrollbars.html: Added.
        * scrollbars/scrollbar-crash-on-refresh-expected.txt: Added.
        * scrollbars/scrollbar-crash-on-refresh.html: Added.

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