contextBridge
Process: Renderer
An example of exposing an API to a renderer from an isolated preload script is given below:
The “Main World” is the JavaScript context that your main renderer code runs in. By default, the page you load in your renderer executes code in this world.
Isolated World
The contextBridge
module has the following methods:
apiKey
string - The key to inject the API ontowindow
with. The API will be accessible onwindow[apiKey]
.
API
The api
provided to must be a Function
, , number
, Array
, boolean
, or an object
whose keys are strings and values are a Function
, string
, number
, Array
, boolean
, or another nested object that meets the same conditions.
Function
values are proxied to the other context and all other values are copied and frozen. Any data / primitives sent in
the API become immutable and updates on either side of the bridge do not result in an update on the other side.
Function
values that you bind through the contextBridge
are proxied through Electron to ensure that contexts remain isolated. This
results in some key limitations that we’ve outlined below.
Parameter / Error / Return Type support
Because parameters, errors and return values are copied when they are sent over the bridge, there are only certain types that can be used. At a high level, if the type you want to use can be serialized and deserialized into the same object it will work. A table of type support has been included below for completeness:
If the type you care about is not in the above table, it is probably not supported.