| <script src="full-screen-test.js"></script> |
| <style> |
| #float { |
| margin: 10px 0 0 10px; |
| height: 50px; |
| width: 50px; |
| float: left; |
| background-color: red; |
| } |
| #clear { |
| clear:left; |
| } |
| #one { |
| background-color: lightblue; |
| float: left; |
| } |
| #two { |
| background-color: lightgreen; |
| } |
| </style> |
| <body> |
| <div>This layout test checks that the offset positions of the blue and green divs does not change when the red div enters full-screen mode. Press <button onclick="document.getElementById('float').webkitRequestFullScreen()">go full-screen</a> to begin.</div> |
| <div id="float"></div> |
| <div id="one">One</div> |
| <div id="clear" /> |
| <span id="two">Two</span> |
| <script> |
| var one = document.getElementById('one'); |
| var two = document.getElementById('two'); |
| |
| // 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 oneState = {'offsetLeft': one.offsetLeft, 'offsetTop': one.offsetTop }; |
| var twoState = {'offsetLeft': two.offsetLeft, 'offsetTop': two.offsetTop }; |
| |
| |
| var callback; |
| var fullscreenChanged = function(event) |
| { |
| if (callback) |
| callback(event) |
| }; |
| waitForEvent(document, 'webkitfullscreenchange', fullscreenChanged); |
| |
| var div = document.getElementById('float'); |
| |
| var divEnteredFullScreen = function() { |
| testExpected("document.webkitCurrentFullScreenElement", div); |
| testExpected("one.offsetLeft", oneState.offsetLeft); |
| testExpected("one.offsetTop", oneState.offsetTop); |
| testExpected("two.offsetLeft", twoState.offsetLeft); |
| testExpected("two.offsetTop", twoState.offsetTop); |
| callback = cancelledFullScreen; |
| runWithKeyDown(function(){document.webkitCancelFullScreen()}); |
| }; |
| |
| var cancelledFullScreen = function() { |
| testExpected("document.webkitCurrentFullScreenElement", null); |
| testExpected("one.offsetLeft", oneState.offsetLeft); |
| testExpected("one.offsetTop", oneState.offsetTop); |
| testExpected("two.offsetLeft", twoState.offsetLeft); |
| testExpected("two.offsetTop", twoState.offsetTop); |
| callback = null; |
| endTest(); |
| }; |
| |
| callback = divEnteredFullScreen; |
| runWithKeyDown(function(){div.webkitRequestFullScreen()}); |
| } |
| </script> |