<html>
<head>
    <style>
        select::selection { color: red; }
        input[type="button"]::selection { color: red; }
    </style>
    <script>
        function test() {
            if (window.testRunner)
                testRunner.dumpAsText();
            document.execCommand("SelectAll");
            if (window.testRunner)
                testRunner.displayAndTrackRepaints();
        }
    </script>
</head>
<body onload="test()">
    This tests that this crasher is fixed:<br>
    http://bugs.webkit.org/show_bug.cgi?id=10139<br>
    REGRESSION: Reproducible crash when selecting a popup/button with ::selection pseudostyle"<br>
    <select>
        <option>Option 1</option>
    </select>
    <input type="button" value="button"></input>
</body>
</html>
