pointerevent_iframe-touch-action-none_touch.html (2034B)
1 <html> 2 <head> 3 <title>iframe touch-action:none does not prevent panning or zooming inside 4 the iframe</title> 5 <meta name="viewport" content="width=device-width"> 6 <link rel="stylesheet" type="text/css" href="pointerevent_styles.css"> 7 <script src="/resources/testharness.js"></script> 8 <script src="/resources/testharnessreport.js"></script> 9 <script src="pointerevent_support.js"></script> 10 <script src="/resources/testdriver.js"></script> 11 <script src="/resources/testdriver-actions.js"></script> 12 <script src="/resources/testdriver-vendor.js"></script> 13 </head> 14 <style> 15 iframe { 16 touch-action: none; 17 } 18 </style> 19 <body> 20 <h1>iframe touch-action:none attribute</h1> 21 <h2 id="pointerTypeDescription"></h2> 22 <br> 23 <iframe id="target"></iframe> 24 </body> 25 <script> 26 'use strict'; 27 28 function loadFrame() { 29 return new Promise(resolve => { 30 const frame = document.getElementById('target'); 31 frame.onload = resolve; 32 frame.src = 'resources/iframe-touch-action-none-subframe.html'; 33 }); 34 } 35 36 function messageReceived() { 37 return new Promise(resolve => { 38 window.addEventListener('message', (event) => { 39 if (event.source != target.contentWindow) { 40 return; 41 } 42 if (event.data && event.data.type == "subframe-event") { 43 resolve(event.data.eventType); 44 } 45 }); 46 }); 47 } 48 49 promise_test(async t => { 50 const target = document.getElementById("target"); 51 await loadFrame(); 52 53 const messagePromise = messageReceived(); 54 55 await new test_driver.Actions() 56 .addPointer("pointer1", "touch") 57 .pointerMove(0, 0, {origin: target}) 58 .pointerDown() 59 .pointerMove(25, 25, {origin: target}) 60 .pointerUp() 61 .send(); 62 63 const eventType = await messagePromise; 64 assert_equals(eventType, 'pointercancel'); 65 }, 'touch iframe received pointercancel'); 66 </script> 67 </html>