<!DOCTYPE html>
<html>
<body>
<p>This tests that a disabled field with the Strong Password AutoFill buttons renders identical to a disabled field with the Strong Confirmation AutoFill button. It can only be tested in the test tool.</p>
<input type="password" placeholder="disabled" disabled>
<br>
<input type="password" value="A quick brown fox jumped over the lazy dog." disabled>
<br>
<input type="password" value="A quick brown fox jumped over the lazy dog." style="width:300px" disabled>
<script>
if (window.internals) {
    var inputElements = document.getElementsByTagName("input");
    for (let inputElement of inputElements) {
        internals.setAutofilled(inputElement, true);
        internals.setShowAutoFillButton(inputElement, "StrongPassword");
    }
}
</script>
</body>
</html>
