tor-browser

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

browser_markup_scrollable_badge.js (1777B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 // Tests that the scrollable badge is shown next to scrollable elements, and is updated
      7 // dynamically when necessary.
      8 
      9 const TEST_URI = `
     10  <style type="text/css">
     11    #wrapper {
     12      width: 300px;
     13      height: 300px;
     14      overflow: scroll;
     15    }
     16    #wrapper.no-scroll {
     17      overflow: hidden;
     18    }
     19    #content {
     20      height: 1000px;
     21    }
     22  </style>
     23  <div id="wrapper">
     24    <div id="content"></div>
     25  </div>
     26 `;
     27 
     28 add_task(async function () {
     29  const { inspector } = await openInspectorForURL(
     30    "data:text/html;charset=utf-8," + encodeURIComponent(TEST_URI)
     31  );
     32 
     33  let badge = await getBadgeEl(inspector);
     34  ok(badge, "The scrollable badge exists on the test node");
     35 
     36  info("Make the test node non-scrollable");
     37  let onStateChanged = inspector.walker.once("scrollable-change");
     38  await toggleScrollableClass();
     39  await onStateChanged;
     40 
     41  badge = await getBadgeEl(inspector);
     42  ok(!badge, "The scrollable badge doesn't exist anymore");
     43 
     44  info("Make the test node scrollable again");
     45  onStateChanged = inspector.walker.once("scrollable-change");
     46  await toggleScrollableClass();
     47  await onStateChanged;
     48 
     49  badge = await getBadgeEl(inspector);
     50  ok(badge, "The scrollable badge exists again");
     51 });
     52 
     53 async function getBadgeEl(inspector) {
     54  const wrapperMarkupContainer = await getContainerForSelector(
     55    "#wrapper",
     56    inspector
     57  );
     58  return wrapperMarkupContainer.elt.querySelector(
     59    ".inspector-badge.scrollable-badge"
     60  );
     61 }
     62 
     63 async function toggleScrollableClass() {
     64  await SpecialPowers.spawn(gBrowser.selectedBrowser, [], async function () {
     65    content.document.querySelector("#wrapper").classList.toggle("no-scroll");
     66  });
     67 }