browser_tab_touch_events.js (1967B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 add_task(async function () { 7 const URI = "data:text/html;charset=utf-8,<iframe id='test-iframe'></iframe>"; 8 9 await BrowserTestUtils.withNewTab( 10 { gBrowser, url: URI }, 11 async function (browser) { 12 await SpecialPowers.spawn(browser, [], test_init); 13 14 browser.browsingContext.touchEventsOverride = "disabled"; 15 16 await SpecialPowers.spawn(browser, [], test_body); 17 } 18 ); 19 }); 20 21 async function test_init() { 22 is( 23 content.browsingContext.touchEventsOverride, 24 "none", 25 "touchEventsOverride flag should be initially set to NONE" 26 ); 27 } 28 29 async function test_body() { 30 let bc = content.browsingContext; 31 is( 32 bc.touchEventsOverride, 33 "disabled", 34 "touchEventsOverride flag should be changed to DISABLED" 35 ); 36 37 let frameWin = content.document.querySelector("#test-iframe").contentWindow; 38 bc = frameWin.browsingContext; 39 is( 40 bc.touchEventsOverride, 41 "disabled", 42 "touchEventsOverride flag should be passed on to frames." 43 ); 44 45 let newFrame = content.document.createElement("iframe"); 46 content.document.body.appendChild(newFrame); 47 48 let newFrameWin = newFrame.contentWindow; 49 bc = newFrameWin.browsingContext; 50 is( 51 bc.touchEventsOverride, 52 "disabled", 53 "Newly created frames should use the new touchEventsOverride flag" 54 ); 55 56 // about:blank in the iframe has loaded synchronously 57 newFrameWin = newFrame.contentWindow; 58 bc = newFrameWin.browsingContext; 59 is( 60 bc.touchEventsOverride, 61 "disabled", 62 "Newly created frames should use the new touchEventsOverride flag" 63 ); 64 65 newFrameWin.location.reload(); 66 await ContentTaskUtils.waitForEvent(newFrame, "load"); 67 newFrameWin = newFrame.contentWindow; 68 bc = newFrameWin.browsingContext; 69 is( 70 bc.touchEventsOverride, 71 "disabled", 72 "New touchEventsOverride flag should persist across reloads" 73 ); 74 }