mirror of
https://github.com/overleaf/overleaf.git
synced 2024-12-04 20:33:12 -05:00
7db7cd4a49
* [frontend] WIP: pdf caching using service worker -- squashed Ref: 920fbaa00b31530f7c457a2d93bad5e553798057 Co-Authored-By: Brian Gough <brian.gough@overleaf.com> Co-Authored-By: Eric Mc Sween <eric.mcsween@overleaf.com> * [misc] add contentId into the URL for protecting PDF stream contents * [misc] gracefully handle missing ranges in serviceWorker * [misc] support PDF stream caching for anonymous users * [misc] polish header names and add URL to error message when fetch fails * [misc] polish event handler registration * [misc] limit serviceWorker scope to /project/ -- trailing slash This will block the service worker from intercepting requests on the project dashboard. * [misc] add per-request feature flag for enabling PDF stream caching * [misc] expose compile stats and timings to the frontend * [misc] serviceWorker: support clsiServerId and compileGroup url params * [misc] serviceWorker: polish header maps * [misc] serviceWorker: drop TODO for p-limit -- the browser has a queue * [misc] serviceWorker: drop verbose log message on every fetch * [misc] cut down size of diff in backend code * [misc] add test case for forwarding of pdf caching and metrics details * [misc] serviceWorker: drop all the log lines * [misc] serviceWorker: add boundary guards to the compile request regex Co-authored-by: Brian Gough <brian.gough@overleaf.com> Co-authored-by: Eric Mc Sween <eric.mcsween@overleaf.com> GitOrigin-RevId: 4b291b4a4f2866cf07bccf8ec9068f33bbfdc916
19 lines
470 B
JavaScript
19 lines
470 B
JavaScript
let pendingWorkerSetup = Promise.resolve()
|
|
|
|
function supportsServiceWorker() {
|
|
return 'serviceWorker' in navigator
|
|
}
|
|
|
|
export function waitForServiceWorker() {
|
|
return pendingWorkerSetup
|
|
}
|
|
|
|
export function loadServiceWorker() {
|
|
if (supportsServiceWorker()) {
|
|
pendingWorkerSetup = navigator.serviceWorker
|
|
.register('/serviceWorker.js', {
|
|
scope: '/project/',
|
|
})
|
|
.catch(error => console.warn('Cannot register serviceWorker', error))
|
|
}
|
|
}
|