// Returns the application settings based on command line arguments. void AppGetSettings(CefSettings& settings, CefRefPtr<ClientApp> app) { DCHECK(app.get()); DCHECK(g_command_line.get()); if (!g_command_line.get()) return; #if defined(OS_WIN) settings.multi_threaded_message_loop = g_command_line->HasSwitch(client::switches::kMultiThreadedMessageLoop); #endif CefString(&settings.cache_path) = g_command_line->GetSwitchValue(client::switches::kCachePath); CefString(&settings.log_file) = g_command_line->GetSwitchValue(client::switches::kLogFile); { std::string str = g_command_line->GetSwitchValue(client::switches::kLogSeverity); // Default to LOGSEVERITY_DISABLE settings.log_severity = LOGSEVERITY_DISABLE; if (!str.empty()) { if (str == client::switches::kLogSeverity_Verbose) settings.log_severity = LOGSEVERITY_VERBOSE; else if (str == client::switches::kLogSeverity_Info) settings.log_severity = LOGSEVERITY_INFO; else if (str == client::switches::kLogSeverity_Warning) settings.log_severity = LOGSEVERITY_WARNING; else if (str == client::switches::kLogSeverity_Error) settings.log_severity = LOGSEVERITY_ERROR; else if (str == client::switches::kLogSeverity_Disable) settings.log_severity = LOGSEVERITY_DISABLE; } } // Don't update the settings.locale with the locale that we detected from the OS. // Otherwise, CEF will use it to find the resources and when it fails in finding resources // for some locales that are not available in resources, it crashes. //CefString(&settings.locale) = app->GetCurrentLanguage( ); CefString(&settings.javascript_flags) = g_command_line->GetSwitchValue(client::switches::kJavascriptFlags); // Enable dev tools settings.remote_debugging_port = REMOTE_DEBUGGING_PORT; std::wstring versionStr = AppGetProductVersionString(); if (!versionStr.empty()) { // Explicitly append the Chromium version to our own product version string // since assigning product version always replaces the Chromium version in // the User Agent string. versionStr.append(L" "); versionStr.append(AppGetChromiumVersionString()); // Set product version, which gets added to the User Agent string CefString(&settings.product_version) = versionStr; } }
// Returns the application settings based on command line arguments. void AppGetSettings(CefSettings& settings, CefRefPtr<ClientApp> app) { ASSERT(app.get()); ASSERT(g_command_line.get()); if (!g_command_line.get()) return; CefString str; #if defined(OS_WIN) settings.multi_threaded_message_loop = g_command_line->HasSwitch(cefclient::kMultiThreadedMessageLoop); #endif CefString(&settings.cache_path) = g_command_line->GetSwitchValue(cefclient::kCachePath); CefString(&settings.log_file) = g_command_line->GetSwitchValue(cefclient::kLogFile); { std::string str = g_command_line->GetSwitchValue(cefclient::kLogSeverity); // Default to LOGSEVERITY_DISABLE settings.log_severity = LOGSEVERITY_DISABLE; if (!str.empty()) { if (str == cefclient::kLogSeverity_Verbose) settings.log_severity = LOGSEVERITY_VERBOSE; else if (str == cefclient::kLogSeverity_Info) settings.log_severity = LOGSEVERITY_INFO; else if (str == cefclient::kLogSeverity_Warning) settings.log_severity = LOGSEVERITY_WARNING; else if (str == cefclient::kLogSeverity_Error) settings.log_severity = LOGSEVERITY_ERROR; else if (str == cefclient::kLogSeverity_ErrorReport) settings.log_severity = LOGSEVERITY_ERROR_REPORT; else if (str == cefclient::kLogSeverity_Disable) settings.log_severity = LOGSEVERITY_DISABLE; } } // Don't update the settings.locale with the locale that we detected from the OS. // Otherwise, CEF will use it to find the resources and when it fails in finding resources // for some locales that are not available in resources, it crashes. //CefString(&settings.locale) = app->GetCurrentLanguage( ); CefString(&settings.javascript_flags) = g_command_line->GetSwitchValue(cefclient::kJavascriptFlags); // Retrieve command-line proxy configuration, if any. bool has_proxy = false; cef_proxy_type_t proxy_type = CEF_PROXY_TYPE_DIRECT; CefString proxy_config; if (g_command_line->HasSwitch(cefclient::kProxyType)) { std::string str = g_command_line->GetSwitchValue(cefclient::kProxyType); if (str == cefclient::kProxyType_Direct) { has_proxy = true; proxy_type = CEF_PROXY_TYPE_DIRECT; } else if (str == cefclient::kProxyType_Named || str == cefclient::kProxyType_Pac) { proxy_config = g_command_line->GetSwitchValue(cefclient::kProxyConfig); if (!proxy_config.empty()) { has_proxy = true; proxy_type = (str == cefclient::kProxyType_Named? CEF_PROXY_TYPE_NAMED:CEF_PROXY_TYPE_PAC_STRING); } } } if (has_proxy) { // Provide a ClientApp instance to handle proxy resolution. app->SetProxyConfig(proxy_type, proxy_config); } // Enable dev tools settings.remote_debugging_port = REMOTE_DEBUGGING_PORT; // Set product version, which gets added to the User Agent string CefString(&settings.product_version) = AppGetProductVersionString(); }