FormDataElement::lengthInBytes should use ThreadableBlobRegistry
[WebKit-https.git] / LayoutTests / http / tests / workers / service / resources / service-worker-cache-api-worker.js
1 var status = "no status";
2 var cache;
3 var worker = self;
4
5 async function prepareCache()
6 {
7     status = "opening cache";
8     cache = await caches.open("test");
9     status = "creating response";
10     var response = new Response(new ArrayBuffer(12940), { status: 200, statusText: "OK"});
11     status = "filling cache";
12     await cache.put("/resources/square100.png", response);
13     status = "cache is ready";
14 }
15
16 function statusResponse()
17 {
18     return new Response(null, {status: 200, statusText: status});
19 }
20
21 self.addEventListener("fetch", async (event) => {
22     if (event.request.url.indexOf("status") !== -1) {
23         event.respondWith(promise.then(statusResponse, statusResponse));
24         return;
25     }
26     if (event.request.url.indexOf("opaqueWithBlob") !== -1) {
27         event.respondWith(self.caches.open("opaque").then((cache) => {
28             let response = self.internals.createOpaqueWithBlobBodyResponse();
29             return cache.put("opaque", response);
30         }).then(() => {
31             return new Response("PASS");
32         }));
33         return;
34     }
35     if (!event.request.url.endsWith(".fromserviceworker")) {
36         state = "unknown url";
37         event.respondWith(new Response(null, {status: 404, statusText: "Not Found"}));
38         return;
39     }
40     event.respondWith(promise.then(() => {
41         status = "opening cache for " + event.request.url.substring(0, event.request.url.length - 18);
42         return caches.open("test").then((cache) => {
43             status = "matching cache for " + event.request.url.substring(0, event.request.url.length - 18);
44             return cache.match(event.request.url.substring(0, event.request.url.length - 18));
45         }).then((response) => {
46             status = "matched cache for " + event.request.url.substring(0, event.request.url.length - 18);
47             return response;
48         });
49     }));
50 });
51 var promise = prepareCache();