Просмотр исходного кода

Merge pull request #4207 from overleaf/bg-reset-service-worker

add setting to reset service worker

GitOrigin-RevId: da889e43f99c908eee1b2351f69571b4bccde28d
Jakob Ackermann 5 лет назад
Родитель
Сommit
3414646290

+ 1 - 0
services/web/app/src/Features/Project/ProjectController.js

@@ -894,6 +894,7 @@ const ProjectController = {
               ),
               trackPdfDownload: partOfPdfCachingRollout('collect-metrics'),
               enablePdfCaching: partOfPdfCachingRollout('enable-caching'),
+              resetServiceWorker: Boolean(Settings.resetServiceWorker),
             })
             timer.done()
           }

+ 1 - 0
services/web/app/views/project/editor.pug

@@ -188,6 +188,7 @@ block append meta
 	meta(name="ol-showSymbolPalette" data-type="boolean" content=showSymbolPalette)
 	meta(name="ol-enablePdfCaching" data-type="boolean" content=enablePdfCaching)
 	meta(name="ol-trackPdfDownload" data-type="boolean" content=trackPdfDownload)
+	meta(name="ol-resetServiceWorker" data-type="boolean" content=resetServiceWorker)
 
 	- var fileActionI18n = ['edited', 'renamed', 'created', 'deleted'].reduce((acc, i) => {acc[i] = translate('file_action_' + i); return acc}, {})
 	meta(name="ol-fileActionI18n" data-type="json" content=fileActionI18n)

+ 3 - 0
services/web/config/settings.defaults.js

@@ -673,6 +673,9 @@ module.exports = {
   // By default turn on feature flag, can be overridden per request.
   enablePdfCaching: process.env.ENABLE_PDF_CACHING === 'true',
 
+  // Whether to disable any existing service worker on the next load of the editor
+  resetServiceWorker: process.env.RESET_SERVICE_WORKER === 'true',
+
   // Maximum size of text documents in the real-time editing system.
   max_doc_length: 2 * 1024 * 1024, // 2mb
 

+ 7 - 2
services/web/frontend/js/ide.js

@@ -32,7 +32,10 @@ import MetadataManager from './ide/metadata/MetadataManager'
 import ReviewPanelManager from './ide/review-panel/ReviewPanelManager'
 import OutlineManager from './features/outline/outline-manager'
 import SafariScrollPatcher from './ide/SafariScrollPatcher'
-import { loadServiceWorker } from './ide/pdfng/directives/serviceWorkerManager'
+import {
+  loadServiceWorker,
+  unregisterServiceWorker,
+} from './ide/pdfng/directives/serviceWorkerManager'
 import './ide/cobranding/CobrandingDataService'
 import './ide/settings/index'
 import './ide/chat/index'
@@ -363,7 +366,9 @@ If the project has been renamed please look in your project list for a new proje
   }
 )
 
-if (getMeta('ol-enablePdfCaching')) {
+if (getMeta('ol-resetServiceWorker')) {
+  unregisterServiceWorker()
+} else if (getMeta('ol-enablePdfCaching')) {
   loadServiceWorker()
 }