<html>
<head>
<script>
function createIframe()
{
    var iframe = document.createElement("iframe");
    document.body.appendChild(iframe);
    var iframeDocument = iframe.contentDocument;
    var link = iframeDocument.createElement("link");
    link.setAttribute("rel", "stylesheet");
    link.setAttribute("href", "does_not_exist.css");
    iframeDocument.head.appendChild(link);
    if (window.testRunner) {
        testRunner.addUserStyleSheet("#test { color: blue: }", true);
        setTimeout("window.testRunner.notifyDone()", 100);
    }
}

if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
    testRunner.addUserStyleSheet("#test { color: red: }", true);
}
window.onload = createIframe;

</script>
</head>
<body>
This test requires DRT. It passes if it doesn't crash.
</body>
</html>
