<head>
    <title></title>
    <script>
        if (window.testRunner)
            testRunner.waitUntilDone();

        function test()
        {
            document.getElementById("topCell").style.display = "none";
            document.getElementById("bottomCell").style.backgroundImage="url(../replaced/resources/1x1-green.png)";
            document.getElementById("result").innerText = "SUCCESS"
            if (window.testRunner)
                testRunner.notifyDone();
        }
    </script>
</head>
<body>
    <p>
        Test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=13774">http://bugs.webkit.org/show_bug.cgi?id=13774</a>
        REGRESSION: Crash emailing blog entry using Google Reader</i>.
    </p>
    <p id="result">
        FAIL (test did not complete)
    </p>
    <img src="../replaced/resources/1x1-green.png" onload="test()">
    <table style="border-collapse: collapse;">
        <tbody>
            <tr>
                <td id="topCell"></td>
            </tr>
            <tr>
                <td id="bottomCell"></td>
            </tr>
        </tbody>
    </table>
</body>
