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

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

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

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

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