<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/utils.js"></script>
<body>

<input id="input1" autofocus>
<select><option>o1</option></select>

<script>
"use strict";

// WebKit had a bug that reattaching RenderObject triggered autofocus again.
// https://bugs.webkit.org/show_bug.cgi?id=68513
promise_test(async () => {
  const input1 = document.querySelector('input');
  const select = document.querySelector('select');

  await waitUntilStableAutofocusState();
  assert_equals(document.activeElement, input1);
  input1.onblur = () => { input1.type = 'password'; };
  select.focus();
  await waitUntilStableAutofocusState();
  assert_equals(document.activeElement, select);
}, 'Changing input type should not refocus on the element.');
</script>
</body>
