<!doctype html>
<meta charset="utf-8">
<title>CSS Overflow: scrollbar-gutter on the body is not propagated</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;
  }

  body {
    scrollbar-gutter: stable;
  }

  #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");
    }, "content, body and root have the same width");

    done();

  </script>
</body>
