<html>
<head>
<script>

function onload()
{
    if (window.testRunner)
        window.testRunner.waitUntilDone();
}

var iframesOpened = 0;

function iframeLoaded()
{
    if (++iframesOpened === 2) {
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.dumpChildFramesAsText();
            testRunner.notifyDone();
        }
    }
}

</script>
</head>

<body>
<div>
This tests that XML Viewer is not used when XML is opened in frame.
</div>
<iframe name="iframeFrame" onload="iframeLoaded()" style="border:10px solid gray;padding:25px" width="300" height="200" src="resources/frames-helper.xml"></iframe>
<object name="objectFrame" onload="iframeLoaded()" style="border:10px solid gray;padding:25px; width:300px; height:200px" data="resources/frames-helper.xml"></object>
</body>
</html>
