<html> 
<head>
<script src="../../resources/js-test-pre.js"></script>
<script> 
if (window.testRunner) 
    testRunner.dumpAsText(); 
 
window.onload = function() { 
    shouldBeTrue("(self.appletFrame1.document['app'].init) != undefined");
    shouldBeTrue("(self.appletFrame2.document['app'].init) == undefined");

    shouldBeTrue("(self.embedFrame1.document.getElementById('plugin').destroyStream) != undefined");
    shouldBeTrue("(self.embedFrame2.document.getElementById('plugin').destroyStream) == undefined");

    shouldBeTrue("(self.objectFrame1.document.getElementById('plugin').destroyStream) != undefined");
    shouldBeTrue("(self.objectFrame2.document.getElementById('plugin').destroyStream) == undefined");

    isSuccessfullyParsed();
} 
</script> 
</head> 
 
<body> 
    <p id="description"></p>
 
    <p>NOTE: The first sub-test will fail in DumpRenderTree, since DumpRenderTree
    does not support applets. That sub-test must be run in Safari instead.</p> 

    <div id="console"></div>

    <!-- Applets -->
    
    <iframe id="appletFrame1" name="appletFrame1" 
            style="width: 200px; height: 100px;" 
            src="resources/sandboxed-iframe-plugins-frame-applet.html"> 
    </iframe> 
    <iframe id="appletFrame2" name="appletFrame2"
            style="width: 200px; height: 100px;" 
            sandbox="allow-same-origin allow-scripts" 
            src="resources/sandboxed-iframe-plugins-frame-applet.html"> 
    </iframe> 

    <!-- Embeds -->
    
    <iframe id="embedFrame1" name="embedFrame1"
            style="width: 200px; height: 100px;"
            src="resources/sandboxed-iframe-plugins-frame-embed.html">
    </iframe>
    <iframe id="embedFrame2" name="embedFrame2"
            style="width: 200px; height: 100px;"
            sandbox="allow-same-origin"
            src="resources/sandboxed-iframe-plugins-frame-embed.html">
    </iframe>

    <!-- Objects -->
    
    <iframe id="objectFrame1" name="objectFrame1"
            style="width: 200px; height: 100px;"
            src="resources/sandboxed-iframe-plugins-frame-object.html">
    </iframe>
    <iframe id="objectFrame2" name="objectFrame2"
            style="width: 200px; height: 100px;"
            sandbox="allow-same-origin"
            src="resources/sandboxed-iframe-plugins-frame-object.html">
    </iframe>

    <script>
    description("This test verifies that sandboxing of plugins works as intended. Three tests are made, each in one sandboxed and one non-sandboxed IFrame: applets, embeds, and objects.");
    </script>
</body> 
</html> 
