Chromium Embedded Framework (CEF)  121.0.1+g7a4b55f+chromium-121.0.6167.16
cef_settings_t Struct Reference

Initialization settings. More...

#include "include/internal/cef_types.h"

Public Attributes

size_t size
 Size of this structure. More...
 
int no_sandbox
 Set to true (1) to disable the sandbox for sub-processes. More...
 
cef_string_t browser_subprocess_path
 The path to a separate executable that will be launched for sub-processes. More...
 
cef_string_t framework_dir_path
 The path to the CEF framework directory on macOS. More...
 
cef_string_t main_bundle_path
 The path to the main bundle on macOS. More...
 
int chrome_runtime
 Set to true (1) to enable use of the Chrome runtime in CEF. More...
 
int multi_threaded_message_loop
 Set to true (1) to have the browser process message loop run in a separate thread. More...
 
int external_message_pump
 Set to true (1) to control browser process main (UI) thread message pump scheduling via the CefBrowserProcessHandler::OnScheduleMessagePumpWork() callback. More...
 
int windowless_rendering_enabled
 Set to true (1) to enable windowless (off-screen) rendering support. More...
 
int command_line_args_disabled
 Set to true (1) to disable configuration of browser process features using standard CEF and Chromium command-line arguments. More...
 
cef_string_t cache_path
 The directory where data for the global browser cache will be stored on disk. More...
 
cef_string_t root_cache_path
 The root directory for installation-specific data and the parent directory for profile-specific data. More...
 
int persist_session_cookies
 To persist session cookies (cookies without an expiry date or validity interval) by default when using the global cookie manager set this value to true (1). More...
 
int persist_user_preferences
 To persist user preferences as a JSON file in the cache path directory set this value to true (1). More...
 
cef_string_t user_agent
 Value that will be returned as the User-Agent HTTP header. More...
 
cef_string_t user_agent_product
 Value that will be inserted as the product portion of the default User-Agent string. More...
 
cef_string_t locale
 The locale string that will be passed to WebKit. More...
 
cef_string_t log_file
 The directory and file name to use for the debug log. More...
 
cef_log_severity_t log_severity
 The log severity. More...
 
cef_log_items_t log_items
 The log items prepended to each log line. More...
 
cef_string_t javascript_flags
 Custom flags that will be used when initializing the V8 JavaScript engine. More...
 
cef_string_t resources_dir_path
 The fully qualified path for the resources directory. More...
 
cef_string_t locales_dir_path
 The fully qualified path for the locales directory. More...
 
int pack_loading_disabled
 Set to true (1) to disable loading of pack files for resources and locales. More...
 
int remote_debugging_port
 Set to a value between 1024 and 65535 to enable remote debugging on the specified port. More...
 
int uncaught_exception_stack_size
 The number of stack trace frames to capture for uncaught exceptions. More...
 
cef_color_t background_color
 Background color used for the browser before a document is loaded and when no document color is specified. More...
 
cef_string_t accept_language_list
 Comma delimited ordered list of language codes without any whitespace that will be used in the "Accept-Language" HTTP request header and "navigator.language" JS attribute. More...
 
cef_string_t cookieable_schemes_list
 Comma delimited list of schemes supported by the associated CefCookieManager. More...
 
int cookieable_schemes_exclude_defaults
 
cef_string_t chrome_policy_id
 Specify an ID to enable Chrome policy management via Platform and OS-user policies. More...
 
int chrome_app_icon_id
 Specify an ID for an ICON resource that can be loaded from the main executable and used when creating default Chrome windows such as DevTools and Task Manager. More...
 

Detailed Description

Initialization settings.

Specify NULL or 0 to get the recommended default values. Many of these and other settings can also configured using command- line switches.

Member Data Documentation

◆ accept_language_list

cef_string_t cef_settings_t::accept_language_list

Comma delimited ordered list of language codes without any whitespace that will be used in the "Accept-Language" HTTP request header and "navigator.language" JS attribute.

Can be overridden for individual CefRequestContext instances via the CefRequestContextSettings.accept_language_list value.

◆ background_color

cef_color_t cef_settings_t::background_color

Background color used for the browser before a document is loaded and when no document color is specified.

The alpha component must be either fully opaque (0xFF) or fully transparent (0x00). If the alpha component is fully opaque then the RGB components will be used as the background color. If the alpha component is fully transparent for a windowed browser then the default value of opaque white be used. If the alpha component is fully transparent for a windowless (off-screen) browser then transparent painting will be enabled.

◆ browser_subprocess_path

cef_string_t cef_settings_t::browser_subprocess_path

The path to a separate executable that will be launched for sub-processes.

If this value is empty on Windows or Linux then the main process executable will be used. If this value is empty on macOS then a helper executable must exist at "Contents/Frameworks/<app> Helper.app/Contents/MacOS/<app> Helper" in the top-level app bundle. See the comments on CefExecuteProcess() for details. If this value is non-empty then it must be an absolute path. Also configurable using the "browser-subprocess-path" command-line switch.

◆ cache_path

cef_string_t cef_settings_t::cache_path

The directory where data for the global browser cache will be stored on disk.

If this value is non-empty then it must be an absolute path that is either equal to or a child directory of CefSettings.root_cache_path. If this value is empty then browsers will be created in "incognito mode" where in-memory caches are used for storage and no profile-specific data is persisted to disk (installation-specific data will still be persisted in root_cache_path). HTML5 databases such as localStorage will only persist across sessions if a cache path is specified. Can be overridden for individual CefRequestContext instances via the CefRequestContextSettings.cache_path value. When using the Chrome runtime any child directory value will be ignored and the "default" profile (also a child directory) will be used instead.

◆ chrome_app_icon_id

int cef_settings_t::chrome_app_icon_id

Specify an ID for an ICON resource that can be loaded from the main executable and used when creating default Chrome windows such as DevTools and Task Manager.

If unspecified the default Chromium ICON (IDR_MAINFRAME [101]) will be loaded from libcef.dll. Only supported with the Chrome runtime on Windows.

◆ chrome_policy_id

cef_string_t cef_settings_t::chrome_policy_id

Specify an ID to enable Chrome policy management via Platform and OS-user policies.

On Windows, this is a registry key like "SOFTWARE\\Policies\\Google\\Chrome". On MacOS, this is a bundle ID like "com.google.Chrome". On Linux, this is an absolute directory path like "/etc/opt/chrome/policies". Only supported with the Chrome runtime. See https://support.google.com/chrome/a/answer/9037717 for details.

Chrome Browser Cloud Management integration, when enabled via the "enable-chrome-browser-cloud-management" command-line flag, will also use the specified ID. See https://support.google.com/chrome/a/answer/9116814 for details.

◆ chrome_runtime

int cef_settings_t::chrome_runtime

Set to true (1) to enable use of the Chrome runtime in CEF.

This feature is considered experimental and is not recommended for most users at this time. See issue #2969 for details.

◆ command_line_args_disabled

int cef_settings_t::command_line_args_disabled

Set to true (1) to disable configuration of browser process features using standard CEF and Chromium command-line arguments.

Configuration can still be specified using CEF data structures or via the CefApp::OnBeforeCommandLineProcessing() method.

◆ cookieable_schemes_exclude_defaults

int cef_settings_t::cookieable_schemes_exclude_defaults

◆ cookieable_schemes_list

cef_string_t cef_settings_t::cookieable_schemes_list

Comma delimited list of schemes supported by the associated CefCookieManager.

If |cookieable_schemes_exclude_defaults| is false (0) the default schemes ("http", "https", "ws" and "wss") will also be supported. Not specifying a |cookieable_schemes_list| value and setting |cookieable_schemes_exclude_defaults| to true (1) will disable all loading and saving of cookies. These settings will only impact the global CefRequestContext. Individual CefRequestContext instances can be configured via the CefRequestContextSettings.cookieable_schemes_list and CefRequestContextSettings.cookieable_schemes_exclude_defaults values.

◆ external_message_pump

int cef_settings_t::external_message_pump

Set to true (1) to control browser process main (UI) thread message pump scheduling via the CefBrowserProcessHandler::OnScheduleMessagePumpWork() callback.

This option is recommended for use in combination with the CefDoMessageLoopWork() function in cases where the CEF message loop must be integrated into an existing application message loop (see additional comments and warnings on CefDoMessageLoopWork). Enabling this option is not recommended for most users; leave this option disabled and use either the CefRunMessageLoop() function or multi_threaded_message_loop if possible.

◆ framework_dir_path

cef_string_t cef_settings_t::framework_dir_path

The path to the CEF framework directory on macOS.

If this value is empty then the framework must exist at "Contents/Frameworks/Chromium Embedded Framework.framework" in the top-level app bundle. If this value is non-empty then it must be an absolute path. Also configurable using the "framework-dir-path" command-line switch.

◆ javascript_flags

cef_string_t cef_settings_t::javascript_flags

Custom flags that will be used when initializing the V8 JavaScript engine.

The consequences of using custom flags may not be well tested. Also configurable using the "js-flags" command-line switch.

◆ locale

cef_string_t cef_settings_t::locale

The locale string that will be passed to WebKit.

If empty the default locale of "en-US" will be used. This value is ignored on Linux where locale is determined using environment variable parsing with the precedence order: LANGUAGE, LC_ALL, LC_MESSAGES and LANG. Also configurable using the "lang" command-line switch.

◆ locales_dir_path

cef_string_t cef_settings_t::locales_dir_path

The fully qualified path for the locales directory.

If this value is empty the locales directory must be located in the module directory. If this value is non-empty then it must be an absolute path. This value is ignored on MacOS where pack files are always loaded from the app bundle Resources directory. Also configurable using the "locales-dir-path" command-line switch.

◆ log_file

cef_string_t cef_settings_t::log_file

The directory and file name to use for the debug log.

If empty a default log file name and location will be used. On Windows and Linux a "debug.log" file will be written in the main executable directory. On MacOS a "~/Library/Logs/[app name]_debug.log" file will be written where [app name] is the name of the main app executable. Also configurable using the "log-file" command-line switch.

◆ log_items

cef_log_items_t cef_settings_t::log_items

The log items prepended to each log line.

If not set the default log items will be used. Also configurable using the "log-items" command-line switch with a value of "none" for no log items, or a comma-delimited list of values "pid", "tid", "timestamp" or "tickcount" for custom log items.

◆ log_severity

cef_log_severity_t cef_settings_t::log_severity

The log severity.

Only messages of this severity level or higher will be logged. When set to DISABLE no messages will be written to the log file, but FATAL messages will still be output to stderr. Also configurable using the "log-severity" command-line switch with a value of "verbose", "info", "warning", "error", "fatal" or "disable".

◆ main_bundle_path

cef_string_t cef_settings_t::main_bundle_path

The path to the main bundle on macOS.

If this value is empty then it defaults to the top-level app bundle. If this value is non-empty then it must be an absolute path. Also configurable using the "main-bundle-path" command-line switch.

◆ multi_threaded_message_loop

int cef_settings_t::multi_threaded_message_loop

Set to true (1) to have the browser process message loop run in a separate thread.

If false (0) then the CefDoMessageLoopWork() function must be called from your application message loop. This option is only supported on Windows and Linux.

◆ no_sandbox

int cef_settings_t::no_sandbox

Set to true (1) to disable the sandbox for sub-processes.

See cef_sandbox_win.h for requirements to enable the sandbox on Windows. Also configurable using the "no-sandbox" command-line switch.

◆ pack_loading_disabled

int cef_settings_t::pack_loading_disabled

Set to true (1) to disable loading of pack files for resources and locales.

A resource bundle handler must be provided for the browser and render processes via CefApp::GetResourceBundleHandler() if loading of pack files is disabled. Also configurable using the "disable-pack-loading" command- line switch.

◆ persist_session_cookies

int cef_settings_t::persist_session_cookies

To persist session cookies (cookies without an expiry date or validity interval) by default when using the global cookie manager set this value to true (1).

Session cookies are generally intended to be transient and most Web browsers do not persist them. A |cache_path| value must also be specified to enable this feature. Also configurable using the "persist-session-cookies" command-line switch. Can be overridden for individual CefRequestContext instances via the CefRequestContextSettings.persist_session_cookies value.

◆ persist_user_preferences

int cef_settings_t::persist_user_preferences

To persist user preferences as a JSON file in the cache path directory set this value to true (1).

A |cache_path| value must also be specified to enable this feature. Also configurable using the "persist-user-preferences" command-line switch. Can be overridden for individual CefRequestContext instances via the CefRequestContextSettings.persist_user_preferences value.

◆ remote_debugging_port

int cef_settings_t::remote_debugging_port

Set to a value between 1024 and 65535 to enable remote debugging on the specified port.

Also configurable using the "remote-debugging-port" command-line switch. Remote debugging can be accessed by loading the chrome://inspect page in Google Chrome. Port numbers 9222 and 9229 are discoverable by default. Other port numbers may need to be configured via "Discover network targets" on the Devices tab.

◆ resources_dir_path

cef_string_t cef_settings_t::resources_dir_path

The fully qualified path for the resources directory.

If this value is empty the *.pak files must be located in the module directory on Windows/Linux or the app bundle Resources directory on MacOS. If this value is non-empty then it must be an absolute path. Also configurable using the "resources-dir-path" command-line switch.

◆ root_cache_path

cef_string_t cef_settings_t::root_cache_path

The root directory for installation-specific data and the parent directory for profile-specific data.

All CefSettings.cache_path and CefRequestContextSettings.cache_path values must have this parent directory in common. If this value is empty and CefSettings.cache_path is non-empty then it will default to the CefSettings.cache_path value. Any non-empty value must be an absolute path. If both values are empty then the default platform-specific directory will be used ("~/.config/cef_user_data" directory on Linux, "~/Library/Application Support/CEF/User Data" directory on MacOS, "AppData\Local\CEF\User Data" directory under the user profile directory on Windows). Use of the default directory is not recommended in production applications (see below).

Multiple application instances writing to the same root_cache_path directory could result in data corruption. A process singleton lock based on the root_cache_path value is therefore used to protect against this. This singleton behavior applies to all CEF-based applications using version 120 or newer. You should customize root_cache_path for your application and implement CefBrowserProcessHandler:: OnAlreadyRunningAppRelaunch, which will then be called on any app relaunch with the same root_cache_path value.

Failure to set the root_cache_path value correctly may result in startup crashes or other unexpected behaviors (for example, the sandbox blocking read/write access to certain files).

◆ size

size_t cef_settings_t::size

Size of this structure.

◆ uncaught_exception_stack_size

int cef_settings_t::uncaught_exception_stack_size

The number of stack trace frames to capture for uncaught exceptions.

Specify a positive value to enable the CefRenderProcessHandler::OnUncaughtException() callback. Specify 0 (default value) and OnUncaughtException() will not be called. Also configurable using the "uncaught-exception-stack-size" command-line switch.

◆ user_agent

cef_string_t cef_settings_t::user_agent

Value that will be returned as the User-Agent HTTP header.

If empty the default User-Agent string will be used. Also configurable using the "user-agent" command-line switch.

◆ user_agent_product

cef_string_t cef_settings_t::user_agent_product

Value that will be inserted as the product portion of the default User-Agent string.

If empty the Chromium product version will be used. If |userAgent| is specified this value will be ignored. Also configurable using the "user-agent-product" command-line switch.

◆ windowless_rendering_enabled

int cef_settings_t::windowless_rendering_enabled

Set to true (1) to enable windowless (off-screen) rendering support.

Do not enable this value if the application does not use windowless rendering as it may reduce rendering performance on some systems.


The documentation for this struct was generated from the following file: