Fix the bug where remote media fail to load without media proxy

This commit is contained in:
Tusooa Zhu 2022-01-11 23:03:46 -05:00 committed by tusooa
commit f1f7f5de51
No known key found for this signature in database
GPG key ID: 42AEC43D48433C51

View file

@ -182,8 +182,12 @@ self.addEventListener('notificationclick', (event) => {
})) }))
}) })
self.addEventListener('fetch', async (event) => { self.addEventListener('fetch', (event) => {
if (shouldCache) { console.log(`[Service Worker] Got: ${event.request.url}`)
console.debug(event.request)
// Do not mess up with remote things
const isSameOrigin = (new URL(event.request.url)).origin === self.location.origin
if (shouldCache && event.request.method === 'GET' && isSameOrigin) {
event.respondWith((async () => { event.respondWith((async () => {
const r = await caches.match(event.request) const r = await caches.match(event.request)
console.log(`[Service Worker] Fetching resource: ${event.request.url}`) console.log(`[Service Worker] Fetching resource: ${event.request.url}`)
@ -191,13 +195,18 @@ self.addEventListener('fetch', async (event) => {
return r return r
} }
const response = await fetch(event.request) try {
if (response.ok && isEmoji(event.request)) { const response = await fetch(event.request)
console.log(`[Service Worker] Caching emoji ${event.request.url}`) if (response.ok && isEmoji(event.request)) {
const cache = await caches.open(emojiCacheKey) console.log(`[Service Worker] Caching emoji ${event.request.url}`)
await cache.put(event.request.clone(), response.clone()) const cache = await caches.open(emojiCacheKey)
await cache.put(event.request.clone(), response.clone())
}
return response
} catch (e) {
console.log('error:', e)
throw e
} }
return response
})()) })())
} }
}) })