我们有一个使用ShareArrayBuffer的电子应用程序。它是用一个非常古老的电子版本写的。当我们更新电子版本以便在WASM中使用SIMD指令时,它开始显示一个错误,说ShareArrayBuffer没有定义。这似乎是由于Chromeum中的安全更新,并且当设置了跨源隔离时,ShareArrayBuffer可用。
谷歌在网页上展示了一些解释如何启用跨源隔离的文章,但我没有在电子应用程序上找到任何解释如何做到这一点的文章。有人有指向信息的指针或想法可以尝试吗?
谢谢你,
它可以通过在background.js 中添加以下行来启用
app.commandLine.appendSwitch('enable-features','SharedArrayBuffer')
参考
截至2022年12月,这是唯一对我有效的东西:
browserWindow = new BrowserWindow({...});
// Enable SharedArrayBuffer
browserWindow.webContents.session.webRequest.onHeadersReceived((details, callback) => {
details.responseHeaders['Cross-Origin-Opener-Policy'] = ['same-origin'];
details.responseHeaders['Cross-Origin-Embedder-Policy'] = ['require-corp'];
callback({ responseHeaders: details.responseHeaders });
});