// META: script=resources/test-helpers.sub.js "use strict"; promise_test(async t => { const url = "resources/fetch-request-xhr-sync-error-worker.js"; const scope = "resources/fetch-request-xhr-sync-iframe.html"; const registration = await service_worker_unregister_and_register(t, url, scope); t.add_cleanup(() => registration.unregister()); await wait_for_state(t, registration.installing, 'activated'); const frame = await with_iframe(scope); t.add_cleanup(() => frame.remove()); assert_throws_dom("NetworkError", frame.contentWindow.DOMException, () => frame.contentWindow.performSyncXHR("non-existent-stream-1.txt")); assert_throws_dom("NetworkError", frame.contentWindow.DOMException, () => frame.contentWindow.performSyncXHR("non-existent-stream-2.txt")); assert_throws_dom("NetworkError", frame.contentWindow.DOMException, () => frame.contentWindow.performSyncXHR("non-existent-stream-3.txt")); }, "Verify synchronous XMLHttpRequest always throws a NetworkError for ReadableStream errors");