| <!doctype html> |
| <title>programatic focus() scrolls selection into view including ancestors</title> |
| <link rel="author" href="https://mozilla.org" title="Mozilla"> |
| <link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> |
| <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1644366"> |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| <div style="overflow: auto; height: 100px"> |
| <textarea style="overflow: hidden; height: 200px"> |
| Some text |
| That is surely more |
| Than 100px tall |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| For sure. |
| </textarea> |
| </div> |
| <script> |
| promise_test(async function(t) { |
| await new Promise(resolve => window.addEventListener("load", resolve)); |
| let textarea = document.querySelector("textarea"); |
| textarea.setSelectionRange(textarea.value.length, textarea.value.length); |
| textarea.focus(); |
| |
| await new Promise(resolve => { |
| requestAnimationFrame(() => requestAnimationFrame(resolve)); |
| }); |
| |
| assert_not_equals(textarea.parentNode.scrollTop, 0, "Should've scrolled ancestor to show the selection"); |
| }); |
| </script> |