Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using npm MV3 version with your own background.js #10

Open
bbest31 opened this issue Apr 14, 2023 · 2 comments
Open

Using npm MV3 version with your own background.js #10

bbest31 opened this issue Apr 14, 2023 · 2 comments

Comments

@bbest31
Copy link

bbest31 commented Apr 14, 2023

The current examples in documentation and this repository aren't every helpful in the sense that they use an imported background.js.

Most extensions will be making use of this script and therefore can't set the service worker to be @inboxsdk/core/background.js in the webpack configuration file.

I had to do the following just to make this sdk realistically usable:

  1. Add the following code snippet to my chrome.runtime.onMessage.addListener conditional tree
if (request.type === 'inboxsdk__injectPageWorld' && sender.tab) {
    if (chrome.scripting) {
      // MV3
      chrome.scripting.executeScript({
        target: { tabId: sender.tab.id },
        world: 'MAIN',
        files: ['pageWorld.js'],
      });
      sendResponse(true);
    } else {
      // MV2 fallback. Tell content script it needs to figure things out.
      sendResponse(false);
    }
  } 
  1. Add the pageWorld.js file to my entry list in the webpack file.
  entry: {
    popup: PATHS.src + '/popup.jsx',
    background: PATHS.src + '/background.js',
    contentScript: PATHS.src + '/contentScript.js',
    pageWorld: '@inboxsdk/core/pageWorld.js',
  },

The documentation and/or example needs to be updated to show these extra steps if the package can't be improved to not need them.

@aleemstreak
Copy link
Contributor

aleemstreak commented Apr 14, 2023 via email

@wegry
Copy link
Contributor

wegry commented Feb 22, 2024

@bbest31 If you're bundling your background.js already, you might just try

// background.js
import '@inboxsdk/core/background.js';

at the top of your background.js.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants