summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/screen-orientation/lock-sandboxed-iframe.html
blob: 1c4f5294c554c2415fb387b3c7c2a2a559cb6f94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<!DOCTYPE html>
<html>
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

<iframe id="allowedIframe" sandbox="allow-scripts allow-same-origin allow-orientation-lock" style="display:none">
</iframe>

<iframe id="disallowedIframe" sandbox="allow-scripts allow-same-origin" style="display:none">
</iframe>
<script>
    var testNotAllowed = async_test("Test without 'allow-orientation-lock' sandboxing directive");
    var testAllowed = async_test("Test with 'allow-orientation-lock' sandboxing directive");

    function runTestAllowed() {
        window.onmessage = testAllowed.step_func(function (ev) {
            assert_equals(ev.data, "portrait-primary", "screen.orientation lock to portrait-primary");
            screen.orientation.unlock();
            testAllowed.done();
        });
        var allowedIframe = document.getElementById("allowedIframe");
        allowedIframe.src = "resources/sandboxed-iframe-locking.html";
    }

    function runTestNotAllowed() {
        window.onmessage = testNotAllowed.step_func(function (ev) {
            assert_equals(ev.data, "SecurityError", "screen.lockOrientation() throws a SecurityError");
            testNotAllowed.done();
            runTestAllowed();
        });
        var disallowedIframe = document.getElementById("disallowedIframe");
        disallowedIframe.src = "resources/sandboxed-iframe-locking.html";
    }
    runTestNotAllowed();
</script>
</body>
</html>