"; } function addFrameSwitchingListeners(frame) { frame.contentWindow.addEventListener("focus", frameSwitchingEventOccured, false); frame.contentWindow.addEventListener("blur", frameSwitchingEventOccured, false); frame.contentDocument.addEventListener("focus", frameSwitchingEventOccured, false); frame.contentDocument.addEventListener("blur", frameSwitchingEventOccured, false); var node = frame.contentDocument.body.firstChild; node.addEventListener("focus", frameSwitchingEventOccured, false); node.addEventListener("blur", frameSwitchingEventOccured, false); } function frameSwitchingEventOccured(event) { if (!gExpectedEvents.length) { gEventMatched = false; return; } try { var events = gExpectedEvents.shift(); is(event.target, events[0], "event target"); is(event.type, events[1], "event type"); is(fm.focusedElement, events[2], "focused element"); is(fm.focusedWindow, events[3], "focused frame"); if (events[4]) is(fm.getFocusedElementForWindow(events[4], false, {}), events[5], "focused element in frame"); if (gEventMatched && event.target == events[0] && event.type == events[1] && fm.focusedElement == events[2] && fm.focusedWindow == events[3]) { if (!events[4] || fm.getFocusedElementForWindow(events[4], false, {}) == events[5]) return; } } catch (ex) { ok(ex, "exception"); } gEventMatched = false; } SimpleTest.waitForExplicitFinish(); SimpleTest.waitForFocus(startTest); ]]>