Status: FAIL | Duration: 58ms | Subtests: 0/18 | Open test on wpt.live | wpt.fyi
Data from commit:
a50cb89 wpt: run reference-named files which are themselves tests (#836) (2026-09-03)
| Subtest | Status | Message |
|---|---|---|
| Window.scroll(auto): return type | FAIL | |
| Window.scroll(auto): promise behavior | FAIL | |
| Window.scroll(instant): return type | FAIL | |
| Window.scroll(instant): promise behavior | FAIL | |
| Window.scroll(smooth): return type | FAIL | |
| Window.scroll(smooth): promise behavior | FAIL | |
| Window.scrollTo(auto): return type | FAIL | |
| Window.scrollTo(auto): promise behavior | FAIL | |
| Window.scrollTo(instant): return type | FAIL | |
| Window.scrollTo(instant): promise behavior | FAIL | |
| Window.scrollTo(smooth): return type | FAIL | |
| Window.scrollTo(smooth): promise behavior | FAIL | |
| Window.scrollBy(auto): return type | FAIL | |
| Window.scrollBy(auto): promise behavior | FAIL | |
| Window.scrollBy(instant): return type | FAIL | |
| Window.scrollBy(instant): promise behavior | FAIL | |
| Window.scrollBy(smooth): return type | FAIL | |
| Window.scrollBy(smooth): promise behavior | FAIL |
/css/cssom-view/window-scroll-promises.html
<!DOCTYPE html> <title>Window.scroll* methods returning promises</title> <meta name="timeout" content="long"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="author" title="Mustaq Ahmed" href="mailto:mustaq@chromium.org"> <link rel="help" href="https://drafts.csswg.org/cssom-view/#extensions-to-the-window-interface"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/dom/events/scrolling/scroll_support.js"></script> <style> .filler { height: 10000px } </style> <div class="filler"></div> <script> "use strict"; const scroll_methods = ["scroll", "scrollTo", "scrollBy"]; function reset() { window.scrollTo({ top: 0 }); assert_equals(window.scrollY, 0, "Sanity check starting position"); } promise_setup(async () => { await waitForCompositorReady(); }); for (const scroll_method of scroll_methods) { for (const behavior of ["auto", "instant", "smooth"]) { const test_label = `Window.${scroll_method}(${behavior})`; promise_test(async () => { let result = window[scroll_method]({ behavior: behavior }); assert_true(result instanceof Promise); const result_value = await result; assert_equals(typeof result_value, "object"); assert_equals(typeof result_value.interrupted, "boolean"); }, `${test_label}: return type`); promise_test(async () => { reset(); const offset = 5000; let promise = window[scroll_method]({ top: offset, behavior: behavior }); if (behavior != "smooth") { assert_equals(window.scrollY, offset, "Position before await"); } else { assert_true(0 <= window.scrollY && window.scrollY < offset, "Position before await"); } const result_value = await promise; assert_equals(window.scrollY, offset, "Position after await"); assert_equals(typeof result_value, "object"); assert_equals(typeof result_value.interrupted, "boolean"); }, `${test_label}: promise behavior`); } } </script>