<!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>