Commit 6897baf2 authored by tony@chromium.org's avatar tony@chromium.org
Browse files

2010-07-12 Tony Chang <tony@chromium.org>

        Reviewed by David Hyatt.

        crash in FrameView::detachCustomScrollbars
        https://bugs.webkit.org/show_bug.cgi?id=41196

        * scrollbars/hidden-iframe-scrollbar-crash-expected.txt: Added.
        * scrollbars/hidden-iframe-scrollbar-crash.html: Added.
2010-07-12  Tony Chang  <tony@chromium.org>

        Reviewed by David Hyatt.

        crash in FrameView::detachCustomScrollbars
        https://bugs.webkit.org/show_bug.cgi?id=41196

        Test: scrollbars/hidden-iframe-scrollbar-crash.html

        * page/FrameView.cpp:
        (WebCore::FrameView::detachCustomScrollbars):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63138 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 8d4f8c86
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
2010-07-12  Tony Chang  <tony@chromium.org>
        Reviewed by David Hyatt.
        crash in FrameView::detachCustomScrollbars
        https://bugs.webkit.org/show_bug.cgi?id=41196
        * scrollbars/hidden-iframe-scrollbar-crash-expected.txt: Added.
        * scrollbars/hidden-iframe-scrollbar-crash.html: Added.
2010-07-12  Eric Seidel  <eric@webkit.org>
        Reviewed by Adam Barth.
+4 −0
Original line number Diff line number Diff line

This tests to make sure that an iframe with custom scrollbars that is hidden does not crash the browser when unloaded. The test passes if it does not crash.

PASSED
+38 −0
Original line number Diff line number Diff line
<style>
::-webkit-scrollbar {
  width: 16px;
}
</style>

<body>
<iframe id="iframe" width="1"></iframe>
<p>This tests to make sure that an iframe with custom scrollbars that is
hidden does not crash the browser when unloaded.  The test passes if it does
not crash.</p>
</body>

<script>
function runTest()
{
    if (document.location.search == "?done") {
        document.body.appendChild(document.createTextNode("PASSED"));
        if (window.layoutTestController)
            layoutTestController.notifyDone();
        return;
    }

    if (window.layoutTestController) {
        layoutTestController.waitUntilDone();
        layoutTestController.dumpAsText();
    }

    setTimeout(function() {
      document.getElementById("iframe").style.display = "none";

      // Unload the page to see if the crash is triggered.
      document.location.href = "?done";
    }, 0);
}

runTest();
</script>
+12 −0
Original line number Diff line number Diff line
2010-07-12  Tony Chang  <tony@chromium.org>
        Reviewed by David Hyatt.
        crash in FrameView::detachCustomScrollbars
        https://bugs.webkit.org/show_bug.cgi?id=41196
        Test: scrollbars/hidden-iframe-scrollbar-crash.html
        * page/FrameView.cpp:
        (WebCore::FrameView::detachCustomScrollbars):
2010-07-12  Eric Seidel  <eric@webkit.org>
        Reviewed by Adam Barth.
+2 −2
Original line number Diff line number Diff line
@@ -275,11 +275,11 @@ void FrameView::detachCustomScrollbars()
        return;

    Scrollbar* horizontalBar = horizontalScrollbar();
    if (horizontalBar && horizontalBar->isCustomScrollbar() && !toRenderScrollbar(horizontalBar)->owningRenderer()->isRenderPart())
    if (horizontalBar && horizontalBar->isCustomScrollbar())
        setHasHorizontalScrollbar(false);

    Scrollbar* verticalBar = verticalScrollbar();
    if (verticalBar && verticalBar->isCustomScrollbar() && !toRenderScrollbar(verticalBar)->owningRenderer()->isRenderPart())
    if (verticalBar && verticalBar->isCustomScrollbar())
        setHasVerticalScrollbar(false);

    if (m_scrollCorner) {