<html>
<!-- This page is meant to load inside the host browser like IE/FF -->
<head><title>Initialize hidden chrome frame</title>
<script type="text/javascript" src="chrome_frame_tester_helpers.js">
</script>
<script type="text/javascript">
var g_failure_timeout = null;
var g_test_id = 1;
var g_test_name = 'InitializeHidden';
var g_cf3_loaded = false;
function OnNavigationFailed() {
onFailure(g_test_name, g_test_id, 'ChromeFrame Navigation failed');
}
function OnObjectFocusFailed() {
appendStatus('chrome frame focus failed');
onFailure(g_test_name, g_test_id, 'Visibility test failed');
}
function OnCF1Loaded() {
appendStatus('Chrome frame 1 loaded, not visible yet.');
try {
// Make chrome frame visible
var cf1 = document.getElementById('CFDiv1');
cf1.style.visibility = 'visible';
appendStatus('Chrome frame 1 visibility - ' + cf1.style.visibility);
// Set focus to chrome frame. This should set focus to the
// first element inside the frame, which a script inside the
// page will detect and notify us back by sending us a message.
document.ChromeFrame1.focus();
g_failure_timeout = window.setTimeout(OnObjectFocusFailed, 10000);
} catch(e) {
appendStatus('Error setting focus to CF1. Error: ' + e.description);
onFailure(g_test_name, g_test_id, 'CF1 focus() error');
}
}
function OnCF1Message(evt) {
if (evt.data == 'btnOnFocus') {
window.clearTimeout(g_failure_timeout);
g_failure_timeout = null;
appendStatus('CF1 visible and focused');
// Now make second chrome frame instance visible
document.getElementById('CFDiv2').style.display = 'block';
appendStatus('Chrome frame 2 visible, should start loading now');
g_failure_timeout = window.setTimeout(OnObjectFocusFailed, 10000);
}
}
function OnCF2Loaded() {
appendStatus('Chrome frame 2 loaded');
try {
// Set focus to chrome frame. This should set focus to the
// first element inside the frame, which a script inside the
// page will detect and notify us back by sending us a message.
// We set focus on a timeout as on IE it takes a while for the window
// to become visible.
setTimeout(SetFocusToCF2, 1000);
} catch(e) {
appendStatus('Error setting focus to CF2. Error: ' + e.description);
onFailure(g_test_name, g_test_id, 'CF2 focus() error');
}
}
function SetFocusToCF2() {
try {
document.ChromeFrame2.focus();
} catch (e) {
appendStatus('SetFocusToCF2: Error: ' + e.description);
onFailure(g_test_name, g_test_id, 'SetFocusToCF2 error ' +
e.description);
}
}
function OnCF2Message(evt) {
if (evt.data == 'btnOnFocus') {
window.clearTimeout(g_failure_timeout);
g_failure_timeout = null;
appendStatus('CF2 visible and focused');
onSuccess(g_test_name, g_test_id);
}
}
</script>
</head>
<body>
<div id="CFDiv1" style="visibility: hidden;"></div>
<script type="text/javascript">
insertControl("CFDiv1",
{ "id": "ChromeFrame1",
"width": "300",
"height": "80",
"src": "simple_object_focus_cf.html",
"eventHandlers": { "onload": "OnCF1Loaded();",
"onloaderror": "OnNavigationFailed();",
"onmessage": "OnCF1Message(arguments[0]);" },
"objectAttributes": { "tabindex": "0" },
"embedAttributes": {"id": null}
});
</script>
<div id="CFDiv2" style="display: none;"></div>
<script type="text/javascript">
insertControl("CFDiv2",
{ "id": "ChromeFrame2",
"width": "300",
"height": "80",
"src": "simple_object_focus_cf.html",
"eventHandlers": { "onload": "OnCF2Loaded();",
"onloaderror": "OnNavigationFailed();",
"onmessage": "OnCF2Message(arguments[0]);" },
"objectAttributes": { "tabindex": "1" },
"embedAttributes": { "id": null}
});
</script>
<div id="statusPanel" style="border: 1px solid red; width: 100%">
Test running....
</div>
</body>
</html>