| <p>This tests entering HTMLPlugInElement::isReplacementObscured() while the top document's style tree is dirty.<br> |
| WebKit should update the layout of all documents and should not hit any debug assertions.</p> |
| <style> input:focus { border: solid 5px black; } </style> |
| testRunner.setPluginSupportedMode("none"); |
| document.body.getBoundingClientRect(); |
| const frame = document.createElement('iframe'); |
| document.body.appendChild(frame); |
| const frameDocument = frame.contentDocument; |
| frameDocument.body.innerHTML = '<object name="testPlugin" type="application/x-webkit-test-netscape" width="200" height="200"></object>'; |
| frameDocument.addEventListener('beforeload', () => { |
| console.log('2. beforeload for the object fires and dirties the style tree'); |
| const input = document.createElement('input'); |
| input.setAttribute('autofocus', ''); |
| document.body.appendChild(input); |
| console.log('1. Updating the layout with an embed object inside an iframe'); |
| const rect = frameDocument.querySelector('object').getBoundingClientRect(); |
| console.log('3. Updated layout. The test passed.'); |