From 79e6199e6bd356ecc711f50d475de0177830cdbf Mon Sep 17 00:00:00 2001 From: Reorx Date: Wed, 16 Mar 2022 17:35:21 +0800 Subject: [PATCH 1/2] determine background or extension page by `this` --- src/middleware/wer-middleware.raw.ts | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/middleware/wer-middleware.raw.ts b/src/middleware/wer-middleware.raw.ts index 2f6089ab..d64712ee 100644 --- a/src/middleware/wer-middleware.raw.ts +++ b/src/middleware/wer-middleware.raw.ts @@ -5,9 +5,15 @@ /* This will be converted into a lodash templ., any */ /* external argument must be provided using it */ /* -------------------------------------------------- */ -(function(window) { +(function(_window) { + let window: any + if (_window.document !== undefined) { + window = _window + } + + console.log('window', window); - const injectionContext = this || window || {browser: null}; + const injectionContext = this || {browser: null}; (function() { `<%= polyfillSource %>`; @@ -39,13 +45,14 @@ // ========================== Called only on content scripts ============================== // function contentScriptWorker() { + // console.log('contentScriptWorker') runtime.sendMessage({ type: SIGN_CONNECT }).then(msg => console.info(msg)); runtime.onMessage.addListener(({ type, payload }: { type: string; payload: any }) => { switch (type) { case SIGN_RELOAD: logger("Detected Changes. Reloading..."); - reloadPage && window.location.reload(); + reloadPage && window?.location.reload(); break; case SIGN_LOG: console.info(payload); @@ -58,6 +65,7 @@ // ======================== Called only on background scripts ============================= // function backgroundWorker(socket: WebSocket) { + // console.log('backgroundWorker') runtime.onMessage.addListener((action: { type: string; payload: any }, sender) => { if (action.type === SIGN_CONNECT) { return Promise.resolve(formatter("Connected to Web Extension Hot Reloader")); @@ -114,6 +122,7 @@ // ======================== Called only on extension pages that are not the background ============================= // function extensionPageWorker() { + // console.log('extensionPageWorker') runtime.sendMessage({ type: SIGN_CONNECT }).then(msg => console.info(msg)); runtime.onMessage.addListener(({ type, payload }: { type: string; payload: any }) => { @@ -122,7 +131,7 @@ logger("Detected Changes. Reloading..."); // Always reload extension pages in the foreground when they change. // This option doesn't make sense otherwise - window.location.reload(); + window?.location.reload(); break; case SIGN_LOG: @@ -137,9 +146,9 @@ // ======================= Bootstraps the middleware =========================== // runtime.reload - ? extension.getBackgroundPage() === window ? backgroundWorker(new WebSocket(wsHost)) : extensionPageWorker() + ? !window ? backgroundWorker(new WebSocket(wsHost)) : extensionPageWorker() : contentScriptWorker(); -})(window); +})(this); /* ----------------------------------------------- */ /* End of Webpack Hot Extension Middleware */ From 63689338256504157aff2e188a2b976647951789 Mon Sep 17 00:00:00 2001 From: Reorx Date: Sat, 26 Mar 2022 22:08:25 +0800 Subject: [PATCH 2/2] remove unnecessary console.log --- src/middleware/wer-middleware.raw.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/middleware/wer-middleware.raw.ts b/src/middleware/wer-middleware.raw.ts index d64712ee..8d739dce 100644 --- a/src/middleware/wer-middleware.raw.ts +++ b/src/middleware/wer-middleware.raw.ts @@ -11,8 +11,6 @@ window = _window } - console.log('window', window); - const injectionContext = this || {browser: null}; (function() {