<!DOCTYPE html>
<html>
    <head>
        <script>
            var runPixelTests = true;
            
            function init() {
                // Bail out early if the full screen API is not enabled or is missing:
                if (Element.prototype.webkitRequestFullScreen == undefined) {
                    logResult(false, "Element.prototype.webkitRequestFullScreen == undefined");
                    endTest();
                } else {
                    var iframe = document.getElementById('block1');
                    var element = iframe.contentDocument.documentElement;
                    waitForEventAndEnd(element, 'webkitfullscreenchange');
                    runWithKeyDown(goFullScreen);
                }
            }
            
            function goFullScreen() {
               var iframe = document.getElementById('block1');
               var element = iframe.contentDocument.documentElement;
               element.webkitRequestFullScreen();
            }
        </script>
        <script src="full-screen-test.js"></script>
        <style>
            #block1 {
                width: 200px;
                height: 100px;
                border: 4px solid darkgreen;
                background-color: green;
                z-index: 0;
            }
            #block2 {
                width: 100px;
                height: 50px;
                border: 4px solid darkred;
                background-color: red;
                z-index: 500;
                position: relative;
                left: 50px;
                top: 25px;
            }
        </style>
    </head>
    <body onload="init()">
        <div>This tests that an element with a positive z-index appears behind the full screen element.  
             After entering full screen mode, only a white box should be visible.
             Click <button onclick="goFullScreen()">go full screen</button> to run the test.</div>
        <div id="block2"></div>
        <iframe webkitallowfullscreen src="resources/inner.html" id="block1"></iframe>
    </body>
