Bilibili-Evolved 功能拆解 ① - 沙箱
背景
Bilibili Evolved 是一个模块化的 B 站 UserScript,我对这项目感兴趣的地方有两个点,一是沙箱的实现,二是插件系统的实现,本文主要是研究他的沙箱方案。
沙箱的实现
首先定位到沙箱的代码 load-feature-code.ts:
export class LoadFeatureCodeError extends Error {}
/**
* feature 代码运行沙箱
*/
type CodeSandbox = {
/**
* 在沙箱中执行代码
...
erio.hashnode.dev3 min read