Run the following in your project directory:
npm install @raing3/chrome-extension-dispatcher
Dispatchers are the entry point for calling a function that is exposed in another execution scope.
Responders handle requests sent from a connected dispatcher, call any necessary logic and return the resulting value.
Forwarders act as an intermediary between dispatchers and responders when calling a function needs to be bounced through multiple execution scopes.
A demo can be found inside of the demo
folder by launching the demo.html file located in the folder and following the instructions.
The demo extension has 3 different scopes of execution, these are:
This script registers a message responder which handles requests from content-external.js
.
This script performs the following:
- It injects the
content-external.js
script into the page content to enable access of the samewindow
variable as the page (allowing functionality to be exposed to the page). - It registers a forwarder which:
- Accepts requests from
content-external.js
via a dispatched event on the window. - Forwards those requests to
background.js
via the shared message connection. - Returns the response from
background.js
back tocontent-external.js
.
- Accepts requests from
This script registers an event dispatcher which makes functionality exposed by background.js
accessible to the loaded page.