void ClientApp::OnBeforeCommandLineProcessing(const CefString& process_type, CefRefPtr<CefCommandLine> command_line) { // disable proxy resolution (we might want to contact a local server from the UI) command_line->AppendSwitch(TEXT("no-proxy-server")); // ignore certificate errors (e.g., in case the app makes requests to HTTPS services with self-signed certificates) command_line->AppendSwitch(TEXT("ignore-certificate-errors")); }
void FCEFBrowserApp::OnBeforeCommandLineProcessing(const CefString& ProcessType, CefRefPtr< CefCommandLine > CommandLine) { CommandLine->AppendSwitch("disable-gpu"); CommandLine->AppendSwitch("disable-gpu-compositing"); #if !PLATFORM_MAC CommandLine->AppendSwitch("enable-begin-frame-scheduling"); #endif }
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"); }
void LootApp::OnBeforeCommandLineProcessing(const CefString& process_type, CefRefPtr<CefCommandLine> command_line) { if (process_type.empty()) { // Browser process, OK to modify the command line. // Disable spell checking. command_line->AppendSwitch("--disable-spell-checking"); command_line->AppendSwitch("--disable-extensions"); } }
void WebRendererApp::OnBeforeCommandLineProcessing(const CefString& process_type, CefRefPtr<CefCommandLine> command_line) { // CEF will NOT shut down properly unless this switch is passed // See https://bitbucket.org/chromiumembedded/cef/issues/1680/windows-2454-crash-on-shutdown-with-multi command_line->AppendSwitch("disable-extensions"); // These switches make performance significantly faster, especially at high resolutions // See https://bitbucket.org/chromiumembedded/cef/commits/e3c1d8632eb43c1c2793d71639f3f5695696a5e8 command_line->AppendSwitch("disable-gpu"); command_line->AppendSwitch("disable-gpu-compositing"); command_line->AppendSwitch("enable-begin-frame-scheduling"); command_line->AppendSwitch("enable-experimental-web-platform-features"); }
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"); }
////////////////////////////////////////////////////////////////////////////////////////// // 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"); } } }
/*--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(); }
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"); };
void MainCefApp::OnBeforeCommandLineProcessing(const CefString& process_type, CefRefPtr< CefCommandLine > command_line) { // Enable WebGL part 2 (other is in CefMediator.cpp) (or not disable is better description) if (!setup::ENABLE_WEBGL) { // Setup for offscreen rendering command_line->AppendSwitch("disable-gpu"); command_line->AppendSwitch("disable-gpu-compositing"); command_line->AppendSwitch("enable-begin-frame-scheduling"); // breaks WebGL, but better for performance } command_line->AppendSwitch("enable-logging"); // get LOG(..) writes in console command_line->AppendSwitch("no-sandbox"); // for what necessary? // EXPERIMENTAL: slow loading? // see end of https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage#markdown-header-proxy-resolution command_line->AppendSwitch("no-proxy-server"); // EXPERIMENTAL // Javascript debugging? command_line->AppendArgument("remote-debugging-port=2012"); }
void Application::OnBeforeCommandLineProcessing( const CefString& process_type, CefRefPtr<CefCommandLine> command_line ) { command_line->AppendSwitch("allow-file-access-from-files"); //command_line->AppendSwitchWithValue("use-gl", "desktop"); // enforce OpenGL not Angle //command_line->AppendSwitch("enable-media-stream"); // WebRTC }
void ClientApp::OnBeforeCommandLineProcessing(const CefString& process_type, CefRefPtr<CefCommandLine> command_line) { //Extra command line switches command_line->AppendSwitch("enable-media-stream"); command_line->AppendSwitch("no-sandbox"); }