diff options
Diffstat (limited to 'test/wpt/tests/service-workers/service-worker/resources/fetch-response.html')
-rw-r--r-- | test/wpt/tests/service-workers/service-worker/resources/fetch-response.html | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/wpt/tests/service-workers/service-worker/resources/fetch-response.html b/test/wpt/tests/service-workers/service-worker/resources/fetch-response.html new file mode 100644 index 0000000..6d27cf1 --- /dev/null +++ b/test/wpt/tests/service-workers/service-worker/resources/fetch-response.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<meta charset="utf-8"> + +<script> + const params =new URLSearchParams(location.search); + const mode = params.get("mode") || "cors"; + const path = params.get('path'); + const bufferPromise = + new Promise(resolve => + fetch(path, {mode}) + .then(response => resolve(response.arrayBuffer())) + .catch(() => resolve(new Uint8Array()))); + + const entryPromise = new Promise(resolve => { + new PerformanceObserver(entries => { + const byName = entries.getEntriesByType("resource").find(e => e.name.includes(path)); + if (byName) + resolve(byName); + }).observe({entryTypes: ["resource"]}); + }); + + Promise.all([bufferPromise, entryPromise]).then(([buffer, entry]) => { + parent.postMessage({ + buffer, + entry: entry.toJSON(), + }, '*'); + }); + +</script> |