<!DOCTYPE html>
<html>
<body>
<p>This tests that the AutoFill button does not render when the field becomes disabled.</p>
<input type="password" id="password">
<script>
if (window.testRunner)
    testRunner.waitUntilDone();

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

if (window.internals)
    internals.setShowAutoFillButton(password, "Credentials");

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

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