<html>
<body>
<p>Tests source origin difference for cached resources.</p
<p>Trying to load sequentially the same image from different origins.</p>
<div id="console"></div>
<div>
    <iframe id="iframe1"></iframe>
    <iframe id="iframe2"></iframe>
    <iframe id="iframe3"></iframe>
    <iframe id="iframe4"></iframe>
</div>
<div>
    <iframe id="iframe5"></iframe>
    <iframe id="iframe6"></iframe>
    <iframe id="iframe7"></iframe>
    <iframe id="iframe8"></iframe>
</div>
<script>
if (window.testRunner) {
   testRunner.dumpAsText();
   testRunner.waitUntilDone();
}

window.addEventListener("message", function(event) {
    document.getElementById('console').innerHTML += event.data + "<br/>";
    loadNextFrame();
});

var iframeURL8000 = "http://localhost:8000/security/resources/cross-origin-cached-resource-iframe.html";
var iframeURL8080 = "http://localhost:8080/security/resources/cross-origin-cached-resource-iframe.html";

var allowAllImage1 = "http://127.0.0.1:8000/security/resources/abe-allow-star.py?allowCache";
var allow8000Image1 = "http://127.0.0.1:8000/security/resources/allow-if-origin.py?allowCache&origin=http%3A%2F%2Flocalhost%3A8000";

var allowAllImage2 = "http://127.0.0.1:8080/security/resources/abe-allow-star.py?allowCache";
var allow8000Image2 = "http://127.0.0.1:8080/security/resources/allow-if-origin.py?allowCache&origin=http%3A%2F%2Flocalhost%3A8000";

var counter = 0;
function loadNextFrame()
{
    counter++;
    // Four first tests try to load an image with a given origin and then the same image (in cache) with a different origin.
    if (counter == 1)
        document.getElementById('iframe1').src = iframeURL8000 + "#" +
            encodeURIComponent(JSON.stringify({node: "img", url: allowAllImage1, shouldPass:true, crossOrigin: "anonymous", id: 1}));
    else if (counter == 2)
        document.getElementById('iframe2').src = iframeURL8080 + "#" +
            encodeURIComponent(JSON.stringify({node: "img", url: allowAllImage1, shouldPass: true, crossOrigin: "anonymous", id: 2}));
    else if (counter == 3)
        document.getElementById('iframe3').src = iframeURL8000 + "#" +
            encodeURIComponent(JSON.stringify({node: "img", url: allow8000Image1, shouldPass: true, crossOrigin: "anonymous", id: 3}));
    // Fourth image load should fail since requesting image from localhost:8080 while only allowed from localhost:8000.
    else if (counter == 4)
        document.getElementById('iframe4').src = iframeURL8080 + "#" +
            encodeURIComponent(JSON.stringify({node: "img", url: allow8000Image1, shouldPass: false, crossOrigin: "anonymous", id: 4}));

    // Four next tests try to load a cross-origin image without cors and then with cors.
    else if (counter == 5)
        document.getElementById('iframe5').src = iframeURL8000 + "#" +
            encodeURIComponent(JSON.stringify({node: "img", url: allowAllImage2, shouldPass:true, id: 5}));
    else if (counter == 6)
        document.getElementById('iframe6').src = iframeURL8000 + "#" +
            encodeURIComponent(JSON.stringify({node: "img", url: allowAllImage2, shouldPass:true, crossOrigin: "anonymous", id: 6}));
    else if (counter == 7)
        document.getElementById('iframe7').src = iframeURL8080 + "#" +
            encodeURIComponent(JSON.stringify({node: "img", url: allow8000Image2, shouldPass:true, id: 7}));
    else if (counter == 8)
        document.getElementById('iframe8').src = iframeURL8080 + "#" +
            encodeURIComponent(JSON.stringify({node: "img", url: allow8000Image2, shouldPass:false, crossOrigin: "anonymous", id: 8}));
    else if (window.testRunner)
        testRunner.notifyDone();
}

loadNextFrame();
</script>
</body>
</html>
