diff --git a/rspack.config.ts b/rspack.config.ts index 57d416b..5ea4b46 100644 --- a/rspack.config.ts +++ b/rspack.config.ts @@ -24,6 +24,7 @@ export default defineConfig({ context: __dirname, entry: { service_worker: `${src}/service_worker.ts`, + offscreen: `${src}/offscreen.ts`, sandbox: `${src}/sandbox.ts`, popup: `${src}/pages/popup/main.tsx`, }, @@ -105,6 +106,13 @@ export default defineConfig({ minify: true, chunks: ["popup"], }), + new rspack.HtmlRspackPlugin({ + filename: `${dist}/ext/src/offscreen.html`, + template: `${src}/pages/offscreen.html`, + inject: "head", + minify: true, + chunks: ["offscreen"], + }), new rspack.HtmlRspackPlugin({ filename: `${dist}/ext/src/sandbox.html`, template: `${src}/pages/sandbox.html`, diff --git a/src/manifest.json b/src/manifest.json index f4e6860..15ebb0d 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -22,7 +22,7 @@ ], "sandbox": { "pages": [ - "sandbox.html" + "src/sandbox.html" ] } } \ No newline at end of file diff --git a/src/offscreen.ts b/src/offscreen.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/offscreen.html b/src/pages/offscreen.html new file mode 100644 index 0000000..0a21463 --- /dev/null +++ b/src/pages/offscreen.html @@ -0,0 +1,12 @@ + + + + + + + Offscreen + + + + + diff --git a/src/sandbox.ts b/src/sandbox.ts index d2ca7c1..11b91b9 100644 --- a/src/sandbox.ts +++ b/src/sandbox.ts @@ -1,3 +1 @@ -chrome.runtime.onMessage.addListener((data) => { - console.log(data); -}); +eval('console.log("Hello from sandbox!");'); diff --git a/src/service_worker.ts b/src/service_worker.ts index 2c35d32..4546457 100644 --- a/src/service_worker.ts +++ b/src/service_worker.ts @@ -1,12 +1,13 @@ - - +chrome.runtime.onConnect.addListener((port) => { + console.log("service worker connected", port); +}); async function setupOffscreenDocument() { // 创建运行后台脚本的沙盒环境 await chrome.offscreen.createDocument({ - url: "src/sandbox.html", - reasons: [chrome.offscreen.Reason.DOM_SCRAPING], - justification: "background script", + url: "src/offscreen.html", + reasons: [chrome.offscreen.Reason.CLIPBOARD], + justification: "offscreen page", }); // Send message to offscreen document