<!DOCTYPE html>
<html>
<head>
    <title>single-frame-self-allowed</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="../support/logTest.sub.js?logs=[]"></script>
    <script src='../support/alertAssert.sub.js?alerts=["hello frame1"]'></script>
    <!-- enforcing policy:
connect-src 'self' 'none'; script-src 'self' 'unsafe-inline'; frame-src 'self';
-->
    <script>
        function onMessage(event) {
            if(event.data == "start test") {
                startTest();
            } else {
                alert_assert(event.data);
            }
        }

        window.addEventListener(
            "message",
            onMessage,
            false);

        function startTest() {
            window.frames['frame1'].postMessage("hello frame1", "*");
        }
    </script>
</head>
<body>
    <iframe src='http://{{host}}:{{ports[http][0]}}/content-security-policy/frame-ancestors/reporting-frame-allows-self.html' name="frame1"></iframe>
    <div id="log"></div>
</body>
</html>
