How do I set a chromium command line flag in Electron?

馋奶兔 提交于 2020-01-03 04:44:09

问题


I am working on an Electron app and need to enable the following Chromium flag GuestViewCrossProcessFrames to make scaling work with webview.

I tried calling the following line in my main.js but it doesn't seem to work. Also tried enabling plugins for the BrowserWindow as well as webview.

app.commandLine.appendSwitch('--enable-features=GuestViewCrossProcessFrames');

Can someone help me setting up this flag? Thank you.


回答1:


you can set by calling

const { app } = require('electron');
app.commandLine.appendSwitch('enable-features', 'GuestViewCrossProcessFrames');
app.on('ready', () => {
// place your code.
}

note: you need to call it before ready event emitted.




回答2:


It is not clear to me why Electron does this though specific flag you specified is explicitly disabled in electron

https://github.com/electron/electron/blob/bcbcb4c6436e84e7f1f2387c2d7581bbdadb5732/brightray/browser/browser_main_parts.cc#L185-L187

So you can't enable it dynamically.




回答3:


In order to use app.commandLine.appendSwitch be sure to not use '--' your call should look like this

app.commandLine.appendSwitch('enable-features=GuestViewCrossProcessFrames');



回答4:


According to the docs, the proper way of calling appendSwitch is:

app.commandLine.appendSwitch(switch[, value])

As mentioned in OJ Kwon's answer, apparently enable-features is explicitly disabled by Electron. If that wasn't true, you would be able to set it with the following syntax:

app.commandLine.appendSwitch('enable-features', 'GuestViewCrossProcessFrames');

See Supported Chrome Command Line Switches for more examples.



来源:https://stackoverflow.com/questions/51447497/how-do-i-set-a-chromium-command-line-flag-in-electron

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!