";
}
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);
]]>