summaryrefslogtreecommitdiffstats
path: root/toolkit/components/extensions/parent
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/extensions/parent')
-rw-r--r--toolkit/components/extensions/parent/ext-backgroundPage.js4
-rw-r--r--toolkit/components/extensions/parent/ext-runtime.js7
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();