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,6 +195,7 @@ self.addEventListener('fetch', async (event) => {
return r return r
} }
try {
const response = await fetch(event.request) const response = await fetch(event.request)
if (response.ok && isEmoji(event.request)) { if (response.ok && isEmoji(event.request)) {
console.log(`[Service Worker] Caching emoji ${event.request.url}`) console.log(`[Service Worker] Caching emoji ${event.request.url}`)
@ -198,6 +203,10 @@ self.addEventListener('fetch', async (event) => {
await cache.put(event.request.clone(), response.clone()) await cache.put(event.request.clone(), response.clone())
} }
return response return response
} catch (e) {
console.log('error:', e)
throw e
}
})()) })())
} }
}) })