| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../../resources/testharness.js"></script> |
| <script src="../../../resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| |
| <div inert> |
| <iframe height=400 width=600 id="main-iframe"> |
| <frameset rows="*" cols="50,50"> |
| <frame src="resources/inert-focus-in-frames-frame1.html"> |
| <frame src='data:text/html,<div id="frame2-div" class="target" tabindex="0">Hello</div>'> |
| </frameset> |
| </iframe> |
| </div> |
| |
| <script> |
| setup({ explicit_done: true }); |
| |
| framesLoaded = 0; |
| numFrames = 4; |
| var mainIframe = document.getElementById('main-iframe'); |
| |
| function frameLoaded() { |
| framesLoaded++; |
| if (framesLoaded == numFrames) { |
| test(function() { |
| var frame1 = mainIframe.contentWindow.frames[0].document; |
| var target1 = frame1.querySelector('.target'); |
| testCantFocus(target1); |
| var iframe = frame1.querySelector('iframe').contentDocument; |
| testCantFocus(iframe.querySelector('.target')); |
| }, "Focus can't go into frames or iframes in inert subtree"); |
| done(); |
| } |
| } |
| |
| function testCantFocus(element) { |
| focusedElement = null; |
| element.addEventListener('focus', function() { focusedElement = element; }, false); |
| element.focus(); |
| theElement = element; |
| assert_false(focusedElement === theElement); |
| } |
| |
| mainIframe.contentDocument.write(mainIframe.textContent); |
| mainIframe.contentDocument.close(); |
| |
| mainIframe.contentWindow.frames[1].window.onload = frameLoaded; |
| |
| window.onload = frameLoaded; |
| </script> |
| </body> |
| </html> |