blob: 87b0e9fe72b33bb90b88e6e9eded6940c95c17e1 [file] [log] [blame]
Andrew Top61a84952019-04-30 15:07:33 -07001<!DOCTYPE html>
2<html>
3<body>
4<script src="/resources/testharness.js"></script>
5<script src="/resources/testharnessreport.js"></script>
6
7<iframe id="testIframe" sandbox="allow-scripts allow-same-origin" style="display:none">
8</iframe>
9
10<script>
11 var test = async_test("Test subframes receive orientation change events");
12
13 var orientations = [
14 'portrait-primary',
15 'portrait-secondary',
16 'landscape-primary',
17 'landscape-secondary'
18 ];
19
20 var currentIndex = orientations.indexOf(window.screen.orientation.type);
21 var eventsReceived = 0;
22
23 function getNextIndex() {
24 return (currentIndex + 1) % orientations.length;
25 }
26
27 function changeOrientation() {
28 screen.orientation.lock(orientations[getNextIndex()]).then(function () {}, function () {});
29 currentIndex = getNextIndex();
30 }
31
32 window.onmessage = test.step_func(function (ev) {
33 assert_equals(ev.data, orientations[currentIndex], "subframe receives orientation change event");
34 ++eventsReceived;
35 if (eventsReceived < orientations.length)
36 changeOrientation()
37 else
38 test.done();
39 });
40
41 var testIframe = document.getElementById("testIframe");
42 testIframe.src = "resources/iframe-listen-orientation-change.html";
43 testIframe.onload = changeOrientation;
44</script>
45</body>
46</html>