<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
</head>
<body>
<p><b>BUG ID:</b> <a href="rdar://problem/5523503">rdar://problem/5523503</a> Safari crashes clicking scroll bar in FaceBook 'Trips'</p>

<p id="test" style="background-color:skyblue; padding:3px;"><b>STEPS TO TEST:</b> 
Drag the scroll thumb in each of the vertical scrollbars below.
</p>

<p id="success" style="background-color:palegreen; padding:3px;"><b>TEST PASS:</b> 
Each scrollbar will disappear when clicked, along with the box containing it, but the browser will not crash as you continue to drag.
</p>

<p id="failure" style="background-color:#FF3300; padding:3px;"><b>TEST FAIL:</b>  
The scrollbar will disappear and Safari will crash as you continue dragging.
</p>

<div style="height: 120px;">
    <div id="overflow" style="overflow: auto; height: 100px; width: 100px; background-color: lightblue;">
        <div style="height: 200px;"></div>
    </div>
</div>
<div>
    <select multiple="true" id="listbox" style="height: 100px; width: 100px;">
        <option>One</option>
        <option>Two</option>
        <option>Three</option>
        <option>Four</option>
        <option>Five</option>
        <option>Six</option>
        <option>Seven</option>
        <option>Eight</option>
        <option>Nine</option>
        <option>Ten</option>
    </select>
</div>
<script>
    var overflow = document.getElementById("overflow");
    var listbox = document.getElementById("listbox");

    function mousedown(event)
    {
        if (event.target.id)
            setTimeout(event.target.id + '.style.display = "none"', 0);
    }

    overflow.addEventListener("mousedown", mousedown, false);
    listbox.addEventListener("mousedown", mousedown, false);
</script>
</body>
</html>
