<!DOCTYPE HTML>
<html>
<head>
    <title></title>
    <style type="text/css">
        button.bef:before { content:'before'; }
        button.aft:after { content:'after'; }
        button.bef1:before { content:'BEFORE'; }
        button.aft1:after { content:'AFTER'; }
    </style>
    <script type="text/javascript">
        function test()
        {
            // force layout
            document.body.offsetTop;
            // change style, forcing generated content to update
            document.getElementById("a").style.color = "blue";
            document.getElementById("b").style.color = "blue";
            document.getElementById("c").style.color = "blue";
            document.getElementById("d").style.color = "blue";
            // remove generated content
            document.getElementById("e").className = "";
            document.getElementById("f").className = "";
            document.getElementById("g").className = "";
            document.getElementById("h").className = "";
            // add generated content
            document.getElementById("i").className = "bef";
            document.getElementById("j").className = "bef";
            document.getElementById("k").className = "aft";
            document.getElementById("l").className = "aft";
            // replace generated content
            document.getElementById("m").className = "bef";
            document.getElementById("n").className = "bef";
            document.getElementById("o").className = "aft";
            document.getElementById("p").className = "aft";
        }
    </script>
</head>
<body onload="test();">
    <p>
        This is a test of generated content in &lt;button>  for
        <i><a href="https://bugs.webkit.org/show_bug.cgi?id=9561">http://bugzilla.opendarwin.org/show_bug.cgi?id=9561</a>
        REGRESSION: Content property on :before of button causes hang on click or hover</i>.
    </p>
    <hr>
    <button id="a" class="bef"></button>
    <button id="b" class="bef">button</button>
    <br>
    <button id="c" class="aft"></button>
    <button id="d" class="aft">button</button>
    <br>
    <button id="e" class="bef"></button>
    <button id="f" class="bef">button</button>
    <br>
    <button id="g" class="aft"></button>
    <button id="h" class="aft">button</button>
    <br>
    <button id="i"></button>
    <button id="j">button</button>
    <br>
    <button id="k"></button>
    <button id="l">button</button>
    <br>
    <button id="m" class="bef1"></button>
    <button id="n" class="bef1">button</button>
    <br>
    <button id="o" class="aft1"></button>
    <button id="p" class="aft1">button</button>
    <br>
</body>
</html>
