<!DOCTYPE HTML> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=1175399 --> <head> <title>Test focus when page unloads</title> <script type="application/javascript;version=1.7" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> <script type="application/javascript;version=1.7" src="inputmethod_common.js"></script> <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/> </head> <body> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1175399">Mozilla Bug 1175399</a> <p id="display"></p> <pre id="test"> <script class="testbody" type="application/javascript;version=1.7"> inputmethod_setup(function() { runTest(); }); let appFrameScript = function appFrameScript() { let input = content.document.body.firstElementChild; input.focus(); content.setTimeout(function() { sendAsyncMessage('test:step'); }); }; function runTest() { let im = navigator.mozInputMethod; // Set current page as an input method. SpecialPowers.wrap(im).setActive(true); let iframe = document.createElement('iframe'); iframe.src = 'file_test_bug1175399.html'; iframe.setAttribute('mozbrowser', true); document.body.appendChild(iframe); let mm = SpecialPowers.getBrowserFrameMessageManager(iframe); im.oninputcontextchange = function() { is(false, 'should not receive inputcontextchange event'); }; iframe.addEventListener('mozbrowserloadend', function() { mm.addMessageListener('test:step', function() { let inputcontext = navigator.mozInputMethod.inputcontext; is(inputcontext, null, 'inputcontext is null'); inputmethod_cleanup(); }); mm.loadFrameScript('data:,(' + encodeURIComponent(appFrameScript.toString()) + ')();', false); }); } </script> </pre> </body> </html>