tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 }