| <!DOCTYPE html> |
| |
| <head> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| <!-- This tests that a navigation initiator that has been replaced by the time |
| the navigation it initiates is blocked, will not receive the SPV event. |
| |
| An iframe will navigate another iframe and the navigate itself. |
| The second iframe's navigation response will be delayed by the server but will |
| eventually be blocked by the CSP of the first iframe. |
| By the time this happens the first iframe should be an entirely different |
| document and it should not receive a SPV event --> |
| <script> |
| var t = async_test("Test that no spv event is raised"); |
| window.onmessage = t.step_func(function(e) { |
| if (e.data == "end_test") t.done(); |
| else assert_unreached("Should not have raised a spv event"); |
| }); |
| |
| var frames_loaded_count = 0; |
| var frame_loaded = function() { |
| if (++frames_loaded_count == 2) { |
| // both child frame have loaded we can start the |
| // test now, send a message to iframe1 so it knows to start |
| document.getElementById('iframe1').contentWindow.postMessage('start_test', '*'); |
| } |
| } |
| var i1 = document.createElement('iframe'); |
| i1.src = "support/spv-test-iframe1.sub.html?report_id={{$id:uuid()}}"; |
| i1.id = "iframe1"; |
| i1.name = "iframe1"; |
| i1.onload = frame_loaded; |
| document.body.appendChild(i1); |
| |
| var i2 = document.createElement('iframe'); |
| i2.src = "support/spv-test-iframe2.sub.html"; |
| i2.id = "iframe2"; |
| i2.name = "iframe2"; |
| i2.onload = frame_loaded; |
| document.body.appendChild(i2); |
| </script> |
| |
| <script async defer src='../support/checkReport.sub.js?reportExists=false&reportID={{$id}}'></script> |
| |
| </body> |