Skip to content

ttm56p/poly-webextension-rpc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

webextension-rpc

This module provides a Remote Procedure Call abstraction around the message passing that is available to WebExtension (browser extension) scripts. It makes it easier to call a function in the background script from a tab’s content script, or vice versa.

Example use

In background.js:

function myFunc(arg) {
  return arg * 2
}
makeRemotelyCallable({ myFunc })

In content_script.js:

const myRemoteFunc = remoteFunction('myFunc')
myRemoteFunc(21).then(result => { ... result is 42! ... })

Note that the remote function always returns a Promise, which resolves with the remote function’s actual return value (if the return value is itself a Promise, its result is awaited too).

Install

Using NPM

This module is published on npm.

Run npm install webextension-rpc or equivalent.

Standalone

Try one of the magic npm bundlers, for example:

wget https://wzrd.in/standalone/webextension-rpc -O webextension-rpc.js

API

remoteFunction(functionName, { tabId })

Create a proxy function that invokes the specified remote function.

  • functionName (string, required): name of the function as registered on the remote side.
  • options (object, optional):
    • tabId (number): The id of the tab whose content script is the remote side. Leave undefined to call the background script (from a content script).

makeRemotelyCallable(functions, { insertExtraArg })

Register one or more functions to enable remote scripts to call them. Arguments:

  • functions (object, required): An object with a { functionName: function } mapping. Each function will be remotely callable using the given name.
  • options (object, optional):
    • insertExtraArg (boolean, default is false): If truthy, each executed function also receives, as its first argument before the arguments it was invoked with, a Tab object, which contains the details of the tab that sent the message.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published