<html>
<head id="head">
    <style id="inlineRules">
        #foo { background-color: red; }
    </style>
    <link rel="stylesheet" href="data:text/css,">
</head>
<body>
    <p>
        Test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=13563">http://bugs.webkit.org/show_bug.cgi?id=13563</a>
        REGRESSION: Crash loading message in Yahoo! Mail</i>.
    </p>
    <p>
        The following line should say SUCCESS in green letters over a white background.
    </p>
    <div id="foo">SUCCESS</div>
    <script>
        if (window.layoutTestController)
            layoutTestController.dumpAsText();

        // Force a layout ignoring pending stylesheets
        document.body.offsetTop;

        var inline = document.getElementById("inlineRules");
        // This will delete the rule (duh) but since we have
        // pending stylesheets, will NOT update the style selector
        inline.sheet.deleteRule(0);

        // Make ourselves need a style recalc, so that
        // updateRendering() will do something when called soon
        document.getElementById("foo").style.color = "green";
    </script>
</body>
</html>
