[iOS] Unreviewed gardening.
[WebKit-https.git] / LayoutTests / fast / events / touch / ios / content-observation / style-recalc-schedule-and-force-relalc.html
1 <!DOCTYPE html><!-- webkit-test-runner [ useFlexibleViewport=true ] -->
2 <html>
3 <head>
4 <title>This test that we trigger hover when the content change starts as async but it turns into a sync style recalc.</title>
5 <script src="../../../../../resources/basic-gestures.js"></script>
6 <style>
7 #tapthis {
8     width: 400px;
9     height: 400px;
10     border: 1px solid green;
11 }
12
13 #staysHidden {
14     visibility: hidden;
15     width: 100px;
16     height: 100px;
17     background-color: green;
18 }
19 </style>
20 <script>
21 async function test() {
22     if (!window.testRunner || !testRunner.runUIScript)
23         return;
24     if (window.internals)
25         internals.settings.setContentChangeObserverEnabled(true);
26
27     testRunner.waitUntilDone();
28     testRunner.dumpAsText();
29
30     let rect = tapthis.getBoundingClientRect();
31     let x = rect.left + rect.width / 2;
32     let y = rect.top + rect.height / 2;
33
34     await tapAtPoint(x, y);
35 }
36 </script>
37 </head>
38 <body onload="test()">
39 <div id=tapthis>PASS if 'clicked' text is shown below.</div>
40 <div id=staysHidden></div>
41 <pre id=result></pre>
42 <script>
43 tapthis.addEventListener("mouseover", function( event ) {
44     // 1. Install a timer on hover
45     setTimeout(function() {
46         // 2. Trigger some non-forcing (non-visibility) style change with forcing offsetHeight.
47         staysHidden.style.marginLeft = "5px";
48
49         document.body.offsetHeight;
50     }, 0);
51     // 3. Install a longer, empty timer.
52     setTimeout(function() {
53     }, 5);
54 }, false);
55
56 staysHidden.addEventListener("click", function( event ) {   
57     result.innerHTML = "clicked hidden";
58 }, false);
59
60 tapthis.addEventListener("click", function( event ) {   
61     result.innerHTML = "clicked";
62     setTimeout(function() {
63         if (window.testRunner)
64             testRunner.notifyDone();
65     }, 0);
66 }, false);
67 </script>
68 </body>
69 </html>