tor-browser

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

scrollbar-gutter-propagation-001.html (1706B)


      1 <!doctype html>
      2 <meta charset="utf-8">
      3 <title>CSS Overflow: scrollbar-gutter on the root, not scrolling</title>
      4 <link rel="author" title="Felipe Erias Morandeira" href="mailto:felipeerias@igalia.com" />
      5 <link rel="help" href="https://drafts.csswg.org/css-overflow-4/#scrollbar-gutter-property" />
      6 <script src="/resources/testharness.js"></script>
      7 <script src="/resources/testharnessreport.js"></script>
      8 <script src="/css/support/parsing-testcommon.js"></script>
      9 <style>
     10  body,
     11  html {
     12    margin: 0;
     13    padding: 0;
     14    border: none;
     15  }
     16 
     17  :root {
     18    scrollbar-gutter: stable;
     19  }
     20 
     21  #content {
     22    background: green;
     23    width: 100%;
     24    height: 100px;
     25  }
     26 </style>
     27 
     28 <body>
     29 
     30  <div id="content"></div>
     31 
     32  <script type="text/javascript">
     33    setup({ explicit_done: true });
     34 
     35    test(function () {
     36      let root = document.documentElement;
     37      let body = document.body;
     38      let content = document.getElementById('content');
     39 
     40      // Note: as per the CSSOM spec, the clientWidth of the root element is
     41      // "viewport width excluding the size of a rendered scroll bar (if any)"
     42      // which does not take scrollbar-gutter into account.
     43      // Since no such special case exists for offsetWidth, this means that here
     44      // root.clientWidth is actually greater than root.offsetWidth.
     45 
     46      assert_less_than(root.offsetWidth, window.innerWidth, "viewport has gutter");
     47      assert_equals(body.offsetWidth, root.offsetWidth, "body matches root");
     48      assert_equals(body.clientWidth, body.offsetWidth, "body has no gutter");
     49      assert_equals(content.offsetWidth, body.clientWidth, "content matches body");
     50    }, "viewport has gutter, others do not");
     51 
     52    done();
     53 
     54  </script>
     55 </body>