<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<link rel="stylesheet" href="resources/red.css" media="all" title="Default Style Sheet" type="text/css" />
<link rel="alternate stylesheet" href="resources/green.css" media="all" title="green" type="text/css" />
<script type="text/javascript">
    if (window.testRunner)
        testRunner.dumpAsText();

    var red = document.getElementsByTagName("link")[0];
    red.disabled = true;
    var green = document.getElementsByTagName("link")[1];
    green.disabled = true;
    green.disabled = false;

    function test() {
        var console = document.getElementById("console");
        if (getComputedStyle(console, null).backgroundColor === "rgb(0, 128, 0)")
            console.innerHTML = "PASSED";
        else
            console.innerHTML = "FAILED, background = " + getComputedStyle(console, null).backgroundColor;
    }
    window.addEventListener("load", test, false);
</script>
</head>
<body>
<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=65140">65140</a>: REGRESSION (r84327-r84329): CSS stylesheets fail to load on www.flagstar.com login page</p>
<p>This test PASSED if PASSED is written below (alternatively the next line should have a GREEN background).</p>
<div id="console">FAILED</div>
</body>
</html>
