应用程序构造
每个CEF3应用程序都有一个雷同的构造:
- 提供一个入口函数以初始化CEF和运行每个子过程逻辑和CEF音讯解决
- 提供一个CefApp子类解决某个过程的回调
- 提供一个CefClinet子类解决某个浏览过程的回调
- 调用CefBrowserHost::CreateBrowser()函数创立浏览过程实例并应用CefLifeSpanHandler来管- 理浏览生命周期
typedef struct _cef_settings_t { /// // Size of this structure. /// size_t size; /// // Set to true (1) to use a single process for the browser and renderer. This // run mode is not officially supported by Chromium and is less stable than // the multi-process default. Also configurable using the "single-process" // command-line switch. /// bool single_process; /// // The path to a separate executable that will be launched for sub-processes. // By default the browser process executable is used. See the comments on // CefExecuteProcess() for details. Also configurable using the // "browser-subprocess-path" command-line switch. /// cef_string_t browser_subprocess_path; /// // Set to true (1) to have the browser process message loop run in a separate // thread. If false (0) than the CefDoMessageLoopWork() function must be // called from your application message loop. /// bool multi_threaded_message_loop; /// // 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. /// bool command_line_args_disabled; /// // The location where cache data will be stored on disk. If empty an in-memory // cache will be used for some features and a temporary disk cache for others. // HTML5 databases such as localStorage will only persist across sessions if a // cache path is specified. /// cef_string_t cache_path; /// // 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. 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. /// bool persist_session_cookies; /// // 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. /// cef_string_t user_agent; /// // 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 "product-version" command-line switch. /// cef_string_t product_version; /// // 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. /// cef_string_t locale; /// // The directory and file name to use for the debug log. If empty, the // default name of "debug.log" will be used and the file will be written // to the application directory. Also configurable using the "log-file" // command-line switch. /// cef_string_t log_file; /// // The log severity. Only messages of this severity level or higher will be // logged. Also configurable using the "log-severity" command-line switch with // a value of "verbose", "info", "warning", "error", "error-report" or // "disable". /// cef_log_severity_t log_severity; /// // Enable DCHECK in release mode to ease debugging. Also configurable using the // "enable-release-dcheck" command-line switch. /// bool release_dcheck_enabled; /// // 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. /// cef_string_t javascript_flags; /// // The fully qualified path for the resources directory. If this value is // empty the cef.pak and/or devtools_resources.pak files must be located in // the module directory on Windows/Linux or the app bundle Resources directory // on Mac OS X. Also configurable using the "resources-dir-path" command-line // switch. /// cef_string_t resources_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. This value // is ignored on Mac OS X where pack files are always loaded from the app // bundle Resources directory. Also configurable using the "locales-dir-path" // command-line switch. /// cef_string_t locales_dir_path; /// // 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. /// bool pack_loading_disabled; /// // Set to a value between 1024 and 65535 to enable remote debugging on the // specified port. For example, if 8080 is specified the remote debugging URL // will be http://localhost:8080. CEF can be remotely debugged from any CEF or // Chrome browser window. Also configurable using the "remote-debugging-port" // command-line switch. /// int remote_debugging_port; /// // The number of stack trace frames to capture for uncaught exceptions. // Specify a positive value to enable the CefV8ContextHandler:: // OnUncaughtException() callback. Specify 0 (default value) and // OnUncaughtException() will not be called. Also configurable using the // "uncaught-exception-stack-size" command-line switch. /// int uncaught_exception_stack_size; /// // By default CEF V8 references will be invalidated (the IsValid() method will // return false) after the owning context has been released. This reduces the // need for external record keeping and avoids crashes due to the use of V8 // references after the associated context has been released. // // CEF currently offers two context safety implementations with different // performance characteristics. The default implementation (value of 0) uses a // map of hash values and should provide better performance in situations with // a small number contexts. The alternate implementation (value of 1) uses a // hidden value attached to each context and should provide better performance // in situations with a large number of contexts. // // If you need better performance in the creation of V8 references and you // plan to manually track context lifespan you can disable context safety by // specifying a value of -1. // // Also configurable using the "context-safety-implementation" command-line // switch. /// int context_safety_implementation; /// // Set to true (1) to ignore errors related to invalid SSL certificates. // Enabling this setting can lead to potential security vulnerabilities like // "man in the middle" attacks. Applications that load content from the // internet should not enable this setting. Also configurable using the // "ignore-certificate-errors" command-line switch. /// bool ignore_certificate_errors; /// // Used on Mac OS X to specify the background color for hardware accelerated // content. /// cef_color_t background_color;} cef_settings_t;
罕用成员
single_process 设置为true将为浏览器和渲染应用单过程。也可配置应用单个过程的命令行开关。
browser_subprocess_path 子过程的单个执行体门路,
multi_threaded_message_loop为true示意浏览器过程的音讯循环以单线程运行。
command_line_args_idsabled为true示意禁用应用规范的CEF和Chrominum命令行参数的浏览器过程配置的个性。
cache_path缓存数据保留在磁盘上,如果为空,内存缓存会被某些个性应用,长期磁盘缓存会被其余中央应用。如果不为空,如HTML5本地存储数据库会跨域。
locale locale字符串会传递给blink,默认为en-US
log_file为debuglog文件门路
log_severity日志等级
resources_dir_path材料的目录门路。即cef.pak或devtools_resources.pak文件的保留门路
locales_dir_path
locales_dir_path locales的保留门路
remote_debugging_port近程调试端口。范畴在1024~65535