<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=x-mac-cyrillic">
<title>Frames and encodings</title>
<script>
if (window.layoutTestController) {
    layoutTestController.dumpAsText();
    layoutTestController.waitUntilDone();
}

window.done = function(charset) {
    document.open();
    document.write("<body><p>The following line should be your browser's default encoding, and not x-mac-cyrillic.</p>");
    document.write("<p>" + charset + "</p>");
    <!-- It's unlikely that anyone has x-mac-cyrillic as default -->

    document.close();

    if (window.layoutTestController)
        layoutTestController.notifyDone();
}
</script>
</head>
<frameset rows="0,*">
    <frame src="about:" scrolling=no marginwidth=0 marginheight=0>
    <frame src="resources/frame-default-enc-frame.html">
</frameset>
</html>
