| <!DOCTYPE html> |
| <html> |
| <head> |
| <script> |
| function pass(image, messagePrefix) |
| { |
| window.top.postMessage(`PASS:${messagePrefix} with origin ${(new URL(image.src)).origin}.`, "*"); |
| runNextImageTest(); |
| } |
| |
| function fail(image, messagePrefix) |
| { |
| window.top.postMessage(`FAIL:${messagePrefix} with origin ${(new URL(image.src)).origin}.`, "*"); |
| runNextImageTest(); |
| } |
| |
| function finishJSTest() |
| { |
| window.top.postMessage("DONE:", "*"); |
| } |
| |
| function runNextImageTest() |
| { |
| var test = imageTests.shift(); |
| if (!test) { |
| finishJSTest(); |
| return; |
| } |
| var image = new Image; |
| image.onload = () => test.onload(image); |
| image.onerror = () => test.onerror(image); |
| image.src = test.src; |
| document.getElementById("test-container").appendChild(image); |
| } |
| |
| window.onload = runNextImageTest; |
| |
| // Tests |
| |
| const DidLoadImage = "did load image"; |
| const DidNotLoadImage = "did not load image"; |
| |
| var searchParams = new URLSearchParams(document.location.search); |
| |
| var imageTests = [ |
| { |
| src: "subresource2/protected-image.php", |
| onload: (image) => { |
| if (document.location.origin === searchParams.get("top-origin")) |
| pass(image, DidLoadImage); |
| else |
| fail(image, DidLoadImage); |
| }, |
| onerror: (image) => { |
| if (document.location.origin === searchParams.get("top-origin")) |
| fail(image, DidNotLoadImage); |
| else |
| pass(image, DidNotLoadImage); |
| }, |
| }, |
| { |
| src: "http://127.0.0.1:8000/security/resources/subresource2/protected-image.php", |
| onload: (image) => pass(image, DidLoadImage), |
| onerror: (image) => fail(image, DidNotLoadImage), |
| }, |
| { |
| src: "https://127.0.0.1:8443/security/resources/subresource2/protected-image.php", |
| onload: (image) => fail(image, DidLoadImage), |
| onerror: (image) => pass(image, DidNotLoadImage), |
| }, |
| { |
| src: "https://localhost:8443/security/resources/subresource2/protected-image.php", |
| onload: (image) => fail(image, DidLoadImage), |
| onerror: (image) => pass(image, DidNotLoadImage), |
| }, |
| ]; |
| </script> |
| </head> |
| <body> |
| <div id="test-container"></div> |
| </body> |
| </html> |