| <body onload="runTest();"><!-- webkit-test-runner [ JavaScriptCanOpenWindowsAutomatically=false ] --> |
| <div>This tests the restrictions to entering full screen mode laid out in section 4.1 of the W3C |
| <a href="http://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html">Full Screen API</a></div> |
| <script src="full-screen-test.js"></script> |
| <script> |
| // 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 runTest = function() { |
| consoleWrite('"The context object is not in a document."'); |
| var div = document.createElement('div'); |
| waitForEventOnce(document, 'webkitfullscreenerror', step2); |
| runWithKeyDown(function(){div.webkitRequestFullscreen()}); |
| }; |
| |
| var step2 = function() { |
| consoleWrite('"The context object\'s node document, or an ancestor browsing context\'s document does not have the fullscreen enabled flag set."') |
| var iframe = document.documentElement.appendChild(document.createElement('iframe')); |
| iframe.setAttribute('allow', "fullscreen 'none'"); |
| var div = iframe.contentDocument.documentElement.appendChild(iframe.contentDocument.createElement('div')); |
| |
| waitForEventOnce(iframe.contentDocument, 'webkitfullscreenerror', step3); |
| runWithKeyDown(function(){div.webkitRequestFullscreen()}); |
| }; |
| |
| var step3 = function() { |
| consoleWrite('"The context object\'s node document fullscreen element stack is not empty and its top element is not an ancestor of the context object."'); |
| var div = document.documentElement.appendChild(document.createElement('div')); |
| var div2 = document.documentElement.appendChild(document.createElement('div')); |
| waitForEventOnce(document, 'webkitfullscreenchange', function() { |
| waitForEventOnce(document, 'webkitfullscreenerror', function() { |
| waitForEventOnce(document, 'webkitfullscreenchange', step4); |
| document.webkitExitFullscreen(); |
| }); |
| runWithKeyDown(function(){div2.webkitRequestFullscreen()}); |
| }); |
| runWithKeyDown(function(){div.webkitRequestFullscreen()}); |
| }; |
| |
| var step4 = function() { |
| consoleWrite('"A descendant browsing context\'s document has a non-empty fullscreen element stack."'); |
| var iframe = document.documentElement.appendChild(document.createElement('iframe')); |
| iframe.setAttribute('webkitallowfullscreen', 'true'); |
| var div = iframe.contentDocument.documentElement.appendChild(iframe.contentDocument.createElement('div')); |
| var div2 = document.documentElement.appendChild(document.createElement('div')); |
| waitForEventOnce(iframe.contentDocument, 'webkitfullscreenchange', function() { |
| waitForEventOnce(document, 'webkitfullscreenerror', function(){ |
| waitForEventOnce(iframe.contentDocument, 'webkitfullscreenchange', step5); |
| iframe.contentDocument.webkitExitFullscreen(); |
| }); |
| runWithKeyDown(function(){div2.webkitRequestFullscreen()}); |
| }); |
| runWithKeyDown(function(){div.webkitRequestFullscreen()}); |
| }; |
| |
| var step5 = function() { |
| consoleWrite('"This algorithm is not allowed to show a pop-up."'); |
| var div = document.documentElement.appendChild(document.createElement('div')); |
| waitForEventOnce(document, 'webkitfullscreenerror', endTest); |
| div.webkitRequestFullscreen(); |
| }; |
| } |
| </script> |