diff options
Diffstat (limited to 'toolkit/components/extensions/parent')
-rw-r--r-- | toolkit/components/extensions/parent/ext-backgroundPage.js | 4 | ||||
-rw-r--r-- | toolkit/components/extensions/parent/ext-runtime.js | 7 |
2 files changed, 8 insertions, 3 deletions
diff --git a/toolkit/components/extensions/parent/ext-backgroundPage.js b/toolkit/components/extensions/parent/ext-backgroundPage.js index 725be65122..568d049b9d 100644 --- a/toolkit/components/extensions/parent/ext-backgroundPage.js +++ b/toolkit/components/extensions/parent/ext-backgroundPage.js @@ -264,7 +264,9 @@ this.backgroundPage = class extends ExtensionAPI { let { manifest } = extension; extension.backgroundState = BACKGROUND_STATE.STARTING; - this.isWorker = Boolean(manifest.background.service_worker); + this.isWorker = + !!manifest.background.service_worker && + WebExtensionPolicy.backgroundServiceWorkerEnabled; let BackgroundClass = this.isWorker ? BackgroundWorker : BackgroundPage; diff --git a/toolkit/components/extensions/parent/ext-runtime.js b/toolkit/components/extensions/parent/ext-runtime.js index cd18e0f0aa..2122e8faed 100644 --- a/toolkit/components/extensions/parent/ext-runtime.js +++ b/toolkit/components/extensions/parent/ext-runtime.js @@ -237,9 +237,12 @@ this.runtime = class extends ExtensionAPIPersistent { }, async internalWakeupBackground() { + const { background } = extension.manifest; if ( - extension.manifest.background && - !extension.manifest.background.service_worker && + background && + (background.page || background.scripts) && + // Note: if background.service_worker is specified, it takes + // precedence over page/scripts, and persistentBackground is false. !extension.persistentBackground ) { await extension.wakeupBackground(); |