| <!DOCTYPE html> |
| <html> |
| <head> |
| <link rel="help" href="https://www.w3.org/TR/cssom-view-1/"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/testdriver.js"></script> |
| <script src="/resources/testdriver-actions.js"></script> |
| <script src="/resources/testdriver-vendor.js"></script> |
| <style> |
| body, h1 { margin: 20px; } |
| #vp { |
| height: 400px; |
| width: 600px; |
| overflow: scroll; |
| left: 10px; |
| top: 10px; |
| border: 5px solid #8cf; |
| } |
| </style> |
| </head> |
| <body> |
| <div id="vp"> |
| <div style="transform-style: preserve-3d"> |
| <h1 style="height:2000px; transform: translateZ(0)"> |
| Gazing into the stars |
| </h1> |
| </div> |
| </div> |
| <script> |
| promise_test(async () => { |
| let scroll_promise = new Promise((resolve, reject) => { |
| vp.addEventListener("scroll", resolve); |
| }); |
| await new test_driver.Actions().scroll(100, 100, 0, 50).send(); |
| await scroll_promise; |
| assert_true(vp.scrollTop > 0); |
| }, "Element is scrollable over preserve-3d descendant"); |
| </script> |
| </body> |
| </html> |