<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}
function frameLoaded() {
    if (document.getElementById('f').contentDocument.styleSheets[0].cssRules[0].selectorText == "#success::before")
        document.getElementById('result').innerHTML = "SUCCESS";
    if (window.testRunner)
        testRunner.notifyDone();
}
</script>
<link rel=stylesheet href=resources/utf-16-little-endian.css>
<!-- This halts the parsing until stylesheet has been loaded -->
<script src=does_not_exists.js></script>
<div>Test that stylesheet with BOM is correctly parsed when loaded from cache. You should see word SUCCESS below.</div>
<!-- Load the stylesheet to a different frame. This will use a cached copy of the stylesheet. -->
<iframe id=f src=resources/css-cached-bom-frame.html></iframe>
<div id=result>FAIL</div>

