| <!DOCTYPE html> |
| <html> |
| <body> |
| <style> |
| #host:focus { |
| width: 50px; |
| height: 50px; |
| background: green; |
| overflow: hidden; |
| } |
| #host + div { |
| width: 100px; |
| height: 50px; |
| background: green; |
| } |
| #host:focus + div { |
| width: 50px; |
| height: 50px; |
| } |
| </style> |
| <div id="host"></div> |
| <div></div> |
| <script src="../../resources/ui-helper.js"></script> |
| <script> |
| |
| const shadowRoot = host.attachShadow({mode: 'closed', delegatesFocus: true}); |
| shadowRoot.innerHTML = `<div tabindex="0"></div> |
| <style> |
| div { width: 100px; height: 50px; background: green; } |
| </style>`; |
| const foucsableElement = shadowRoot.querySelector('div'); |
| |
| onload = runTest; |
| |
| async function runTest() { |
| if (!window.testRunner) |
| return; |
| |
| testRunner.waitUntilDone(); |
| |
| eventSender.mouseMoveTo(host.offsetLeft + 5, host.offsetTop + 5); |
| eventSender.mouseDown(); |
| eventSender.mouseUp(); |
| |
| await new Promise((resolve) => requestAnimationFrame(() => setTimeout(resolve, 0))); |
| |
| await UIHelper.resignFirstResponder(); |
| |
| await new Promise((resolve) => requestAnimationFrame(() => setTimeout(resolve, 0))); |
| |
| testRunner.notifyDone(); |
| } |
| |
| </script> |
| </body> |
| </html> |