Remove FrameView::m_firstVisuallyNonEmptyLayoutCallbackPending
[WebKit-https.git] / LayoutTests / fast / forms / ios / inputmode-none-removed.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
5 <script src="../../../resources/js-test.js"></script>
6 <script src="../../../resources/ui-helper.js"></script>
7 </head>
8 <body>
9 <input inputmode="none">
10 <div id="countdown"></div>
11 <script>
12 jsTestIsAsync = true;
13
14 description('This tests updating inputmode of an input element from "none" to "text". The software keyboard should be updated.<br>'
15     + 'To manually test, focus the input element below. The software keyboard should show up after 3 seconds');
16
17 const input = document.querySelector("input");
18 if (!window.testRunner) {
19     input.addEventListener('focus', () => {
20         let countdown = 3;
21         const id = setInterval(() => {
22             document.getElementById('countdown').textContent = countdown ? countdown : '';
23             if (!countdown) {
24                 clearInterval(id);
25                 input.removeAttribute('inputmode');
26             }
27             countdown--;
28         }, 1000);
29     });
30 }
31
32 async function runTest() {
33     debug('Element has inputmode=none');
34
35     let didResize = () => { };
36     window.visualViewport.addEventListener('resize', () => didResize());
37
38     if (window.testRunner) {
39         await UIHelper.activateFormControl(input);
40         window.keyboardRect = await UIHelper.inputViewBounds();
41         shouldBe('keyboardRect.height', '0');
42     } else {
43         await new Promise((resolve) => { didResize = resolve; });
44         shouldBeTrue('document.documentElement.clientHeight - visualViewport.height < 100');
45     }
46
47     if (window.testRunner)
48         input.removeAttribute('inputmode');
49
50     await new Promise((resolve) => { didResize = resolve; });
51
52     debug('');
53     debug('inputmode has been removed');
54
55     if (window.testRunner) {
56         window.keyboardRect = await UIHelper.inputViewBounds();
57         shouldBeTrue('keyboardRect.height > 0');
58     } else
59         shouldBeTrue('document.documentElement.clientHeight - visualViewport.height > 300');
60
61     finishJSTest();
62 }
63
64 window.onload = () => setTimeout(runTest, 0);
65
66 </script>
67 </body>
68 </html>