<!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/red.css" media="all" title="green" 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")[2];
        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>
