<!DOCTYPE html>
<html>
<head>
    <title>multiple-frames-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 frame2"]'></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", "*");
            window.frames['frame2'].postMessage("hello frame2", "*");
        }
    </script>
</head>
<body>
    <iframe src='http://{{host}}:{{ports[http][0]}}/content-security-policy/frame-ancestors/reporting-frame-allows-none.html' name="frame1"></iframe>
        <iframe src='http://{{host}}:{{ports[http][0]}}/content-security-policy/frame-ancestors/reporting-frame-allows-self.html' name="frame2"></iframe>
    <div id="log"></div>
</body>
</html>
