From c3b40a6950f5e77813c292fc9997cf24b58130ea Mon Sep 17 00:00:00 2001 From: Hinaloe Date: Thu, 21 Jun 2018 03:55:17 +0900 Subject: [PATCH] Return collect response when fail put cache to storage (#7863) * return collect response when fail put cache to storage * cleanup callback --- .../mastodon/service_worker/entry.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/app/javascript/mastodon/service_worker/entry.js b/app/javascript/mastodon/service_worker/entry.js index 2435da1170d..17b05a837bf 100644 --- a/app/javascript/mastodon/service_worker/entry.js +++ b/app/javascript/mastodon/service_worker/entry.js @@ -32,8 +32,11 @@ self.addEventListener('fetch', function(event) { const asyncCache = openWebCache(); event.respondWith(asyncResponse.then( - response => asyncCache.then(cache => cache.put('/', response.clone())) - .then(() => response), + response => { + const clonedResponse = response.clone(); + asyncCache.then(cache => cache.put('/', clonedResponse)).catch(); + return response; + }, () => asyncCache.then(cache => cache.match('/')))); } else if (url.pathname === '/auth/sign_out') { const asyncResponse = fetch(event.request); @@ -58,14 +61,9 @@ self.addEventListener('fetch', function(event) { return asyncResponse.then(response => { if (response.ok) { - const put = cache.put(event.request.url, response.clone()); - - put.catch(() => freeStorage()); - - return put.then(() => { - freeStorage(); - return response; - }); + cache + .put(event.request.url, response.clone()) + .catch(()=>{}).then(freeStorage()).catch(); } return response;