Electron:details.webContentsId在发行版中消失(session.webRequest.onBeforeRequest事件)

Electron:details.webContentsId在发行版中消失(session.webRequest.onBeforeRequest事件),electron,release,development-environment,web-content,Electron,Release,Development Environment,Web Content,我在一个项目中工作,在这个项目中,我需要加载几个共享同一会话(类型为“persist:id”)的不同网站。我开发了一个adblock系统,该系统在webview级别工作,其工作方式如下: let mySession = session.fromPartition(‘persist:id’); session.webRequest.onBeforeRequest(['*://*./*'], (details, cb) => { if (adBlockActiveForSe

我在一个项目中工作,在这个项目中,我需要加载几个共享同一会话(类型为“persist:id”)的不同网站。我开发了一个adblock系统,该系统在webview级别工作,其工作方式如下:

let mySession = session.fromPartition(‘persist:id’);

session.webRequest.onBeforeRequest(['*://*./*'], (details, cb) => {
         if (adBlockActiveForSession(details.webContentsId)){
                  // adblock operations
         }
}
在开发中起作用,并带有生产标志。但是,当我创建一个发布/可执行文件时,它不起作用。我注意到,在发行版中,细节没有“webContentsId”,但在开发中有

我还检查了,它说webContentsId是onBeforeRequest回调中的可选值

为什么它在开发中有效,但在创建发行版时无效?何时可以在参数详细信息中访问webContentsId,何时不能?在做发布包时,我应该使用一些标志?我应该认为这是一个bug吗?有人经历过同样的问题吗

多谢各位

注意:为了确保webview有其webContent id,在加载url之前,我加载一个空站点,在dom就绪之后,我开始加载真正的url


操作系统:

在Ubuntu、Mac中开发,在Mac、Windows中发布。两个版本都有相同的问题

预期行为

onBeforeRequest应返回创建请求的webContent的信息。该信息位于inside details.webContentsId中

实际行为


onBeforeRequest在开发版本中工作且产品处于打开状态时返回它,但是,当执行包以创建发布时,onBeforeRequest不会返回执行请求的webContent的webContent SID

这似乎是electron v3.0.0中引入的错误。我已经打开了一个bug:我在过去打开了一个bug,但他们并不认为它是一个bug。但我认为这很可能是我的措辞。问题是,我甚至在他们的论坛上发布了这个问题,但没有人回复,所以这个问题已经流传了好几个月了,现在我提供了一个最小的修改,这是查看bug的最好方法。我看了你的bug报告,我觉得它太模糊了,无法采取行动