in remote/CefSettingsParser.cpp [65:140]
bool setSettingItem(CefSettings & out, const std::string & name, const std::string & val) {
//
// Fill string fields
//
size_t cachedPos = name.npos;
if (name.find("browser_subprocess_path") != name.npos) {
CefString(&out.browser_subprocess_path) = val;
} else if (name.find("cache_path") != name.npos) {
CefString(&out.cache_path) = val;
} else if (name.find("user_agent_product") != name.npos) {
CefString(&out.user_agent_product) = val;
} else if (name.find("user_agent") != name.npos) {
CefString(&out.user_agent) = val;
} else if (name.find("locales_dir_path") != name.npos) {
CefString(&out.locales_dir_path) = val;
} else if ((cachedPos = name.find("locale")) != name.npos && (name[cachedPos + 6] == ' ' || name[cachedPos + 6] == '=')) {
CefString(&out.locale) = val;
} else if (name.find("log_file") != name.npos) {
CefString(&out.log_file) = val;
} else if (name.find("log_severity") != name.npos) {
std::string valLowerCase = val;
std::transform(valLowerCase.begin(), valLowerCase.end(), valLowerCase.begin(),
[](unsigned char in){
if (in <= 'Z' && in >= 'A')
return in - ('Z' - 'z');
return (int)in;
});
if (valLowerCase.find("verb") != valLowerCase.npos)
out.log_severity = LOGSEVERITY_VERBOSE;
else if (valLowerCase.find("debug") != valLowerCase.npos)
out.log_severity = LOGSEVERITY_DEBUG;
else if (valLowerCase.find("info") != valLowerCase.npos)
out.log_severity = LOGSEVERITY_INFO;
else if (valLowerCase.find("warn") != valLowerCase.npos)
out.log_severity = LOGSEVERITY_WARNING;
else if (valLowerCase.find("err") != valLowerCase.npos)
out.log_severity = LOGSEVERITY_ERROR;
else if (valLowerCase.find("disable") != valLowerCase.npos)
out.log_severity = LOGSEVERITY_DISABLE;
else
out.log_severity = LOGSEVERITY_DEFAULT;
} else if (name.find("javascript_flags") != name.npos) {
CefString(&out.javascript_flags) = val;
} else if (name.find("resources_dir_path") != name.npos) {
CefString(&out.resources_dir_path) = val;
} else if (name.find("cookieable_schemes_list") != name.npos) {
CefString(&out.cookieable_schemes_list) = val;
} else if (name.find("windowless_rendering_enabled") != name.npos) {
//
// Fill bool fields
//
if (val.compare("true") != 0)
Log::trace("Setting 'windowless_rendering_enabled' will be ignored");
} else if (name.find("command_line_args_disabled") != name.npos) {
out.command_line_args_disabled = val.compare("true") == 0;
} else if (name.find("persist_session_cookies") != name.npos) {
out.persist_session_cookies = val.compare("true") == 0;
} else if (name.find("cookieable_schemes_exclude_defaults") != name.npos) {
out.cookieable_schemes_exclude_defaults = val.compare("true") == 0;
} else if (name.find("no_sandbox") != name.npos) {
out.no_sandbox = val.compare("true") == 0;
} else if (name.find("remote_debugging_port") != name.npos) {
//
// Fill int fields
//
stoi_safe(val, out.remote_debugging_port);
} else if (name.find("uncaught_exception_stack_size") != name.npos) {
stoi_safe(val, out.uncaught_exception_stack_size);
} else if (name.find("background_color") != name.npos) {
stoi_safe(val, out.background_color);
} else {
Log::warn("Unknown CefSetting item: %s=%s", name.c_str(), val.c_str());
return false;
}
return true;
}