| <!doctype HTML> |
| <html> |
| <meta charset="utf8"> |
| <title>Display Locking: locked attribute</title> |
| <link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org"> |
| <link rel="help" href="https://github.com/WICG/display-locking"> |
| |
| <style> |
| #container { |
| contain: style layout; |
| } |
| </style> |
| |
| <div id="container"></div> |
| |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| |
| <script> |
| async_test((t) => { |
| async function runTest() { |
| const container = document.getElementById("container"); |
| t.step(() => assert_false(container.displayLock.locked, "initial context is unlocked")); |
| |
| const acquire_promise = container.displayLock.acquire({ timeout: Infinity }); |
| t.step(() => assert_true(container.displayLock.locked, "context before acquire finishes is locked")); |
| |
| await acquire_promise; |
| t.step(() => assert_true(container.displayLock.locked, "context after acquire finishes is locked")); |
| |
| const update_promise = container.displayLock.update(); |
| t.step(() => assert_true(container.displayLock.locked, "context during update is locked")); |
| |
| await update_promise; |
| t.step(() => assert_true(container.displayLock.locked, "context after update is locked")); |
| |
| const commit_promise = container.displayLock.commit(); |
| t.step(() => assert_false(container.displayLock.locked, "context during commit is unlocked")); |
| |
| await commit_promise; |
| t.step(() => assert_false(container.displayLock.locked, "context after commit is unlocked")); |
| |
| t.done(); |
| } |
| |
| window.onload = function() { |
| requestAnimationFrame(() => requestAnimationFrame(runTest)); |
| }; |
| }, "locked attribute"); |
| </script> |
| </html> |