bool setSettingItem()

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;
}