<!doctype html>
<meta charset="utf-8">
<title>CSS Overflow: scrollbar-gutter on the root with overflow:scroll</title>
<link rel="author" title="Felipe Erias Morandeira" href="mailto:felipeerias@igalia.com" />
<link rel="help" href="https://drafts.csswg.org/css-overflow-4/#scrollbar-gutter-property" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
<style>
  body,
  html {
    margin: 0;
    padding: 0;
    border: none;
  }

  :root {
    scrollbar-gutter: stable;
    overflow: scroll;
  }

  #content {
    background: green;
    width: 100%;
    height: 100px;
  }
</style>

<body>

  <div id="content"></div>

  <script type="text/javascript">
    setup({ explicit_done: true });

    test(function () {
      let root = document.documentElement;
      let body = document.body;
      let content = document.getElementById('content');
      assert_equals(body.offsetWidth, root.offsetWidth, "root width");
      assert_equals(content.offsetWidth, body.offsetWidth, "content width");
    }, "root, body and content have the same width");

    done();

  </script>
</body>
