<html>
<head>
    <meta content="text/html; charset=windows-1251" http-equiv="Content-Type"/>
    <link rel="stylesheet" type="text/css" href="css-charset.css" charset="windows-1251">
    <!-- The document charset and link charset have lower priority than @charset, so they 
         shouldn't affect anything. -->
</head>
<body onload="test()">
<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=10676">bug 10676</a>:
@charset rules not accessible via DOM</p>

<p id="result"></p>

<script>
if (window.testRunner)
    testRunner.dumpAsText();

function test() {
  try {
    charsetRule = document.styleSheets[0].cssRules[0];
    document.getElementById("result").innerHTML = "cssText: " + charsetRule.cssText + "<br>encoding: " + charsetRule.encoding;
    document.getElementById("result").innerHTML += "<br>Resetting encoding...";
    charsetRule.encoding = "koi8-r";
    document.getElementById("result").innerHTML += "<br>cssText: " + charsetRule.cssText + "<br>encoding: " + charsetRule.encoding;
  } catch (ex) {
    document.getElementById("result").textContent = ex.toString();
  }
}
</script>

</body>
</html>
