Electron contextBridge
contextBridge 用于在 contextIsolation 开启时,把 preload 中定义的受控接口安全地暴露给页面。
#tech / dev / desktop
#resource / electron
#type / concept
#status / growing
[!info] related notes
- 所属 MOC: Electron MOC
- 前置概念: Electron preload 脚本, Electron contextIsolation
- 并列概念: Electron IPC 模式, Electron 安全检查清单
- 关系笔记: Electron 架构总览
Electron contextBridge
一句话定义
contextBridge 是 preload 向页面暴露受控接口的标准桥梁。
核心内容
它解决什么问题
当 contextIsolation 开启时,preload 和页面脚本不在同一个上下文。
这时如果你想让页面调用某些能力,就需要一个明确桥梁把白名单接口放过去,contextBridge 就是这件事的标准做法。
它最适合暴露什么
- 明确命名的方法
- 参数和返回值稳定的业务能力
- 已经做过收敛的 IPC 包装
它不适合暴露什么
- 整个
ipcRenderer - 任意 channel 的透传调用
- 广泛的 Node / Electron 原始能力
边界与易混淆点
- contextBridge 不是“为了方便把对象挂到 window”
- 它的价值在于把页面可见能力收敛成可审核的白名单接口