Mozilla Firefox 的 XPCSafeJSObject 包装器实际上做了什么?
MDC的文档如下:
创建此包装器是为了解决 XPCNativeWrapper 的一些问题。特别是,一些扩展希望能够安全地访问非本机实现的内容定义对象(以及访问 XPCNativeWrapper 下的底层 JavaScript 对象而无需其强大的行为保证)。XPCSJOW 充当 chrome 代码之间的缓冲区。
这并没有告诉我很多。特别是,我不知道通过 XPCSafeObject 访问对象与直接访问它们有何不同。
编辑:我知道包装器的一般目的是保护特权代码免受非特权代码的影响。我不明白(并且似乎没有记录)是XPCSafeJSObject 究竟是如何做到这一点的。
它只是在访问属性之前放弃特权吗?