<!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.layoutTestController)
        layoutTestController.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>
