| <!DOCTYPE html> | |
| <html> | |
| <body> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <iframe id="testIframe" sandbox="allow-scripts allow-same-origin" style="display:none"> | |
| </iframe> | |
| <script> | |
| var test = async_test("Test subframes receive orientation change events"); | |
| var orientations = [ | |
| 'portrait-primary', | |
| 'portrait-secondary', | |
| 'landscape-primary', | |
| 'landscape-secondary' | |
| ]; | |
| var currentIndex = orientations.indexOf(window.screen.orientation.type); | |
| var eventsReceived = 0; | |
| function getNextIndex() { | |
| return (currentIndex + 1) % orientations.length; | |
| } | |
| function changeOrientation() { | |
| screen.orientation.lock(orientations[getNextIndex()]).then(function () {}, function () {}); | |
| currentIndex = getNextIndex(); | |
| } | |
| window.onmessage = test.step_func(function (ev) { | |
| assert_equals(ev.data, orientations[currentIndex], "subframe receives orientation change event"); | |
| ++eventsReceived; | |
| if (eventsReceived < orientations.length) | |
| changeOrientation() | |
| else | |
| test.done(); | |
| }); | |
| var testIframe = document.getElementById("testIframe"); | |
| testIframe.src = "resources/iframe-listen-orientation-change.html"; | |
| testIframe.onload = changeOrientation; | |
| </script> | |
| </body> | |
| </html> |