%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
function blob_url_reload_test(t, revoke_before_reload) { const run_result = 'test_frame_OK'; const blob_contents = '<!doctype html>\n<meta charset="utf-8">\n' + '<script>window.test_result = "' + run_result + '";</script>'; const blob = new Blob([blob_contents], {type: 'text/html'}); const url = URL.createObjectURL(blob); const frame = document.createElement('iframe'); frame.setAttribute('src', url); frame.setAttribute('style', 'display:none;'); document.body.appendChild(frame); frame.onload = t.step_func(() => { if (revoke_before_reload) URL.revokeObjectURL(url); assert_equals(frame.contentWindow.test_result, run_result); frame.contentWindow.test_result = null; frame.onload = t.step_func_done(() => { assert_equals(frame.contentWindow.test_result, run_result); }); // Slight delay before reloading to ensure revoke actually has had a chance // to be processed. t.step_timeout(() => { frame.contentWindow.location.reload(); }, 250); }); } async_test(t => { blob_url_reload_test(t, false); }, 'Reloading a blob URL succeeds.'); async_test(t => { blob_url_reload_test(t, true); }, 'Reloading a blob URL succeeds even if the URL was revoked.');