1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
6 add_task(async function () {
7 const URI = "data:text/html;charset=utf-8,<iframe id='test-iframe'></iframe>";
9 await BrowserTestUtils.withNewTab(
10 { gBrowser, url: URI },
11 async function (browser) {
12 await SpecialPowers.spawn(browser, [], test_init);
14 browser.browsingContext.touchEventsOverride = "disabled";
16 await SpecialPowers.spawn(browser, [], test_body);
21 async function test_init() {
23 content.browsingContext.touchEventsOverride,
25 "touchEventsOverride flag should be initially set to NONE"
29 async function test_body() {
30 let bc = content.browsingContext;
32 bc.touchEventsOverride,
34 "touchEventsOverride flag should be changed to DISABLED"
37 let frameWin = content.document.querySelector("#test-iframe").contentWindow;
38 bc = frameWin.browsingContext;
40 bc.touchEventsOverride,
42 "touchEventsOverride flag should be passed on to frames."
45 let newFrame = content.document.createElement("iframe");
46 content.document.body.appendChild(newFrame);
48 let newFrameWin = newFrame.contentWindow;
49 bc = newFrameWin.browsingContext;
51 bc.touchEventsOverride,
53 "Newly created frames should use the new touchEventsOverride flag"
56 // Wait for the non-transient about:blank to load.
57 await ContentTaskUtils.waitForEvent(newFrame, "load");
58 newFrameWin = newFrame.contentWindow;
59 bc = newFrameWin.browsingContext;
61 bc.touchEventsOverride,
63 "Newly created frames should use the new touchEventsOverride flag"
66 newFrameWin.location.reload();
67 await ContentTaskUtils.waitForEvent(newFrame, "load");
68 newFrameWin = newFrame.contentWindow;
69 bc = newFrameWin.browsingContext;
71 bc.touchEventsOverride,
73 "New touchEventsOverride flag should persist across reloads"