| <!DOCTYPE html> |
| <title>ResizeObserver content-box size and scrollbars</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1733042"> |
| <style> |
| #scrollContainer { |
| width: 100px; |
| height: 100px; |
| /* Should be bigger than any reasonable scrollbar */ |
| padding: 30px; |
| border: 10px solid blue; |
| overflow: scroll; |
| background: #818182; |
| } |
| |
| </style> |
| <div id="scrollContainer"></div> |
| <script> |
| promise_test(async function() { |
| let count = 0; |
| |
| const scrollContainer = document.getElementById('scrollContainer'); |
| // 20 to account for the border. |
| const scrollbarSize = scrollContainer.offsetWidth - scrollContainer.clientWidth - 20; |
| let size = await new Promise(resolve => { |
| const observer = new ResizeObserver(entries => { |
| resolve(entries[0].contentBoxSize[0]); |
| }); |
| observer.observe(scrollContainer); |
| }); |
| |
| assert_equals(size.inlineSize, 100 - scrollbarSize); |
| assert_equals(size.blockSize, 100 - scrollbarSize); |
| }); |
| </script> |