| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset=utf-8> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <style> |
| |
| iframe { |
| position: absolute; |
| left: 0; |
| top: 0; |
| width: 400px; |
| height: 400px; |
| } |
| |
| </style> |
| </head> |
| <body> |
| <iframe></iframe> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script src="../utils.js"></script> |
| <script> |
| |
| 'use strict'; |
| |
| promise_test(async () => { |
| const body = document.body; |
| body.style.width = `${window.innerWidth * 2}px`; |
| body.style.height = `${window.innerHeight * 2}px`; |
| |
| const iframe = body.firstElementChild; |
| const target = iframe.contentDocument.body.appendChild(document.createElement("div")); |
| target.setAttribute("style", ` |
| position: absolute; |
| left: 0; |
| top: 0; |
| width: 100%; |
| height: 100%; |
| touch-action: none; |
| `); |
| |
| await new Promise(resolve => setTimeout(resolve, 100)); |
| await ui.swipe({ x: 150, y: 150 }, { x: 50, y: 50 }); |
| assert_equals(window.pageXOffset, 0, "The page was not scrolled in the x-axis."); |
| assert_equals(window.pageYOffset, 0, "The page was not scrolled in the y-axis."); |
| }, "Testing that setting touch-action: none on an iframe's content and interacting with it does prevents page scrolling."); |
| |
| </script> |
| </body> |
| </html> |