Revision 654dc43664f0ff6b84609d334cb05147c0594fbd authored by Robert Ma on 16 March 2018, 00:32:55 UTC, committed by Robert Ma on 16 March 2018, 17:02:47 UTC
ChromeDriver doesn't honor PATH and uses /opt/google/chrome/chrome by
default (which is usually the stable channel), so we need to explicitly
pass the desired binary path to wpt run (which in turn passes to
chromedriver via capabilities) in Travis CI (both stability check and
infrastructure test).
1 parent 89ba944
Raw File
event.origin.sub.htm
<!DOCTYPE html>
<html>
<head>
<title> event.origin returns the origin of the message </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<div id=log></div>

<div style="display:none">
    <iframe width="70%" onload="PostMessageTest()" src="{{location[scheme]}}://{{domains[天気の良い日]}}:{{location[port]}}/webmessaging/support/ChildWindowPostMessage.htm"></iframe>
    <iframe width="70%" onload="PostMessageTest()" src="./support/ChildWindowPostMessage.htm"></iframe>
</div>

<script>


    var description = "Test Description: event.origin returns the origin of the message.";

    var t = async_test(description);

    var PORT = location.port !== "" ? ":" + location.port : "";
    var TARGET1 = document.querySelectorAll("iframe")[0];
    var TARGET2 = document.querySelectorAll("iframe")[1];
    var XORIGIN = "{{location[scheme]}}://{{domains[天気の良い日]}}" + PORT;
    var SORIGIN = "{{location[scheme]}}://{{host}}" + PORT;
    var ExpectedResult = ["#1", XORIGIN, "#2", SORIGIN];
    var ActualResult = [];
    var loaded = 0;

    function PostMessageTest()
    {
        loaded++;

        if (loaded == 2)
        {
            TARGET1.contentWindow.postMessage("#1", XORIGIN);
            TARGET2.contentWindow.postMessage("#2", SORIGIN);
        }
    }

    window.onmessage = t.step_func(function(e)
    {
        // Messages from TARGET1 and TARGET2 can come in any order
        // (since one of them is cross-origin and can run in parallel).
        // To make the tests immune to message reordering, always
        // put the response from TARGET1 at the start of the list.
        if (e.data.toString() === "#1")
        {
            ActualResult = [e.data, e.origin].concat(ActualResult);
        }
        else if (e.data.toString() === "#2")
        {
            ActualResult = ActualResult.concat([e.data, e.origin]);
        }

        if (ActualResult.length >= ExpectedResult.length)
        {
            assert_array_equals(ActualResult, ExpectedResult, "ActualResult");
            t.done();
        }
    });
</script>
</body>
</html>
back to top