<!DOCTYPE html>
<html>
<body>
<p>This tests that the search cancel button renders when the field becomes disabled (no change).</p>
<input type="search" id="search" value="search" style="width: 100px;">
<script>
if (window.testRunner)
    testRunner.waitUntilDone();

var search = document.getElementById("search");

function makeFieldDisabledAndNotifyDone()
{
    search.disabled = true;
    if (window.internals)
        internals.updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks();
    if (window.testRunner)
        testRunner.notifyDone();
}

window.setTimeout(makeFieldDisabledAndNotifyDone, 0);
</script>
</body>
</html>
