<!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();

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

        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>
