
<html>
    <head id="head">
        <script>
            if (window.internals && window.internals.settings)
                window.internals.settings.setDeferredCSSParserEnabled(true);
        </script>
        <link rel=stylesheet type="text/css" href="resources/basic-sheet.css?2">
            <script src="../../../resources/js-test-pre.js"></script>
    </head>
    <body>
        <script>
            document.body.offsetWidth;
            
                description("This tests deferred parsing of CSS style rules.");
                
                debug('');
                
                if (window.internals)
                    shouldBe("internals.deferredStyleRulesCount(document.styleSheets[0])", "2");
                
                var elt = document.createElement("div")
                elt.setAttribute("id", "unknown")
                
                document.body.appendChild(elt)
                document.body.offsetWidth;
                
                if (window.internals)
                    shouldBe("internals.deferredStyleRulesCount(document.styleSheets[0])", "1");
                
        </script>
        
        <script src="../../../resources/js-test-post.js"></script>
    </body>
</html>

