void NUIApp::OnBeforeCommandLineProcessing(const CefString& process_type, CefRefPtr<CefCommandLine> command_line) { command_line->AppendSwitch("enable-experimental-web-platform-features"); command_line->AppendSwitch("enable-media-stream"); command_line->AppendSwitch("use-fake-ui-for-media-stream"); command_line->AppendSwitch("enable-speech-input"); command_line->AppendSwitch("ignore-gpu-blacklist"); command_line->AppendSwitch("enable-usermedia-screen-capture"); command_line->AppendSwitch("disable-direct-composition"); command_line->AppendSwitchWithValue("default-encoding", "utf-8"); //command_line->AppendSwitch("disable-gpu-vsync"); command_line->AppendSwitchWithValue("autoplay-policy", "no-user-gesture-required"); command_line->AppendSwitch("force-gpu-rasterization"); // some GPUs are in the GPU blacklist as 'forcing D3D9' // this just forces D3D11 anyway. command_line->AppendSwitchWithValue("use-angle", "d3d11"); // M65 enables these by default, but CEF doesn't pass the required phase data at this time (2018-03-31) // this breaks scrolling 'randomly' - after a middle click, and some other scenarios command_line->AppendSwitchWithValue("disable-features", "TouchpadAndWheelScrollLatching,AsyncWheelEvents"); // M66 enables this by default, this breaks scrolling in iframes, however only in the Cfx embedder scenario (2018-03-31) // cefclient is not affected, code was compared with cefclient but not that different. command_line->AppendSwitchWithValue("disable-blink-features", "RootLayerScrolling"); }
void CWebApp::OnBeforeCommandLineProcessing(const CefString& process_type, CefRefPtr<CefCommandLine> command_line) { command_line->AppendSwitch("disable-gpu-compositing"); command_line->AppendSwitch("disable-gpu"); // command_line->AppendSwitch("disable-d3d11"); command_line->AppendSwitch("enable-begin-frame-scheduling"); command_line->AppendSwitchWithValue("autoplay-policy", "no-user-gesture-required"); }
/*--cef(optional_param=process_type)--*/ void App::OnBeforeCommandLineProcessing( const CefString& process_type, CefRefPtr<CefCommandLine> command_line) { // May be called on any thread? if (process_type.empty()) { // Browser process. json_value* appSettings = GetApplicationSettings(); json_value switches = (*appSettings)["chrome"]["command_line_switches"]; if (switches.type == json_object) { int length = switches.u.object.length; for (int i = 0; i < length; i++) { std::string name = switches.u.object.values[i].name; std::string value = (*switches.u.object.values[i].value); if (name.find("-") == 0) { LOG_WARNING << "Invalid command line switch: " << name; continue; } if (command_line->HasSwitch(name)) { if (value.empty()) { // Switch already set, do nothing. } else { std::string oldValue = command_line->GetSwitchValue(name); if (oldValue != value) { // Overwrite the switch with a new value. command_line->AppendSwitchWithValue(name, value); } } } else { if (value.empty()) { command_line->AppendSwitch(name); } else { command_line->AppendSwitchWithValue(name, value); } } } } } std::string process_name = "browser"; if (!process_type.empty()) { process_name = process_type; } LOG_DEBUG << "Command line string for the " << process_name << " process: " << command_line->GetCommandLineString().ToString(); }
////////////////////////////////////////////////////////////////////////////////////////// // CefApp methods. void ClientApp::OnBeforeCommandLineProcessing(const CefString& process_type, CefRefPtr<CefCommandLine> command_line) { // Pass additional command-line flags to the browser process. if (process_type.empty()) { command_line->AppendSwitchWithValue("ppapi-flash-version", "20.0.0.228"); command_line->AppendSwitchWithValue("ppapi-flash-path", "PepperFlash\\pepflashplayer.dll"); //同一个域下的使用同一个渲染进程 command_line->AppendSwitch("process-per-site"); command_line->AppendSwitch("disable-gpu"); command_line->AppendSwitch("disable-gpu-compositing"); //command_line->AppendSwitchWithValue("proxy-server", "SOCKS5://127.0.0.1:1080"); // 开启离屏渲染 if (CefManager::GetInstance()->IsEnableOffsetRender()) { command_line->AppendSwitch("disable-surfaces"); command_line->AppendSwitch("enable-begin-frame-scheduling"); } } }
void Application::OnBeforeCommandLineProcessing( const CefString& process_type, CefRefPtr<CefCommandLine> command_line) { /* command_line->AppendSwitch("allow-no-sandbox-job"); command_line->AppendSwitch("disable-gpu-sandbox"); command_line->AppendSwitch("disable-3d-apis"); command_line->AppendSwitch("disable-webgl"); */ command_line->AppendSwitch("off-screen-rendering-enabled"); command_line->AppendSwitchWithValue("off-screen-frame-rate", "60"); command_line->AppendSwitch("enable-font-antialiasing"); command_line->AppendSwitch("enable-media-stream"); command_line->AppendSwitch("disable-gpu"); command_line->AppendSwitch("disable-gpu-compositing"); command_line->AppendSwitch("enable-begin-frame-scheduling"); };