From 9b9ea91250f3f0ff21de46eed4e66ac65509f747 Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Sat, 27 Apr 2024 10:31:16 +0200 Subject: [PATCH 1/3] Allow both service_worker and scripts in MV3 --- .../test/integration/webextension-mv3/manifest.json | 4 +++- packages/core/integration-tests/test/webextension.js | 1 + packages/transformers/webextension/src/schema.js | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/core/integration-tests/test/integration/webextension-mv3/manifest.json b/packages/core/integration-tests/test/integration/webextension-mv3/manifest.json index b8ff5f08993..08398794f2c 100644 --- a/packages/core/integration-tests/test/integration/webextension-mv3/manifest.json +++ b/packages/core/integration-tests/test/integration/webextension-mv3/manifest.json @@ -4,7 +4,9 @@ "version": "0.1", "manifest_version": 3, "background": { - "service_worker": "background.js" + "service_worker": "background.js", + "type": "module", + "scripts": [ "background.js" ] }, "permissions": [ "scripting", diff --git a/packages/core/integration-tests/test/webextension.js b/packages/core/integration-tests/test/webextension.js index f31629fffb7..2e2a681fbfc 100644 --- a/packages/core/integration-tests/test/webextension.js +++ b/packages/core/integration-tests/test/webextension.js @@ -111,6 +111,7 @@ describe('webextension', function () { assets: ['manifest.json'], }, {assets: ['background.js']}, + {assets: ['background.js']}, {assets: ['popup.html']}, {assets: ['popup.css']}, {assets: ['popup.js', 'esmodule-helpers.js', 'bundle-url.js']}, diff --git a/packages/transformers/webextension/src/schema.js b/packages/transformers/webextension/src/schema.js index 20f6dc6ca08..da924603efe 100644 --- a/packages/transformers/webextension/src/schema.js +++ b/packages/transformers/webextension/src/schema.js @@ -469,6 +469,7 @@ export const MV3Schema = ({ type: 'object', properties: { service_worker: string, + scripts: arrStr, // to support both Chrome and Firefox type: { type: 'string', enum: ['classic', 'module'], From 4a43f72d0265736f8a87b46c42a6267813ab29df Mon Sep 17 00:00:00 2001 From: 101arrowz Date: Thu, 9 May 2024 22:02:27 -0400 Subject: [PATCH 2/3] support `background.page` and `background.persistent` in MV3 --- .../transformers/webextension/src/WebExtensionTransformer.js | 3 ++- packages/transformers/webextension/src/schema.js | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/transformers/webextension/src/WebExtensionTransformer.js b/packages/transformers/webextension/src/WebExtensionTransformer.js index 51cbe6a0ef7..3ee647fe8a9 100644 --- a/packages/transformers/webextension/src/WebExtensionTransformer.js +++ b/packages/transformers/webextension/src/WebExtensionTransformer.js @@ -273,7 +273,8 @@ async function collectDependencies( ...getJSONSourceLocation(ptrs['/background/page'], 'value'), }, }); - } else if (program.background?.service_worker) { + } + if (program.background?.service_worker) { program.background.service_worker = asset.addURLDependency( program.background.service_worker, { diff --git a/packages/transformers/webextension/src/schema.js b/packages/transformers/webextension/src/schema.js index da924603efe..c33f727b871 100644 --- a/packages/transformers/webextension/src/schema.js +++ b/packages/transformers/webextension/src/schema.js @@ -469,11 +469,14 @@ export const MV3Schema = ({ type: 'object', properties: { service_worker: string, - scripts: arrStr, // to support both Chrome and Firefox type: { type: 'string', enum: ['classic', 'module'], }, + // to support both Chrome and Firefox + scripts: arrStr, + page: string, + persistent: boolean }, additionalProperties: false, required: ['service_worker'], From 08a83c406286bc68e0df6cd75b21ba86c005fa6f Mon Sep 17 00:00:00 2001 From: Niklas Mischkulnig <4586894+mischnic@users.noreply.github.com> Date: Fri, 10 May 2024 09:45:18 +0200 Subject: [PATCH 3/3] Lint --- packages/transformers/webextension/src/schema.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/transformers/webextension/src/schema.js b/packages/transformers/webextension/src/schema.js index c33f727b871..3f38853ef8b 100644 --- a/packages/transformers/webextension/src/schema.js +++ b/packages/transformers/webextension/src/schema.js @@ -476,7 +476,7 @@ export const MV3Schema = ({ // to support both Chrome and Firefox scripts: arrStr, page: string, - persistent: boolean + persistent: boolean, }, additionalProperties: false, required: ['service_worker'],