| <!doctype HTML> |
| |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <style> |
| div { |
| contain: style layout; |
| } |
| </style> |
| <div id="outer"> |
| Outer |
| <div id="inner"> |
| Inner |
| <div id="innermost"> |
| Innermost |
| </div> |
| </div> |
| </div> |
| <a id="innerLink" href="#inner">Click</a> |
| <a id="innermostLink" href ="#innermost">Click</a> |
| <script> |
| 'use strict'; |
| function prepareTest() { |
| innermost.onbeforeactivate = inner.onbeforeactivate = outer.onbeforeactivate = null; |
| return Promise.all([outer.displayLock.acquire({ timeout: Infinity, activatable: true }), |
| inner.displayLock.acquire({ timeout: Infinity, activatable: true })]); |
| } |
| |
| promise_test(() => { |
| return new Promise((resolve, reject) => { |
| prepareTest().then(() => { |
| assert_true(inner.displayLock.locked); |
| inner.onbeforeactivate = (e) => { |
| assert_equals(e.activatedElement, inner); |
| resolve(); |
| } |
| innerLink.click(); |
| }); |
| }); |
| }, "Activation through anchor link fires beforeactivate on locked element"); |
| </script> |