| <!DOCTYPE html> |
| <meta charset=utf-8> |
| <title>Test that removing the src attribute of an iframe loads about:blank |
| instead of whatever was loaded previously.</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <body> |
| <script> |
| var iframe; |
| var t = async_test(); |
| t.step(setupFrame); |
| |
| function setupFrame() { |
| iframe = document.createElement("iframe"); |
| iframe.src = URL.createObjectURL(new Blob(["text"], { type: "text/html" })); |
| iframe.onload = t.step_func(blobLoaded); |
| document.body.appendChild(iframe); |
| } |
| |
| var removalRunning = false; |
| function blobLoaded() { |
| assert_equals(iframe.contentDocument.location.protocol, "blob:", |
| "Should have loaded the blob"); |
| assert_equals(iframe.contentDocument.documentElement.textContent, "text", |
| "Should have loaded the blob text"); |
| iframe.onload = t.step_func_done(aboutBlankLoaded); |
| removalRunning = true; |
| iframe.removeAttribute("src"); |
| removalRunning = false; |
| } |
| |
| function aboutBlankLoaded() { |
| assert_false(removalRunning, "Should not have loaded about:blank sync"); |
| assert_equals(iframe.contentDocument.location.href, "about:blank", |
| "Should have loaded about:blank"); |
| assert_equals(iframe.contentDocument.documentElement.textContent, "", |
| "Should have loaded the about:blank text"); |
| } |
| </script> |
| </body> |