NetDimension.NanUI Initializes a new instance of the class. The action. The execute. Gets or sets the action. Gets the instance of the CefBrowser using in current window. Invokes action in the UI thread of current window. Posts action to the UI thread of current window. Gets a value indicating whether the WebView is ready to use. Occurs before the browser is Created. Called on the UI thread before a new popup browser is created. The |browser| and |frame| values represent the source of the popup request. The |target_url| and |target_frame_name| values indicate where the popup browser should navigate and may be empty if not specified with the request. The |target_disposition| value indicates where the user intended to open the popup (e.g. current tab, new tab, etc). The |user_gesture| value will be true if the popup was opened via explicit user gesture (e.g. clicking a link) or false if the popup opened automatically (e.g. via the DomContentLoaded event). The |popupFeatures| structure contains additional information about the requested popup window. To allow creation of the popup browser optionally modify |windowInfo|, |client|, |settings| and |no_javascript_access| and return false. To cancel creation of the popup browser return true. The |client| and |settings| values will default to the source browser's values. If the |no_javascript_access| value is set to false the new browser will not be scriptable and may not be hosted in the same renderer process as the source browser. Any modifications to |windowInfo| will be ignored if the parent browser is wrapped in a CefBrowserView. Popup browser creation will be canceled if the parent browser is destroyed before the popup browser creation completes (indicated by a call to OnAfterCreated for the popup browser). The |extra_info| parameter provides an opportunity to specify extra information specific to the created popup browser that will be passed to CefRenderProcessHandler::OnBrowserCreated() in the render process. Called just before a browser is destroyed. Release all references to the browser object and do not attempt to execute any methods on the browser object (other than GetIdentifier or IsSame) after this callback returns. This callback will be the last notification that references |browser| on the UI thread. Any in-progress network requests associated with |browser| will be aborted when the browser is destroyed, and CefResourceRequestHandler callbacks related to those requests may still arrive on the IO thread after this method is called. See DoClose() documentation for additional usage information. Raises the BeforePopup event. Raises the BeforeClose event. Called after a navigation has been committed and before the browser begins loading contents in the frame. The |frame| value will never be empty -- call the IsMain() method to check if this frame is the main frame. |transition_type| provides information about the source of the navigation and an accurate value is only available in the browser process. Multiple frames may be loading at the same time. Sub-frames may start or continue loading after the main frame load has ended. This method will not be called for same page navigations (fragments, history state, etc.) or for navigations that fail or are canceled before commit. For notification of overall browser load status use OnLoadingStateChange instead. Called when the browser is done loading a frame. The |frame| value will never be empty -- call the IsMain() method to check if this frame is the main frame. Multiple frames may be loading at the same time. Sub-frames may start or continue loading after the main frame load has ended. This method will not be called for same page navigations (fragments, history state, etc.) or for navigations that fail or are canceled before commit. For notification of overall browser load status use OnLoadingStateChange instead. Called when a navigation fails or is canceled. This method may be called by itself if before commit or in combination with OnLoadStart/OnLoadEnd if after commit. |errorCode| is the error code number, |errorText| is the error text and |failedUrl| is the URL that failed to load. See net\base\net_error_list.h for complete descriptions of the error codes. Called when the loading state has changed. This callback will be executed twice -- once when loading is initiated either programmatically or by user action, and once when loading is terminated due to completion, cancellation of failure. It will be called before any calls to OnLoadStart and after all calls to OnLoadError and/or OnLoadEnd. Raises the LoadStart event. Raises the LoadEnd event. Raises the LoadError event. Raises the LoadingStateChanged event. Called when a frame's address has changed. Called to display a console message. Return true to stop the message from being output to the console. Called when web content in the page has toggled fullscreen mode. If |fullscreen| is true the content will automatically be sized to fill the browser content area. If |fullscreen| is false the content will automatically return to its original size and position. The client is responsible for resizing the browser if desired. Called when the overall page loading progress has changed. |progress| ranges from 0.0 to 1.0. Called when the browser receives a status message. |value| contains the text that will be displayed in the status message. Called when the page title changes. Raises the AddressChanged event. Raises the ConsoleMessage event. Raises the FullScreenModeChanged event. Raises the LoadingProgressChanged event. Raises the StatusMessage event. Raises the DocumentTitleChanged event. Called before a context menu is displayed. |params| provides information about the context menu state. |model| initially contains the default context menu. The |model| can be cleared to show no context menu or modified to show a custom menu. Do not keep references to |params| or |model| outside of this callback. Called to execute a command selected from the context menu. Return true if the command was handled or false for the default implementation. See cef_menu_id_t for the command ids that have default implementations. All user-defined command ids should be between MENU_ID_USER_FIRST and MENU_ID_USER_LAST. |params| will have the same values as what was passed to OnBeforeContextMenu(). Do not keep a reference to |params| outside of this callback. Called when an external drag event enters the browser window. |dragData| contains the drag event data and |mask| represents the type of drag operation. Return false for default drag handling behavior or true to cancel the drag event. Raises the BeforeContextMenu event. Raises the ContextMenuCommand event. Raises the DragEnter event. Called on the IO thread when the browser needs credentials from the user. |origin_url| is the origin making this authentication request. |isProxy| indicates whether the host is a proxy server. |host| contains the hostname and |port| contains the port number. |realm| is the realm of the challenge and may be empty. |scheme| is the authentication scheme used, such as "basic" or "digest", and will be empty if the source of the request is an FTP server. Return true to continue the request and call CefAuthCallback::Continue() either in this method or at a later time when the authentication information is available. Return false to cancel the request immediately. Called on the UI thread to handle requests for URLs with an invalid SSL certificate. Return true and call CefRequestCallback::Continue() either in this method or at a later time to continue or cancel the request. Return false to cancel the request immediately. If CefSettings.ignore_certificate_errors is set all invalid certificates will be accepted without calling this method. Called on the UI thread before browser navigation. Return true to cancel the navigation or false to allow the navigation to proceed. The |request| object cannot be modified in this callback. CefLoadHandler::OnLoadingStateChange will be called twice in all cases. If the navigation is allowed CefLoadHandler::OnLoadStart and CefLoadHandler::OnLoadEnd will be called. If the navigation is canceled CefLoadHandler::OnLoadError will be called with an |errorCode| value of ERR_ABORTED. The |user_gesture| value will be true if the browser navigated via explicit user gesture (e.g. clicking a link) or false if it navigated automatically (e.g. via the DomContentLoaded event). Called on the browser process UI thread when the render process terminates unexpectedly. |status| indicates how the process terminated. Raises the OnBeforeBrowse event. Raises the GetAuthCredentials event. Raises the CertificateError event. Raises the RenderProcessTerminated event. Called before a download begins. |suggested_name| is the suggested name for the download file. By default the download will be canceled. Execute |callback| either asynchronously or in this method to continue the download if desired. Do not keep a reference to |download_item| outside of this method. Called when a download's status or progress information has been updated. This may be called multiple times before and after OnBeforeDownload(). Execute |callback| either asynchronously or in this method to cancel the download if desired. Do not keep a reference to |download_item| outside of this method. Raises the BeforeDownload event. Raises the DownloadUpdated event. Called after the renderer and JavaScript in the page has had a chance to handle the event. |event| contains information about the keyboard event. |os_event| is the operating system event message, if any. Return true if the keyboard event was handled or false otherwise. Called before a keyboard event is sent to the renderer. |event| contains information about the keyboard event. |os_event| is the operating system event message, if any. Return true if the event was handled or false otherwise. If the event will be handled in OnKeyEvent() as a keyboard shortcut set |is_keyboard_shortcut| to true and return false. Raises the PreKeyEvent event. Raises the OnKeyEvent event. Called to report find results returned by CefBrowserHost::Find(). |identifer| is the identifier passed to Find(), |count| is the number of matches currently identified, |selectionRect| is the location of where the match was found (in window coordinates), |activeMatchOrdinal| is the current position in the search results, and |finalUpdate| is true if this is the last find notification. Raises the FindResult event. Gets a value indicating whether the Formium is in full screen mode. Gets the handle of the host window. Gets the handle of the browser window. Sets the window type of current window, this value can not changed when host window is created. Sets the startup url. Gets or sets the system menu will show when right clicking in dragable regions. Gets or sets a value indicating whether the formium allows to full screen mode. Gets or sets a value indicating whether the Mask Panel allows to show on startup. Gets or sets the main title associated with this window. Gets or sets the subtitle associated with this window. Gets or sets the minimum size the window can be resized to. Gets or sets a value indicating whether the window can be resize. Gets or sets a value indicating whether the maximize behavior is allowed to perform. Gets or sets a value indicating whether the minimize behavior is allowed to perform. Makes the window to full screen mode. Displays the form to the users Shows the form with the specified owner to the user. Any object that implements System.Windows.Forms.IWin32Window and represents the top-level window that will own this form. Shows the form with the specified owner to the user. Any object that implements System.Windows.Forms.IWin32Window and represents the top-level window that will own this form. Shows the form as a modal dialog box. One of the System.Windows.Forms.DialogResult values. Shows the form as a modal dialog box with the specified owner. Any object that implements System.Windows.Forms.IWin32Window that represents the top-level window that will own the modal dialog box. One of the System.Windows.Forms.DialogResult values. Shows the form as a modal dialog box with the specified owner. Any object that implements Formium that represents the top-level window that will own the modal dialog box. Closes the form. Hides the form. Returns true if current browser can navigate backwards. Returns true if current browser can navigate forwards. Returns the number of frames that currently exist. Returns true if a document has been loaded in the browser. Returns the globally unique identifier for this browser. This value is also used as the tabId for extension APIs. Returns true if the browser is currently loading. Returns true if the window is a popup window. Returns the focused frame for the browser window. Returns the frame with the specified identifier, or NULL if not found. The identifier of the frame to be get. Returns the frame with the specified name, or NULL if not found. The name of the frame to be get. Returns the identifiers of all existing frames. Returns the names of all existing frames. Returns the browser host object. This method can only be called in the browser process. Returns the main (top-level) frame for the browser window. Navigate backwards. Navigate forwards. Returns true if this object is pointing to the same handle as |that| object. Reload the current page. Stop loading the page. Execute a string of JavaScript code in main frame. The javascript code that will be executed. Execute a string of JavaScript code in main frame and get result asynchronously. The javascript code that will be executed. Register JavaScript object into Formium.external object. The name of the object will be registered. The JavaScriptValue of object type. Open developer tools (DevTools) in its own browser. The DevTools browser will remain associated with this browser. If the DevTools browser is already open then it will be focused. Initializes a new instance of the Formium class. If the browser context is ready to use. Combine subtile and main title of the window. Setup the default browser settings. If the WindowType is set to Custom, you should create your own window here to host the the browser. Fires when the host window is creating. Processes Windows messages. Processes Windows def messages. Gets the Formium is disposed. Release all resources. Release all resources. Required designer variable. Clean up any resources being used. true if managed resources should be disposed; otherwise, false. Required method for Designer support - do not modify the contents of this method with the code editor. 窗体的阴影样式 窗体的边框样式 Gets and sets the active state of the window. IsDisposed status Standard Dispose Dispose True if disposing, false otherwise 一个强类型的资源类,用于查找本地化的字符串等。 返回此类使用的缓存的 ResourceManager 实例。 重写当前线程的 CurrentUICulture 属性 重写当前线程的 CurrentUICulture 属性。 查找类似 P.O.W.E.R.E.D BY ███╗ ██╗ █████╗ ███╗ ██╗██╗ ██╗██╗ ████╗ ██║██╔══██╗████╗ ██║██║ ██║██║ ██╔██╗ ██║███████║██╔██╗ ██║██║ ██║██║ ██║╚██╗██║██╔══██║██║╚██╗██║██║ ██║██║ ██║ ╚████║██║ ██║██║ ╚████║╚██████╔╝██║ ╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚═╝ S.I.N.C.E 2016 的本地化字符串。 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。 查找 System.Drawing.Bitmap 类型的本地化资源。 查找 System.Drawing.Bitmap 类型的本地化资源。 查找类似 var Formium = Formium || {}; (function ($this) { const CMD_ATTR_PREFIX = "formium-command"; const RAISE_FUNC_NAME = "__formium_raiseHostWindowEvent"; const GLOBAL_CLICK_HANDLER_REGISTERED = "__formium_global_click_handler_registered"; let isV8Ready = false; let isDomReady = false; const readyFunctions = []; const contextReadyFunctions = []; $this._setContextReady = () => { isV8Ready = true; if (!window.hasOwnPropert [字符串的其余部分被截断]"; 的本地化字符串。 查找 System.Byte[] 类型的本地化资源。 查找 System.Drawing.Bitmap 类型的本地化资源。 查找 System.Drawing.Bitmap 类型的本地化资源。 查找 System.Drawing.Bitmap 类型的本地化资源。 查找 System.Drawing.Bitmap 类型的本地化资源。 查找 System.Drawing.Bitmap 类型的本地化资源。 The none. The get. The post. The put. The delete. The head. The options. The patch. The merge. 一个强类型的资源类,用于查找本地化的字符串等。 返回此类使用的缓存的 ResourceManager 实例。 重写当前线程的 CurrentUICulture 属性,对 使用此强类型资源类的所有资源查找执行重写。 查找类似 关闭(&C) 的本地化字符串。 查找类似 关于 NanUI 界面框架 的本地化字符串。 查找类似 正在加载 的本地化字符串。 查找类似 关闭 DevTools(&C) 的本地化字符串。 查找类似 打开 DevTools(&D) 的本地化字符串。 查找类似 {0} 需要继承IHostWindow接口。 的本地化字符串。 查找类似 {0} 需要指定返回值。 的本地化字符串。 查找类似 WinFormium 承载窗体 的本地化字符串。 查找类似 WinFormium 开发者工具箱 的本地化字符串。 查找类似 消息提示 的本地化字符串。 查找类似 需要确认 的本地化字符串。 查找类似 否 的本地化字符串。 查找类似 好的 的本地化字符串。 查找类似 是 的本地化字符串。 查找类似 关于(&A)... 的本地化字符串。 查找类似 全屏(&F) 的本地化字符串。 Browser process is starting up. Before initializing subprocesses. Cef environment is initialized Browser process is terminated. Allows application just run one instance. Gets the envrionment configurations of CEF Gets the IoC container Gets the application is running on debugging mode. Gets the type of current running instance. Gets the main process Id. Register custom ResourceHandler Gets or sets the default application name. Defauts is the product name. This is used for creating application data directory in %APPDATA%\Net Dimension\NanUI\ Gets a value indicating whether the Runtime is initialized. Gets the instance of Runtime. If the runtime is not ready, it will return null. Gets the version of Chromium Embedded Framework that is used for NanUI. Gets the startup directory of running application now. Gets the common data directoy for NanUI. Usually it's in %APPDATA%\Net Dimension\NanUI\ Gets the public CEF runtime direcroy. Usually it's in %PROGRAMDATA%\Net Dimension\NanUI\[CEF_VERSION]\ Gets the data directory of current application. Gets the default browser settings object. You can set default options with this. You can disalbe About Menu in System Command Menu here, but you must follow the LICENCE of NanUI Project at https://github.com/NetDimension/NanUI/blob/master/LICENCE Gets the default Logger implement. Run the NanUI application with settings. Run the NanUI subprocess. A simple IoC container. Initializes a new instance of the class. Creates a child container. A new container. Determines if a handler for the service/key has previously been registered. The service. The key. True if a handler is registered; false otherwise. Determines if a handler for the service/key has previously been registered. The type of the service. The key. True if a handler is registered; false otherwise. Registers the class so that it is created once, on first request, and the same instance is returned to all requestors thereafter. The service. The implementation. The key. Registers the class so that it is created once, on first request, and the same instance is returned to all requestors thereafter. The type of the implementation. The key. Registers the class so that it is created once, on first request, and the same instance is returned to all requestors thereafter. The type of the service. The type of the implementation. The key. Registers the class so that it is created once, on first request, and the same instance is returned to all requestors thereafter. The type of the service. The handler. The key. Registers an instance with the container. The service. The instance. The key. Registers an instance with the container. The type of the service. The instance. The key. Registers the class so that a new instance is created on each request. The service. The implementation. The key. Registers the class so that a new instance is created on each request. The type of the service. The key. Registers the class so that a new instance is created on each request. The type of the service. The type of the implementation. The key. Registers a custom handler for serving requests from the container. The service. The handler. The key. Registers a custom handler for serving requests from the container. The type of the service. The handler. The key. Unregisters any handlers for the service/key that have previously been registered. The service. The key. true if handler is successfully removed; otherwise, false. Unregisters any handlers for the service/key that have previously been registered. The of the service. The key. true if handler is successfully removed; otherwise, false. Requests an instance. The type of the service. The key. The instance. Requests an instance. The service. The key. The instance. Gets all instances of a particular type. The type to resolve. The resolved instances. Requests all instances of a given type. The service. All the instances or an empty enumerable if none are found. Actually does the work of creating the instance and satisfying it's constructor dependencies. The type. The build instance. Creates an instance of the type with the specified constructor arguments. The type. The constructor arguments. The created instance. Loads CEF runtime. Loads CEF runtime from specified path. This function should be called from the application entry point function to execute a secondary process. It can be used to run secondary processes from the browser client executable (default behavior) or from a separate executable specified by the CefSettings.browser_subprocess_path value. If called for the browser process (identified by no "type" command-line value) it will return immediately with a value of -1. If called for a recognized secondary process it will block until the process should exit and then return the process exit code. The |application| parameter may be empty. The |windows_sandbox_info| parameter is only used on Windows and may be NULL (see cef_sandbox_win.h for details). This function should be called on the main application thread to initialize the CEF browser process. The |application| parameter may be empty. A return value of true indicates that it succeeded and false indicates that it failed. The |windows_sandbox_info| parameter is only used on Windows and may be NULL (see cef_sandbox_win.h for details). This function should be called on the main application thread to shut down the CEF browser process before the application exits. Perform a single iteration of CEF message loop processing. This function is provided for cases where the CEF message loop must be integrated into an existing application message loop. Use of this function is not recommended for most users; use either the CefRunMessageLoop() function or CefSettings.multi_threaded_message_loop if possible. When using this function care must be taken to balance performance against excessive CPU usage. It is recommended to enable the CefSettings.external_message_pump option when using this function so that CefBrowserProcessHandler::OnScheduleMessagePumpWork() callbacks can facilitate the scheduling process. This function should only be called on the main application thread and only if CefInitialize() is called with a CefSettings.multi_threaded_message_loop value of false. This function will not block. Run the CEF message loop. Use this function instead of an application- provided message loop to get the best balance between performance and CPU usage. This function should only be called on the main application thread and only if CefInitialize() is called with a CefSettings.multi_threaded_message_loop value of false. This function will block until a quit message is received by the system. Quit the CEF message loop that was started by calling CefRunMessageLoop(). This function should only be called on the main application thread and only if CefRunMessageLoop() was used. Set to true before calling Windows APIs like TrackPopupMenu that enter a modal message loop. Set to false after exiting the modal message loop. Call during process startup to enable High-DPI support on Windows 7 or newer. Older versions of Windows should be left DPI-unaware because they do not support DirectWrite and GDI fonts are kerned very badly. CEF maintains multiple internal threads that are used for handling different types of tasks in different processes. See the cef_thread_id_t definitions in cef_types.h for more information. This function will return true if called on the specified thread. It is an error to request a thread from the wrong process. Post a task for execution on the specified thread. This function may be called on any thread. It is an error to request a thread from the wrong process. Post a task for delayed execution on the specified thread. This function may be called on any thread. It is an error to request a thread from the wrong process. Add an entry to the cross-origin access whitelist. The same-origin policy restricts how scripts hosted from different origins (scheme + domain + port) can communicate. By default, scripts can only access resources with the same origin. Scripts hosted on the HTTP and HTTPS schemes (but no other schemes) can use the "Access-Control-Allow-Origin" header to allow cross-origin requests. For example, https://source.example.com can make XMLHttpRequest requests on http://target.example.com if the http://target.example.com request returns an "Access-Control-Allow-Origin: https://source.example.com" response header. Scripts in separate frames or iframes and hosted from the same protocol and domain suffix can execute cross-origin JavaScript if both pages set the document.domain value to the same domain suffix. For example, scheme://foo.example.com and scheme://bar.example.com can communicate using JavaScript if both domains set document.domain="example.com". This method is used to allow access to origins that would otherwise violate the same-origin policy. Scripts hosted underneath the fully qualified |source_origin| URL (like http://www.example.com) will be allowed access to all resources hosted on the specified |target_protocol| and |target_domain|. If |target_domain| is non-empty and |allow_target_subdomains| if false only exact domain matches will be allowed. If |target_domain| contains a top- level domain component (like "example.com") and |allow_target_subdomains| is true sub-domain matches will be allowed. If |target_domain| is empty and |allow_target_subdomains| if true all domains and IP addresses will be allowed. This method cannot be used to bypass the restrictions on local or display isolated schemes. See the comments on CefRegisterCustomScheme for more information. This function may be called on any thread. Returns false if |source_origin| is invalid or the whitelist cannot be accessed. Remove an entry from the cross-origin access whitelist. Returns false if |source_origin| is invalid or the whitelist cannot be accessed. Remove all entries from the cross-origin access whitelist. Returns false if the whitelist cannot be accessed. Register a scheme handler factory for the specified |scheme_name| and optional |domain_name|. An empty |domain_name| value for a standard scheme will cause the factory to match all domain names. The |domain_name| value will be ignored for non-standard schemes. If |scheme_name| is a built-in scheme and no handler is returned by |factory| then the built-in scheme handler factory will be called. If |scheme_name| is a custom scheme then also implement the CefApp::OnRegisterCustomSchemes() method in all processes. This function may be called multiple times to change or remove the factory that matches the specified |scheme_name| and optional |domain_name|. Returns false if an error occurs. This function may be called on any thread in the browser process. Clear all registered scheme handler factories. Returns false on error. This function may be called on any thread in the browser process. Start tracing events on all processes. Tracing is initialized asynchronously and |callback| will be executed on the UI thread after initialization is complete. If CefBeginTracing was called previously, or if a CefEndTracingAsync call is pending, CefBeginTracing will fail and return false. |categories| is a comma-delimited list of category wildcards. A category can have an optional '-' prefix to make it an excluded category. Having both included and excluded categories in the same list is not supported. Example: "test_MyTest*" Example: "test_MyTest*,test_OtherStuff" Example: "-excluded_category1,-excluded_category2" This function must be called on the browser process UI thread. Stop tracing events on all processes. This function will fail and return false if a previous call to CefEndTracingAsync is already pending or if CefBeginTracing was not called. |tracing_file| is the path at which tracing data will be written and |callback| is the callback that will be executed once all processes have sent their trace data. If |tracing_file| is empty a new temporary file path will be used. If |callback| is empty no trace data will be written. This function must be called on the browser process UI thread. Returns the current system trace time or, if none is defined, the current high-res time. Can be used by clients to synchronize with the time information in trace events. Parse the specified |url| into its component parts. Returns false if the URL is empty or invalid. Returns the mime type for the specified file extension or an empty string if unknown. Get the extensions associated with the given mime type. This should be passed in lower case. There could be multiple extensions for a given mime type, like "html,htm" for "text/html", or "txt,text,html,..." for "text/*". Any existing elements in the provided vector will not be erased. Encodes |data| as a base64 string. Decodes the base64 encoded string |data|. The returned value will be NULL if the decoding fails. Escapes characters in |text| which are unsuitable for use as a query parameter value. Everything except alphanumerics and -_.!~*'() will be converted to "%XX". If |use_plus| is true spaces will change to "+". The result is basically the same as encodeURIComponent in Javacript. Unescapes |text| and returns the result. Unescaping consists of looking for the exact pattern "%XX" where each X is a hex digit and converting to the character with the numerical value of those digits (e.g. "i%20=%203%3b" unescapes to "i = 3;"). If |convert_to_utf8| is true this function will attempt to interpret the initial decoded result as UTF-8. If the result is convertable into UTF-8 it will be returned as converted. Otherwise the initial decoded result will be returned. The |unescape_rule| parameter supports further customization the decoding process. Parses the specified |json_string| and returns a dictionary or list representation. If JSON parsing fails this method returns NULL. Parses the specified |json_string| and returns a dictionary or list representation. If JSON parsing fails this method returns NULL and populates |error_code_out| and |error_msg_out| with an error code and a formatted error message respectively. Generates a JSON string from the specified root |node| which should be a dictionary or list value. Returns an empty string on failure. This method requires exclusive access to |node| including any underlying data. Register a new V8 extension with the specified JavaScript extension code and handler. Functions implemented by the handler are prototyped using the keyword 'native'. The calling of a native function is restricted to the scope in which the prototype of the native function is defined. This function may only be called on the render process main thread. Example JavaScript extension code: // create the 'example' global object if it doesn't already exist. if (!example) example = {}; // create the 'example.test' global object if it doesn't already exist. if (!example.test) example.test = {}; (function() { // Define the function 'example.test.myfunction'. example.test.myfunction = function() { // Call CefV8Handler::Execute() with the function name 'MyFunction' // and no arguments. native function MyFunction(); return MyFunction(); }; // Define the getter function for parameter 'example.test.myparam'. example.test.__defineGetter__('myparam', function() { // Call CefV8Handler::Execute() with the function name 'GetMyParam' // and no arguments. native function GetMyParam(); return GetMyParam(); }); // Define the setter function for parameter 'example.test.myparam'. example.test.__defineSetter__('myparam', function(b) { // Call CefV8Handler::Execute() with the function name 'SetMyParam' // and a single argument. native function SetMyParam(); if(b) SetMyParam(b); }); // Extension definitions can also contain normal JavaScript variables // and functions. var myint = 0; example.test.increment = function() { myint += 1; return myint; }; })(); Example usage in the page: // Call the function. example.test.myfunction(); // Set the parameter. example.test.myparam = value; // Get the parameter. value = example.test.myparam; // Call another function. example.test.increment(); Visit web plugin information. Can be called on any thread in the browser process. Cause the plugin list to refresh the next time it is accessed regardless of whether it has already been loaded. Can be called on any thread in the browser process. Unregister an internal plugin. This may be undone the next time CefRefreshWebPlugins() is called. Can be called on any thread in the browser process. Register a plugin crash. Can be called on any thread in the browser process but will be executed on the IO thread. Query if a plugin is unstable. Can be called on any thread in the browser process. Register the Widevine CDM plugin. The client application is responsible for downloading an appropriate platform-specific CDM binary distribution from Google, extracting the contents, and building the required directory structure on the local machine. The CefBrowserHost::StartDownload method and CefZipArchive class can be used to implement this functionality in CEF. Contact Google via https://www.widevine.com/contact.html for details on CDM download. |path| is a directory that must contain the following files: 1. manifest.json file from the CDM binary distribution (see below). 2. widevinecdm file from the CDM binary distribution (e.g. widevinecdm.dll on on Windows, libwidevinecdm.dylib on OS X, libwidevinecdm.so on Linux). If any of these files are missing or if the manifest file has incorrect contents the registration will fail and |callback| will receive a |result| value of CEF_CDM_REGISTRATION_ERROR_INCORRECT_CONTENTS. The manifest.json file must contain the following keys: A. "os": Supported OS (e.g. "mac", "win" or "linux"). B. "arch": Supported architecture (e.g. "ia32" or "x64"). C. "x-cdm-module-versions": Module API version (e.g. "4"). D. "x-cdm-interface-versions": Interface API version (e.g. "8"). E. "x-cdm-host-versions": Host API version (e.g. "8"). F. "version": CDM version (e.g. "1.4.8.903"). G. "x-cdm-codecs": List of supported codecs (e.g. "vp8,vp9.0,avc1"). A through E are used to verify compatibility with the current Chromium version. If the CDM is not compatible the registration will fail and |callback| will receive a |result| value of CEF_CDM_REGISTRATION_ERROR_INCOMPATIBLE. |callback| will be executed asynchronously once registration is complete. On Linux this function must be called before CefInitialize() and the registration cannot be changed during runtime. If registration is not supported at the time that CefRegisterWidevineCdm() is called then |callback| will receive a |result| value of CEF_CDM_REGISTRATION_ERROR_NOT_SUPPORTED. Retrieve the path associated with the specified |key|. Returns true on success. Can be called on any thread in the browser process. Launches the process specified via |command_line|. Returns true upon success. Must be called on the browser process TID_PROCESS_LAUNCHER thread. Unix-specific notes: - All file descriptors open in the parent process will be closed in the child process except for stdin, stdout, and stderr. - If the first argument on the command line does not contain a slash, PATH will be searched. (See man execvp.) Returns true if the certificate status represents an error. Crash reporting is configured using an INI-style config file named "crash_reporter.cfg". On Windows and Linux this file must be placed next to the main application executable. On macOS this file must be placed in the top-level app bundle Resources directory (e.g. "<appname>.app/Contents/Resources"). File contents are as follows: # Comments start with a hash character and must be on their own line. [Config] ProductName=<Value of the "prod" crash key; defaults to "cef"> ProductVersion=<Value of the "ver" crash key; defaults to the CEF version> AppName=<Windows only; App-specific folder name component for storing crash information; default to "CEF"> ExternalHandler=<Windows only; Name of the external handler exe to use instead of re-launching the main exe; default to empty> BrowserCrashForwardingEnabled=<macOS only; True if browser process crashes should be forwarded to the system crash reporter; default to false> ServerURL=<crash server URL; default to empty> RateLimitEnabled=<True if uploads should be rate limited; default to true> MaxUploadsPerDay=<Max uploads per 24 hours, used if rate limit is enabled; default to 5> MaxDatabaseSizeInMb=<Total crash report disk usage greater than this value will cause older reports to be deleted; default to 20> MaxDatabaseAgeInDays=<Crash reports older than this value will be deleted; default to 5> [CrashKeys] my_key1=<small|medium|large> my_key2=<small|medium|large> Config section: If "ProductName" and/or "ProductVersion" are set then the specified values will be included in the crash dump metadata. On macOS if these values are set to empty then they will be retrieved from the Info.plist file using the "CFBundleName" and "CFBundleShortVersionString" keys respectively. If "AppName" is set on Windows then crash report information (metrics, database and dumps) will be stored locally on disk under the "C:\Users\[CurrentUser]\AppData\Local\[AppName]\User Data" folder. On other platforms the CefSettings.user_data_path value will be used. If "ExternalHandler" is set on Windows then the specified exe will be launched as the crashpad-handler instead of re-launching the main process exe. The value can be an absolute path or a path relative to the main exe directory. On Linux the CefSettings.browser_subprocess_path value will be used. On macOS the existing subprocess app bundle will be used. If "BrowserCrashForwardingEnabled" is set to true on macOS then browser process crashes will be forwarded to the system crash reporter. This results in the crash UI dialog being displayed to the user and crash reports being logged under "~/Library/Logs/DiagnosticReports". Forwarding of crash reports from non-browser processes and Debug builds is always disabled. If "ServerURL" is set then crashes will be uploaded as a multi-part POST request to the specified URL. Otherwise, reports will only be stored locally on disk. If "RateLimitEnabled" is set to true then crash report uploads will be rate limited as follows: 1. If "MaxUploadsPerDay" is set to a positive value then at most the specified number of crashes will be uploaded in each 24 hour period. 2. If crash upload fails due to a network or server error then an incremental backoff delay up to a maximum of 24 hours will be applied for retries. 3. If a backoff delay is applied and "MaxUploadsPerDay" is > 1 then the "MaxUploadsPerDay" value will be reduced to 1 until the client is restarted. This helps to avoid an upload flood when the network or server error is resolved. Rate limiting is not supported on Linux. If "MaxDatabaseSizeInMb" is set to a positive value then crash report storage on disk will be limited to that size in megabytes. For example, on Windows each dump is about 600KB so a "MaxDatabaseSizeInMb" value of 20 equates to about 34 crash reports stored on disk. Not supported on Linux. If "MaxDatabaseAgeInDays" is set to a positive value then crash reports older than the specified age in days will be deleted. Not supported on Linux. CrashKeys section: A maximum of 26 crash keys of each size can be specified for use by the application. Crash key values will be truncated based on the specified size (small = 64 bytes, medium = 256 bytes, large = 1024 bytes). The value of crash keys can be set from any thread or process using the CefSetCrashKeyValue function. These key/value pairs will be sent to the crash server along with the crash dump file.+// A maximum of 26 crash keys of each size can be specified for use by the application. Crash key values will be truncated based on the specified size (small = 64 bytes, medium = 256 bytes, large = 1024 bytes). The value of crash keys can be set from any thread or process using the CefSetCrashKeyValue function. These key/value pairs will be sent to the crash server along with the crash dump file. Sets or clears a specific key-value pair from the crash metadata. Loads the existing "Certificate Revocation Lists" file that is managed by Google Chrome. This file can generally be found in Chrome's User Data directory (e.g. "C:\Users\[User]\AppData\Local\Google\Chrome\User Data\" on Windows) and is updated periodically by Chrome's component updater service. Must be called in the browser process after the context has been initialized. See https://dev.chromium.org/Home/chromium-security/crlsets for background. Implement this interface to receive accessibility notification when accessibility events have been registered. The methods of this class will be called on the UI thread. Called after renderer process sends accessibility tree changes to the browser process. Called after renderer process sends accessibility location changes to the browser process. Provides an opportunity to view and/or modify command-line arguments before processing by CEF and Chromium. The |process_type| value will be empty for the browser process. Do not keep a reference to the CefCommandLine object passed to this method. The CefSettings.command_line_args_disabled value can be used to start with an empty command-line object. Any values specified in CefSettings that equate to command-line arguments will be set before this method is called. Be cautious when using this method to modify command-line arguments for non-browser processes as this may result in undefined behavior including crashes. Provides an opportunity to register custom schemes. Do not keep a reference to the |registrar| object. This method is called on the main thread for each process and the registered schemes should be the same across all processes. Return the handler for resource bundle events. If CefSettings.pack_loading_disabled is true a handler must be returned. If no handler is returned resources will be loaded from pack files. This method is called by the browser and renderer processes on multiple threads. Return the handler for functionality specific to the browser process. This method is called on multiple threads in the browser process. Return the handler for render process events. This method is called by the render process main thread. Callback interface used for asynchronous continuation of authentication requests. Continue the authentication request. Cancel the authentication request. Callback interface used to asynchronously continue a download. Call to continue the download. Set |download_path| to the full file path for the download including the file name or leave blank to use the suggested name and the default temp directory. Set |show_dialog| to true if you do wish to show the default "Save As" dialog. Class representing a binary value. Can be used on any process and thread. Creates a new object that is not owned by any other object. The specified |data| will be copied. Returns true if this object is valid. This object may become invalid if the underlying data is owned by another object (e.g. list or dictionary) and that other object is then modified or destroyed. Do not call any other methods if this method returns false. Returns true if this object is currently owned by another object. Returns true if this object and |that| object have the same underlying data. Returns true if this object and |that| object have an equivalent underlying value but are not necessarily the same object. Returns a copy of this object. The data in this object will also be copied. Returns the data size. Read up to |buffer_size| number of bytes into |buffer|. Reading begins at the specified byte |data_offset|. Returns the number of bytes read. Class used to represent a browser window. When used in the browser process the methods of this class may be called on any thread unless otherwise indicated in the comments. When used in the render process the methods of this class may only be called on the main thread. Returns the browser host object. This method can only be called in the browser process. Returns true if the browser can navigate backwards. Navigate backwards. Returns true if the browser can navigate forwards. Navigate forwards. Returns true if the browser is currently loading. Reload the current page. Reload the current page ignoring any cached data. Stop loading the page. Returns the globally unique identifier for this browser. This value is also used as the tabId for extension APIs. Returns true if this object is pointing to the same handle as |that| object. Returns true if the window is a popup window. Returns true if a document has been loaded in the browser. Returns the main (top-level) frame for the browser window. Returns the focused frame for the browser window. Returns the frame with the specified identifier, or NULL if not found. Returns the frame with the specified name, or NULL if not found. Returns the number of frames that currently exist. Returns the identifiers of all existing frames. Returns the names of all existing frames. Class used to represent the browser process aspects of a browser window. The methods of this class can only be called in the browser process. They may be called on any thread in that process unless otherwise indicated in the comments. Create a new browser window using the window parameters specified by |windowInfo|. All values will be copied internally and the actual window will be created on the UI thread. If |request_context| is empty the global request context will be used. This method can be called on any browser process thread and will not block. The optional |extra_info| parameter provides an opportunity to specify extra information specific to the created browser that will be passed to CefRenderProcessHandler::OnBrowserCreated() in the render process. Create a new browser window using the window parameters specified by |windowInfo|. If |request_context| is empty the global request context will be used. This method can only be called on the browser process UI thread. The optional |extra_info| parameter provides an opportunity to specify extra information specific to the created browser that will be passed to CefRenderProcessHandler::OnBrowserCreated() in the render process. Returns the hosted browser object. Request that the browser close. The JavaScript 'onbeforeunload' event will be fired. If |force_close| is false the event handler, if any, will be allowed to prompt the user and the user can optionally cancel the close. If |force_close| is true the prompt will not be displayed and the close will proceed. Results in a call to CefLifeSpanHandler::DoClose() if the event handler allows the close or if |force_close| is true. See CefLifeSpanHandler::DoClose() documentation for additional usage information. Helper for closing a browser. Call this method from the top-level window close handler. Internally this calls CloseBrowser(false) if the close has not yet been initiated. This method returns false while the close is pending and true after the close has completed. See CloseBrowser() and CefLifeSpanHandler::DoClose() documentation for additional usage information. This method must be called on the browser process UI thread. Set whether the browser is focused. Retrieve the window handle for this browser. If this browser is wrapped in a CefBrowserView this method should be called on the browser process UI thread and it will return the handle for the top-level native window. Retrieve the window handle of the browser that opened this browser. Will return NULL for non-popup windows or if this browser is wrapped in a CefBrowserView. This method can be used in combination with custom handling of modal windows. Returns true if this browser is wrapped in a CefBrowserView. Returns the client for this browser. Returns the request context for this browser. Get the current zoom level. The default zoom level is 0.0. This method can only be called on the UI thread. Change the zoom level to the specified value. Specify 0.0 to reset the zoom level. If called on the UI thread the change will be applied immediately. Otherwise, the change will be applied asynchronously on the UI thread. Call to run a file chooser dialog. Only a single file chooser dialog may be pending at any given time. |mode| represents the type of dialog to display. |title| to the title to be used for the dialog and may be empty to show the default title ("Open" or "Save" depending on the mode). |default_file_path| is the path with optional directory and/or file name component that will be initially selected in the dialog. |accept_filters| are used to restrict the selectable file types and may any combination of (a) valid lower-cased MIME types (e.g. "text/*" or "image/*"), (b) individual file extensions (e.g. ".txt" or ".png"), or (c) combined description and file extension delimited using "|" and ";" (e.g. "Image Types|.png;.gif;.jpg"). |selected_accept_filter| is the 0-based index of the filter that will be selected by default. |callback| will be executed after the dialog is dismissed or immediately if another dialog is already pending. The dialog will be initiated asynchronously on the UI thread. Download the file at |url| using CefDownloadHandler. Download |image_url| and execute |callback| on completion with the images received from the renderer. If |is_favicon| is true then cookies are not sent and not accepted during download. Images with density independent pixel (DIP) sizes larger than |max_image_size| are filtered out from the image results. Versions of the image at different scale factors may be downloaded up to the maximum scale factor supported by the system. If there are no image results <= |max_image_size| then the smallest image is resized to |max_image_size| and is the only result. A |max_image_size| of 0 means unlimited. If |bypass_cache| is true then |image_url| is requested from the server even if it is present in the browser cache. Print the current browser contents. Print the current browser contents to the PDF file specified by |path| and execute |callback| on completion. The caller is responsible for deleting |path| when done. For PDF printing to work on Linux you must implement the CefPrintHandler::GetPdfPaperSize method. Search for |searchText|. |identifier| must be a unique ID and these IDs must strictly increase so that newer requests always have greater IDs than older requests. If |identifier| is zero or less than the previous ID value then it will be automatically assigned a new valid ID. |forward| indicates whether to search forward or backward within the page. |matchCase| indicates whether the search should be case-sensitive. |findNext| indicates whether this is the first request or a follow-up. The CefFindHandler instance, if any, returned via CefClient::GetFindHandler will be called to report find results. Cancel all searches that are currently going on. Open developer tools (DevTools) in its own browser. The DevTools browser will remain associated with this browser. If the DevTools browser is already open then it will be focused, in which case the |windowInfo|, |client| and |settings| parameters will be ignored. If |inspect_element_at| is non-empty then the element at the specified (x,y) location will be inspected. The |windowInfo| parameter will be ignored if this browser is wrapped in a CefBrowserView. Explicitly close the associated DevTools browser, if any. Returns true if this browser currently has an associated DevTools browser. Must be called on the browser process UI thread. Retrieve a snapshot of current navigation entries as values sent to the specified visitor. If |current_only| is true only the current navigation entry will be sent, otherwise all navigation entries will be sent. Set whether mouse cursor change is disabled. Returns true if mouse cursor change is disabled. If a misspelled word is currently selected in an editable node calling this method will replace it with the specified |word|. Add the specified |word| to the spelling dictionary. Returns true if window rendering is disabled. Notify the browser that the widget has been resized. The browser will first call CefRenderHandler::GetViewRect to get the new size and then call CefRenderHandler::OnPaint asynchronously with the updated regions. This method is only used when window rendering is disabled. Notify the browser that it has been hidden or shown. Layouting and CefRenderHandler::OnPaint notification will stop when the browser is hidden. This method is only used when window rendering is disabled. Send a notification to the browser that the screen info has changed. The browser will then call CefRenderHandler::GetScreenInfo to update the screen information with the new values. This simulates moving the webview window from one display to another, or changing the properties of the current display. This method is only used when window rendering is disabled. Invalidate the view. The browser will call CefRenderHandler::OnPaint asynchronously. This method is only used when window rendering is disabled. Issue a BeginFrame request to Chromium. Only valid when CefWindowInfo::external_begin_frame_enabled is set to true. Send a key event to the browser. Send a mouse click event to the browser. The |x| and |y| coordinates are relative to the upper-left corner of the view. Send a mouse move event to the browser. The |x| and |y| coordinates are relative to the upper-left corner of the view. Send a mouse wheel event to the browser. The |x| and |y| coordinates are relative to the upper-left corner of the view. The |deltaX| and |deltaY| values represent the movement delta in the X and Y directions respectively. In order to scroll inside select popups with window rendering disabled CefRenderHandler::GetScreenPoint should be implemented properly. Send a touch event to the browser for a windowless browser. Send a focus event to the browser. Send a capture lost event to the browser. Notify the browser that the window hosting it is about to be moved or resized. This method is only used on Windows and Linux. Returns the maximum rate in frames per second (fps) that CefRenderHandler:: OnPaint will be called for a windowless browser. The actual fps may be lower if the browser cannot generate frames at the requested rate. The minimum value is 1 and the maximum value is 60 (default 30). This method can only be called on the UI thread. Set the maximum rate in frames per second (fps) that CefRenderHandler:: OnPaint will be called for a windowless browser. The actual fps may be lower if the browser cannot generate frames at the requested rate. The minimum value is 1 and the maximum value is 60 (default 30). Can also be set at browser creation via CefBrowserSettings.windowless_frame_rate. Begins a new composition or updates the existing composition. Blink has a special node (a composition node) that allows the input method to change text without affecting other DOM nodes. |text| is the optional text that will be inserted into the composition node. |underlines| is an optional set of ranges that will be underlined in the resulting text. |replacement_range| is an optional range of the existing text that will be replaced. |selection_range| is an optional range of the resulting text that will be selected after insertion or replacement. The |replacement_range| value is only used on OS X. This method may be called multiple times as the composition changes. When the client is done making changes the composition should either be canceled or completed. To cancel the composition call ImeCancelComposition. To complete the composition call either ImeCommitText or ImeFinishComposingText. Completion is usually signaled when: A. The client receives a WM_IME_COMPOSITION message with a GCS_RESULTSTR flag (on Windows), or; B. The client receives a "commit" signal of GtkIMContext (on Linux), or; C. insertText of NSTextInput is called (on Mac). This method is only used when window rendering is disabled. Completes the existing composition by optionally inserting the specified |text| into the composition node. |replacement_range| is an optional range of the existing text that will be replaced. |relative_cursor_pos| is where the cursor will be positioned relative to the current cursor position. See comments on ImeSetComposition for usage. The |replacement_range| and |relative_cursor_pos| values are only used on OS X. This method is only used when window rendering is disabled. Completes the existing composition by applying the current composition node contents. If |keep_selection| is false the current selection, if any, will be discarded. See comments on ImeSetComposition for usage. This method is only used when window rendering is disabled. Cancels the existing composition and discards the composition node contents without applying them. See comments on ImeSetComposition for usage. This method is only used when window rendering is disabled. Call this method when the user drags the mouse into the web view (before calling DragTargetDragOver/DragTargetLeave/DragTargetDrop). |drag_data| should not contain file contents as this type of data is not allowed to be dragged into the web view. File contents can be removed using CefDragData::ResetFileContents (for example, if |drag_data| comes from CefRenderHandler::StartDragging). This method is only used when window rendering is disabled. Call this method each time the mouse is moved across the web view during a drag operation (after calling DragTargetDragEnter and before calling DragTargetDragLeave/DragTargetDrop). This method is only used when window rendering is disabled. Call this method when the user drags the mouse out of the web view (after calling DragTargetDragEnter). This method is only used when window rendering is disabled. Call this method when the user completes the drag operation by dropping the object onto the web view (after calling DragTargetDragEnter). The object being dropped is |drag_data|, given as an argument to the previous DragTargetDragEnter call. This method is only used when window rendering is disabled. Call this method when the drag operation started by a CefRenderHandler::StartDragging call has ended either in a drop or by being cancelled. |x| and |y| are mouse coordinates relative to the upper-left corner of the view. If the web view is both the drag source and the drag target then all DragTarget* methods should be called before DragSource* mthods. This method is only used when window rendering is disabled. Call this method when the drag operation started by a CefRenderHandler::StartDragging call has completed. This method may be called immediately without first calling DragSourceEndedAt to cancel a drag operation. If the web view is both the drag source and the drag target then all DragTarget* methods should be called before DragSource* mthods. This method is only used when window rendering is disabled. Returns the current visible navigation entry for this browser. This method can only be called on the UI thread. Set accessibility state for all frames. |accessibility_state| may be default, enabled or disabled. If |accessibility_state| is STATE_DEFAULT then accessibility will be disabled by default and the state may be further controlled with the "force-renderer-accessibility" and "disable-renderer-accessibility" command-line switches. If |accessibility_state| is STATE_ENABLED then accessibility will be enabled. If |accessibility_state| is STATE_DISABLED then accessibility will be completely disabled. For windowed browsers accessibility will be enabled in Complete mode (which corresponds to kAccessibilityModeComplete in Chromium). In this mode all platform accessibility objects will be created and managed by Chromium's internal implementation. The client needs only to detect the screen reader and call this method appropriately. For example, on macOS the client can handle the @"AXEnhancedUserInterface" accessibility attribute to detect VoiceOver state changes and on Windows the client can handle WM_GETOBJECT with OBJID_CLIENT to detect accessibility readers. For windowless browsers accessibility will be enabled in TreeOnly mode (which corresponds to kAccessibilityModeWebContentsOnly in Chromium). In this mode renderer accessibility is enabled, the full tree is computed, and events are passed to CefAccessibiltyHandler, but platform accessibility objects are not created. The client may implement platform accessibility objects using CefAccessibiltyHandler callbacks if desired. Enable notifications of auto resize via CefDisplayHandler::OnAutoResize. Notifications are disabled by default. |min_size| and |max_size| define the range of allowed sizes. Returns the extension hosted in this browser or NULL if no extension is hosted. See CefRequestContext::LoadExtension for details. Returns true if this browser is hosting an extension background script. Background hosts do not have a window and are not displayable. See CefRequestContext::LoadExtension for details. Set whether the browser's audio is muted. Returns true if the browser's audio is muted. This method can only be called on the UI thread. Class used to implement browser process callbacks. The methods of this class will be called on the browser process main thread unless otherwise indicated. Called on the browser process UI thread immediately after the CEF context has been initialized. Called before a child process is launched. Will be called on the browser process UI thread when launching a render process and on the browser process IO thread when launching a GPU or plugin process. Provides an opportunity to modify the child process command line. Do not keep a reference to |command_line| outside of this method. Called on the browser process IO thread after the main thread has been created for a new render process. Provides an opportunity to specify extra information that will be passed to CefRenderProcessHandler::OnRenderThreadCreated() in the render process. Do not keep a reference to |extra_info| outside of this method. Return the handler for printing on Linux. If a print handler is not provided then printing will not be supported on the Linux platform. Called from any thread when work has been scheduled for the browser process main (UI) thread. This callback is used in combination with CefSettings. external_message_pump and CefDoMessageLoopWork() in cases where the CEF message loop must be integrated into an existing application message loop (see additional comments and warnings on CefDoMessageLoopWork). This callback should schedule a CefDoMessageLoopWork() call to happen on the main (UI) thread. |delay_ms| is the requested delay in milliseconds. If |delay_ms| is <= 0 then the call should happen reasonably soon. If |delay_ms| is > 0 then the call should be scheduled to happen after the specified delay and any currently pending scheduled call should be cancelled. Generic callback interface used for asynchronous continuation. Continue processing. Cancel processing. Return the handler for context menus. If no handler is provided the default implementation will be used. Return the handler for dialogs. If no handler is provided the default implementation will be used. Return the handler for browser display state events. Return the handler for download events. If no handler is returned downloads will not be allowed. Return the handler for drag events. Return the handler for find result events. Return the handler for focus events. Return the handler for JavaScript dialogs. If no handler is provided the default implementation will be used. Return the handler for keyboard events. Return the handler for browser life span events. Return the handler for browser load status events. Return the handler for off-screen rendering events. Return the handler for browser request events. Called when a new message is received from a different process. Return true if the message was handled or false otherwise. Do not keep a reference to or attempt to access the message outside of this callback. Class used to create and/or parse command line arguments. Arguments with '--', '-' and, on Windows, '/' prefixes are considered switches. Switches will always precede any arguments without switch prefixes. Switches can optionally have a value specified using the '=' delimiter (e.g. "-switch=value"). An argument of "--" will terminate switch parsing with all subsequent tokens, regardless of prefix, being interpreted as non-switch arguments. Switch names are considered case-insensitive. This class can be used before CefInitialize() is called. Create a new CefCommandLine instance. Returns the singleton global CefCommandLine object. The returned object will be read-only. Returns true if this object is valid. Do not call any other methods if this function returns false. Returns true if the values of this object are read-only. Some APIs may expose read-only objects. Returns a writable copy of this object. Reset the command-line switches and arguments but leave the program component unchanged. Retrieve the original command line string as a vector of strings. The argv array: { program, [(--|-|/)switch[=value]]*, [--], [argument]* } Constructs and returns the represented command line string. Use this method cautiously because quoting behavior is unclear. Get the program part of the command line string (the first item). Set the program part of the command line string (the first item). Returns true if the command line has switches. Returns true if the command line contains the given switch. Returns the value associated with the given switch. If the switch has no value or isn't present this method returns the empty string. Returns the map of switch names and values. If a switch has no value an empty string is returned. Add a switch to the end of the command line. If the switch has no value pass an empty value string. Add a switch with the specified value to the end of the command line. True if there are remaining command line arguments. Get the remaining command line arguments. Add an argument to the end of the command line. Insert a command before the current command. Common for debuggers, like "valgrind" or "gdb --args". Insert an argument to the beginning of the command line. Unlike PrependWrapper this method doesn't strip argument by spaces. Generic callback interface used for asynchronous completion. Method that will be called once the task is complete. Implement this interface to handle context menu events. The methods of this class will be called on the UI thread. Called before a context menu is displayed. |params| provides information about the context menu state. |model| initially contains the default context menu. The |model| can be cleared to show no context menu or modified to show a custom menu. Do not keep references to |params| or |model| outside of this callback. Called to allow custom display of the context menu. |params| provides information about the context menu state. |model| contains the context menu model resulting from OnBeforeContextMenu. For custom display return true and execute |callback| either synchronously or asynchronously with the selected command ID. For default display return false. Do not keep references to |params| or |model| outside of this callback. Called to execute a command selected from the context menu. Return true if the command was handled or false for the default implementation. See cef_menu_id_t for the command ids that have default implementations. All user-defined command ids should be between MENU_ID_USER_FIRST and MENU_ID_USER_LAST. |params| will have the same values as what was passed to OnBeforeContextMenu(). Do not keep a reference to |params| outside of this callback. Called when the context menu is dismissed irregardless of whether the menu was empty or a command was selected. Provides information about the context menu state. The ethods of this class can only be accessed on browser process the UI thread. Returns the X coordinate of the mouse where the context menu was invoked. Coords are relative to the associated RenderView's origin. Returns the Y coordinate of the mouse where the context menu was invoked. Coords are relative to the associated RenderView's origin. Returns flags representing the type of node that the context menu was invoked on. Returns the URL of the link, if any, that encloses the node that the context menu was invoked on. Returns the link URL, if any, to be used ONLY for "copy link address". We don't validate this field in the frontend process. Returns the source URL, if any, for the element that the context menu was invoked on. Example of elements with source URLs are img, audio, and video. Returns true if the context menu was invoked on an image which has non-empty contents. Returns the title text or the alt text if the context menu was invoked on an image. Returns the URL of the top level page that the context menu was invoked on. Returns the URL of the subframe that the context menu was invoked on. Returns the character encoding of the subframe that the context menu was invoked on. Returns the type of context node that the context menu was invoked on. Returns flags representing the actions supported by the media element, if any, that the context menu was invoked on. Returns the text of the selection, if any, that the context menu was invoked on. Returns the text of the misspelled word, if any, that the context menu was invoked on. Returns true if suggestions exist, false otherwise. Fills in |suggestions| from the spell check service for the misspelled word if there is one. Returns true if the context menu was invoked on an editable node. Returns true if the context menu was invoked on an editable node where spell-check is enabled. Returns flags representing the actions supported by the editable node, if any, that the context menu was invoked on. Returns true if the context menu contains items specified by the renderer process (for example, plugin placeholder or pepper plugin menu items). Returns true if the context menu was invoked from a pepper plugin. Implement this interface to filter cookies that may be sent or received from resource requests. The methods of this class will be called on the IO thread unless otherwise indicated. Called on the IO thread before a resource request is sent. The |browser| and |frame| values represent the source of the request, and may be NULL for requests originating from service workers or CefURLRequest. |request| cannot be modified in this callback. Return true if the specified cookie can be sent with the request or false otherwise. Called on the IO thread after a resource response is received. The |browser| and |frame| values represent the source of the request, and may be NULL for requests originating from service workers or CefURLRequest. |request| cannot be modified in this callback. Return true if the specified cookie returned with the response can be saved or false otherwise. Class used for managing cookies. The methods of this class may be called on any thread unless otherwise indicated. Returns the global cookie manager. By default data will be stored at CefSettings.cache_path if specified or in memory otherwise. If |callback| is non-NULL it will be executed asnychronously on the UI thread after the manager's storage has been initialized. Using this method is equivalent to calling CefRequestContext::GetGlobalContext()->GetDefaultCookieManager(). Set the schemes supported by this manager. If |include_defaults| is true the default schemes ("http", "https", "ws" and "wss") will also be supported. Calling this method with an empty |schemes| value and |include_defaults| set to false will disable all loading and saving of cookies for this manager. If |callback| is non-NULL it will be executed asnychronously on the UI thread after the change has been applied. Must be called before any cookies are accessed. Visit all cookies on the UI thread. The returned cookies are ordered by longest path, then by earliest creation date. Returns false if cookies cannot be accessed. Visit a subset of cookies on the UI thread. The results are filtered by the given url scheme, host, domain and path. If |includeHttpOnly| is true HTTP-only cookies will also be included in the results. The returned cookies are ordered by longest path, then by earliest creation date. Returns false if cookies cannot be accessed. Sets a cookie given a valid URL and explicit user-provided cookie attributes. This function expects each attribute to be well-formed. It will check for disallowed characters (e.g. the ';' character is disallowed within the cookie value attribute) and fail without setting the cookie if such characters are found. If |callback| is non-NULL it will be executed asnychronously on the UI thread after the cookie has been set. Returns false if an invalid URL is specified or if cookies cannot be accessed. Delete all cookies that match the specified parameters. If both |url| and |cookie_name| values are specified all host and domain cookies matching both will be deleted. If only |url| is specified all host cookies (but not domain cookies) irrespective of path will be deleted. If |url| is empty all cookies for all hosts and domains will be deleted. If |callback| is non-NULL it will be executed asnychronously on the UI thread after the cookies have been deleted. Returns false if a non-empty invalid URL is specified or if cookies cannot be accessed. Cookies can alternately be deleted using the Visit*Cookies() methods. Flush the backing store (if any) to disk. If |callback| is non-NULL it will be executed asnychronously on the UI thread after the flush is complete. Returns false if cookies cannot be accessed. Interface to implement for visiting cookie values. The methods of this class will always be called on the UI thread. Method that will be called once for each cookie. |count| is the 0-based index for the current cookie. |total| is the total number of cookies. Set |deleteCookie| to true to delete the cookie currently being visited. Return false to stop visiting cookies. This method may never be called if no cookies are found. Interface to implement to be notified of asynchronous completion via CefCookieManager::DeleteCookies(). Method that will be called upon completion. |num_deleted| will be the number of cookies that were deleted. Implement this interface to handle dialog events. The methods of this class will be called on the browser process UI thread. Called to run a file chooser dialog. |mode| represents the type of dialog to display. |title| to the title to be used for the dialog and may be empty to show the default title ("Open" or "Save" depending on the mode). |default_file_path| is the path with optional directory and/or file name component that should be initially selected in the dialog. |accept_filters| are used to restrict the selectable file types and may any combination of (a) valid lower-cased MIME types (e.g. "text/*" or "image/*"), (b) individual file extensions (e.g. ".txt" or ".png"), or (c) combined description and file extension delimited using "|" and ";" (e.g. "Image Types|.png;.gif;.jpg"). |selected_accept_filter| is the 0-based index of the filter that should be selected by default. To display a custom dialog return true and execute |callback| either inline or at a later time. To display the default dialog return false. Class representing a dictionary value. Can be used on any process and thread. Creates a new object that is not owned by any other object. Returns true if this object is valid. This object may become invalid if the underlying data is owned by another object (e.g. list or dictionary) and that other object is then modified or destroyed. Do not call any other methods if this method returns false. Returns true if this object is currently owned by another object. Returns true if the values of this object are read-only. Some APIs may expose read-only objects. Returns true if this object and |that| object have the same underlying data. If true modifications to this object will also affect |that| object and vice-versa. Returns true if this object and |that| object have an equivalent underlying value but are not necessarily the same object. Returns a writable copy of this object. If |exclude_empty_children| is true any empty dictionaries or lists will be excluded from the copy. Returns the number of values. Removes all values. Returns true on success. Returns true if the current dictionary has a value for the given key. Reads all keys for this dictionary into the specified vector. Removes the value at the specified key. Returns true is the value was removed successfully. Returns the value type for the specified key. Returns the value at the specified key. For simple types the returned value will copy existing data and modifications to the value will not modify this object. For complex types (binary, dictionary and list) the returned value will reference existing data and modifications to the value will modify this object. Returns the value at the specified key as type bool. Returns the value at the specified key as type int. Returns the value at the specified key as type double. Returns the value at the specified key as type string. Returns the value at the specified key as type binary. The returned value will reference existing data. Returns the value at the specified key as type dictionary. The returned value will reference existing data and modifications to the value will modify this object. Returns the value at the specified key as type list. The returned value will reference existing data and modifications to the value will modify this object. Sets the value at the specified key. Returns true if the value was set successfully. If |value| represents simple data then the underlying data will be copied and modifications to |value| will not modify this object. If |value| represents complex data (binary, dictionary or list) then the underlying data will be referenced and modifications to |value| will modify this object. Sets the value at the specified key as type null. Returns true if the value was set successfully. Sets the value at the specified key as type bool. Returns true if the value was set successfully. Sets the value at the specified key as type int. Returns true if the value was set successfully. Sets the value at the specified key as type double. Returns true if the value was set successfully. Sets the value at the specified key as type string. Returns true if the value was set successfully. Sets the value at the specified key as type binary. Returns true if the value was set successfully. If |value| is currently owned by another object then the value will be copied and the |value| reference will not change. Otherwise, ownership will be transferred to this object and the |value| reference will be invalidated. Sets the value at the specified key as type dict. Returns true if the value was set successfully. If |value| is currently owned by another object then the value will be copied and the |value| reference will not change. Otherwise, ownership will be transferred to this object and the |value| reference will be invalidated. Sets the value at the specified key as type list. Returns true if the value was set successfully. If |value| is currently owned by another object then the value will be copied and the |value| reference will not change. Otherwise, ownership will be transferred to this object and the |value| reference will be invalidated. Implement this interface to handle events related to browser display state. The methods of this class will be called on the UI thread. Called when a frame's address has changed. Called when the page title changes. Called when the page icon changes. Called when web content in the page has toggled fullscreen mode. If |fullscreen| is true the content will automatically be sized to fill the browser content area. If |fullscreen| is false the content will automatically return to its original size and position. The client is responsible for resizing the browser if desired. Called when the browser is about to display a tooltip. |text| contains the text that will be displayed in the tooltip. To handle the display of the tooltip yourself return true. Otherwise, you can optionally modify |text| and then return false to allow the browser to display the tooltip. When window rendering is disabled the application is responsible for drawing tooltips and the return value is ignored. Called when the browser receives a status message. |value| contains the text that will be displayed in the status message. Called to display a console message. Return true to stop the message from being output to the console. Called when auto-resize is enabled via CefBrowserHost::SetAutoResizeEnabled and the contents have auto-resized. |new_size| will be the desired size in view coordinates. Return true if the resize was handled or false for default handling. Called when the overall page loading progress has changed. |progress| ranges from 0.0 to 1.0. Class used to represent a DOM document. The methods of this class should only be called on the render process main thread thread. Returns the document type. Returns the root document node. Returns the BODY node of an HTML document. Returns the HEAD node of an HTML document. Returns the title of an HTML document. Returns the document element with the specified ID value. Returns the node that currently has keyboard focus. Returns true if a portion of the document is selected. Returns the selection offset within the start node. Returns the selection offset within the end node. Returns the contents of this selection as markup. Returns the contents of this selection as text. Returns the base URL for the document. Returns a complete URL based on the document base URL and the specified partial URL. Class used to represent a DOM node. The methods of this class should only be called on the render process main thread. Returns the type for this node. Returns true if this is a text node. Returns true if this is an element node. Returns true if this is an editable node. Returns true if this is a form control element node. Returns the type of this form control element node. Returns true if this object is pointing to the same handle as |that| object. Returns the name of this node. Returns the value of this node. Set the value of this node. Returns true on success. Returns the contents of this node as markup. Returns the document associated with this node. Returns the parent node. Returns the previous sibling node. Returns the next sibling node. Returns true if this node has child nodes. Return the first child node. Returns the last child node. The following methods are valid only for element nodes. Returns the tag name of this element. Returns true if this element has attributes. Returns true if this element has an attribute named |attrName|. Returns the element attribute named |attrName|. Returns a map of all element attributes. Set the value for the element attribute named |attrName|. Returns true on success. Returns the inner text of the element. Returns the bounds of the element. Interface to implement for visiting the DOM. The methods of this class will be called on the render process main thread. Method executed for visiting the DOM. The document object passed to this method represents a snapshot of the DOM at the time this method is executed. DOM objects are only valid for the scope of this method. Do not keep references to or attempt to access any DOM objects outside the scope of this method. Class used to handle file downloads. The methods of this class will called on the browser process UI thread. Called before a download begins. |suggested_name| is the suggested name for the download file. By default the download will be canceled. Execute |callback| either asynchronously or in this method to continue the download if desired. Do not keep a reference to |download_item| outside of this method. Called when a download's status or progress information has been updated. This may be called multiple times before and after OnBeforeDownload(). Execute |callback| either asynchronously or in this method to cancel the download if desired. Do not keep a reference to |download_item| outside of this method. Callback interface for CefBrowserHost::DownloadImage. The methods of this class will be called on the browser process UI thread. Method that will be executed when the image download has completed. |image_url| is the URL that was downloaded and |http_status_code| is the resulting HTTP status code. |image| is the resulting image, possibly at multiple scale factors, or empty if the download failed. Class used to represent a download item. Returns true if this object is valid. Do not call any other methods if this function returns false. Returns true if the download is in progress. Returns true if the download is complete. Returns true if the download has been canceled or interrupted. Returns a simple speed estimate in bytes/s. Returns the rough percent complete or -1 if the receive total size is unknown. Returns the total number of bytes. Returns the number of received bytes. Returns the time that the download started. Returns the time that the download ended. Returns the full path to the downloaded or downloading file. Returns the unique identifier for this download. Returns the URL. Returns the original URL before any redirections. Returns the suggested file name. Returns the content disposition. Returns the mime type. Callback interface used to asynchronously cancel a download. Call to cancel the download. Call to pause the download. Call to resume the download. Class used to represent drag data. The methods of this class may be called on any thread. Create a new CefDragData object. Returns a copy of the current object. Returns true if this object is read-only. Returns true if the drag data is a link. Returns true if the drag data is a text or html fragment. Returns true if the drag data is a file. Return the link URL that is being dragged. Return the title associated with the link being dragged. Return the metadata, if any, associated with the link being dragged. Return the plain text fragment that is being dragged. Return the text/html fragment that is being dragged. Return the base URL that the fragment came from. This value is used for resolving relative URLs and may be empty. Return the name of the file being dragged out of the browser window. Write the contents of the file being dragged out of the web view into |writer|. Returns the number of bytes sent to |writer|. If |writer| is NULL this method will return the size of the file contents in bytes. Call GetFileName() to get a suggested name for the file. Retrieve the list of file names that are being dragged into the browser window. Set the link URL that is being dragged. Set the title associated with the link being dragged. Set the metadata associated with the link being dragged. Set the plain text fragment that is being dragged. Set the text/html fragment that is being dragged. Set the base URL that the fragment came from. Reset the file contents. You should do this before calling CefBrowserHost::DragTargetDragEnter as the web view does not allow us to drag in this kind of data. Add a file that is being dragged into the webview. Get the image representation of drag data. May return NULL if no image representation is available. Get the image hotspot (drag start location relative to image dimensions). Returns true if an image representation of drag data is available. Implement this interface to handle events related to dragging. The methods of this class will be called on the UI thread. Called when an external drag event enters the browser window. |dragData| contains the drag event data and |mask| represents the type of drag operation. Return false for default drag handling behavior or true to cancel the drag event. Called whenever draggable regions for the browser window change. These can be specified using the '-webkit-app-region: drag/no-drag' CSS-property. If draggable regions are never defined in a document this method will also never be called. If the last draggable region is removed from a document this method will be called with an empty vector. Implement this interface to receive notification when tracing has completed. The methods of this class will be called on the browser process UI thread. Called after all processes have sent their trace data. |tracing_file| is the path at which tracing data was written. The client is responsible for deleting |tracing_file|. Object representing an extension. Methods may be called on any thread unless otherwise indicated. Returns the unique extension identifier. This is calculated based on the extension public key, if available, or on the extension path. See https://developer.chrome.com/extensions/manifest/key for details. Returns the absolute path to the extension directory on disk. This value will be prefixed with PK_DIR_RESOURCES if a relative path was passed to CefRequestContext::LoadExtension. Returns the extension manifest contents as a CefDictionaryValue object. See https://developer.chrome.com/extensions/manifest for details. Returns true if this object is the same extension as |that| object. Extensions are considered the same if identifier, path and loader context match. Returns the handler for this extension. Will return NULL for internal extensions or if no handler was passed to CefRequestContext::LoadExtension. Returns the request context that loaded this extension. Will return NULL for internal extensions or if the extension has been unloaded. See the CefRequestContext::LoadExtension documentation for more information about loader contexts. Must be called on the browser process UI thread. Returns true if this extension is currently loaded. Must be called on the browser process UI thread. Unload this extension if it is not an internal extension and is currently loaded. Will result in a call to CefExtensionHandler::OnExtensionUnloaded on success. Implement this interface to handle events related to browser extensions. The methods of this class will be called on the UI thread. See CefRequestContext::LoadExtension for information about extension loading. Called if the CefRequestContext::LoadExtension request fails. |result| will be the error code. Called if the CefRequestContext::LoadExtension request succeeds. |extension| is the loaded extension. Called after the CefExtension::Unload request has completed. Called when an extension needs a browser to host a background script specified via the "background" manifest key. The browser will have no visible window and cannot be displayed. |extension| is the extension that is loading the background script. |url| is an internally generated reference to an HTML page that will be used to load the background script via a <script> src attribute. To allow creation of the browser optionally modify |client| and |settings| and return false. To cancel creation of the browser (and consequently cancel load of the background script) return true. Successful creation will be indicated by a call to CefLifeSpanHandler::OnAfterCreated, and CefBrowserHost::IsBackgroundHost will return true for the resulting browser. See https://developer.chrome.com/extensions/event_pages for more information about extension background script usage. Called when an extension API (e.g. chrome.tabs.create) requests creation of a new browser. |extension| and |browser| are the source of the API call. |active_browser| may optionally be specified via the windowId property or returned via the GetActiveBrowser() callback and provides the default |client| and |settings| values for the new browser. |index| is the position value optionally specified via the index property. |url| is the URL that will be loaded in the browser. |active| is true if the new browser should be active when opened. To allow creation of the browser optionally modify |windowInfo|, |client| and |settings| and return false. To cancel creation of the browser return true. Successful creation will be indicated by a call to CefLifeSpanHandler::OnAfterCreated. Any modifications to |windowInfo| will be ignored if |active_browser| is wrapped in a CefBrowserView. Called when no tabId is specified to an extension API call that accepts a tabId parameter (e.g. chrome.tabs.*). |extension| and |browser| are the source of the API call. Return the browser that will be acted on by the API call or return NULL to act on |browser|. The returned browser must share the same CefRequestContext as |browser|. Incognito browsers should not be considered unless the source extension has incognito access enabled, in which case |include_incognito| will be true. Called when the tabId associated with |target_browser| is specified to an extension API call that accepts a tabId parameter (e.g. chrome.tabs.*). |extension| and |browser| are the source of the API call. Return true to allow access of false to deny access. Access to incognito browsers should not be allowed unless the source extension has incognito access enabled, in which case |include_incognito| will be true. Called to retrieve an extension resource that would normally be loaded from disk (e.g. if a file parameter is specified to chrome.tabs.executeScript). |extension| and |browser| are the source of the resource request. |file| is the requested relative file path. To handle the resource request return true and execute |callback| either synchronously or asynchronously. For the default behavior which reads the resource from the extension directory on disk return false. Localization substitutions will not be applied to resources handled via this method. Callback interface for asynchronous continuation of file dialog requests. Continue the file selection. |selected_accept_filter| should be the 0-based index of the value selected from the accept filters array passed to CefDialogHandler::OnFileDialog. |file_paths| should be a single value or a list of values depending on the dialog mode. An empty |file_paths| value is treated the same as calling Cancel(). Cancel the file selection. Implement this interface to handle events related to find results. The methods of this class will be called on the UI thread. Called to report find results returned by CefBrowserHost::Find(). |identifer| is the identifier passed to Find(), |count| is the number of matches currently identified, |selectionRect| is the location of where the match was found (in window coordinates), |activeMatchOrdinal| is the current position in the search results, and |finalUpdate| is true if this is the last find notification. Implement this interface to handle events related to focus. The methods of this class will be called on the UI thread. Called when the browser component is about to loose focus. For instance, if focus was on the last HTML element and the user pressed the TAB key. |next| will be true if the browser is giving focus to the next component and false if the browser is giving focus to the previous component. Called when the browser component is requesting focus. |source| indicates where the focus request is originating from. Return false to allow the focus to be set or true to cancel setting the focus. Called when the browser component has received focus. Class used to represent a frame in the browser window. When used in the browser process the methods of this class may be called on any thread unless otherwise indicated in the comments. When used in the render process the methods of this class may only be called on the main thread. True if this object is currently attached to a valid frame. Execute undo in this frame. Execute redo in this frame. Execute cut in this frame. Execute copy in this frame. Execute paste in this frame. Execute delete in this frame. Execute select all in this frame. Save this frame's HTML source to a temporary file and open it in the default text viewing application. This method can only be called from the browser process. Retrieve this frame's HTML source as a string sent to the specified visitor. Retrieve this frame's display text as a string sent to the specified visitor. Load the request represented by the |request| object. WARNING: This method will fail with "bad IPC message" reason INVALID_INITIATOR_ORIGIN (213) unless you first navigate to the request origin using some other mechanism (LoadURL, link click, etc). Load the specified |url|. Execute a string of JavaScript code in this frame. The |script_url| parameter is the URL where the script in question can be found, if any. The renderer may request this URL to show the developer the source of the error. The |start_line| parameter is the base line number to use for error reporting. Returns true if this is the main (top-level) frame. Returns true if this is the focused frame. Returns the name for this frame. If the frame has an assigned name (for example, set via the iframe "name" attribute) then that value will be returned. Otherwise a unique name will be constructed based on the frame parent hierarchy. The main (top-level) frame will always have an empty name value. Returns the globally unique identifier for this frame or < 0 if the underlying frame does not yet exist. Returns the parent of this frame or NULL if this is the main (top-level) frame. Returns the URL currently loaded in this frame. Returns the browser that this frame belongs to. Get the V8 context associated with the frame. This method can only be called from the render process. Visit the DOM document. This method can only be called from the render process. Create a new URL request that will be treated as originating from this frame and the associated browser. This request may be intercepted by the client via CefResourceRequestHandler or CefSchemeHandlerFactory. Use CefURLRequest::Create instead if you do not want the request to have this association, in which case it may be handled differently (see documentation on that method). Requests may originate from both the browser process and the render process. For requests originating from the browser process: - POST data may only contain a single element of type PDE_TYPE_FILE or PDE_TYPE_BYTES. For requests originating from the render process: - POST data may only contain a single element of type PDE_TYPE_BYTES. - If the response contains Content-Disposition or Mime-Type header values that would not normally be rendered then the response may receive special handling inside the browser (for example, via the file download code path instead of the URL request code path). The |request| object will be marked as read-only after calling this method. Send a message to the specified |target_process|. Message delivery is not guaranteed in all cases (for example, if the browser is closing, navigating, or if the target process crashes). Send an ACK message back from the target process if confirmation is required. Callback interface used for asynchronous continuation of CefExtensionHandler::GetExtensionResource. Continue the request. Read the resource contents from |stream|. Cancel the request. Container for a single image represented at different scale factors. All image representations should be the same size in density independent pixel (DIP) units. For example, if the image at scale factor 1.0 is 100x100 pixels then the image at scale factor 2.0 should be 200x200 pixels -- both images will display with a DIP size of 100x100 units. The methods of this class can be called on any browser process thread. Create a new CefImage. It will initially be empty. Use the Add*() methods to add representations at different scale factors. Returns true if this Image is empty. Returns true if this Image and |that| Image share the same underlying storage. Will also return true if both images are empty. Add a bitmap image representation for |scale_factor|. Only 32-bit RGBA/BGRA formats are supported. |pixel_width| and |pixel_height| are the bitmap representation size in pixel coordinates. |pixel_data| is the array of pixel data and should be |pixel_width| x |pixel_height| x 4 bytes in size. |color_type| and |alpha_type| values specify the pixel format. Add a PNG image representation for |scale_factor|. |png_data| is the image data of size |png_data_size|. Any alpha transparency in the PNG data will be maintained. Create a JPEG image representation for |scale_factor|. |jpeg_data| is the image data of size |jpeg_data_size|. The JPEG format does not support transparency so the alpha byte will be set to 0xFF for all pixels. Returns the image width in density independent pixel (DIP) units. Returns the image height in density independent pixel (DIP) units. Returns true if this image contains a representation for |scale_factor|. Removes the representation for |scale_factor|. Returns true on success. Returns information for the representation that most closely matches |scale_factor|. |actual_scale_factor| is the actual scale factor for the representation. |pixel_width| and |pixel_height| are the representation size in pixel coordinates. Returns true on success. Returns the bitmap representation that most closely matches |scale_factor|. Only 32-bit RGBA/BGRA formats are supported. |color_type| and |alpha_type| values specify the desired output pixel format. |pixel_width| and |pixel_height| are the output representation size in pixel coordinates. Returns a CefBinaryValue containing the pixel data on success or NULL on failure. Returns the PNG representation that most closely matches |scale_factor|. If |with_transparency| is true any alpha transparency in the image will be represented in the resulting PNG data. |pixel_width| and |pixel_height| are the output representation size in pixel coordinates. Returns a CefBinaryValue containing the PNG image data on success or NULL on failure. Returns the JPEG representation that most closely matches |scale_factor|. |quality| determines the compression level with 0 == lowest and 100 == highest. The JPEG format does not support alpha transparency and the alpha channel, if any, will be discarded. |pixel_width| and |pixel_height| are the output representation size in pixel coordinates. Returns a CefBinaryValue containing the JPEG image data on success or NULL on failure. Callback interface used for asynchronous continuation of JavaScript dialog requests. Continue the JS dialog request. Set |success| to true if the OK button was pressed. The |user_input| value should be specified for prompt dialogs. Implement this interface to handle events related to JavaScript dialogs. The methods of this class will be called on the UI thread. Called to run a JavaScript dialog. If |origin_url| is non-empty it can be passed to the CefFormatUrlForSecurityDisplay function to retrieve a secure and user-friendly display string. The |default_prompt_text| value will be specified for prompt dialogs only. Set |suppress_message| to true and return false to suppress the message (suppressing messages is preferable to immediately executing the callback as this is used to detect presumably malicious behavior like spamming alert messages in onbeforeunload). Set |suppress_message| to false and return false to use the default implementation (the default implementation will show one modal dialog at a time and suppress any additional dialog requests until the displayed dialog is dismissed). Return true if the application will use a custom dialog or if the callback has been executed immediately. Custom dialogs may be either modal or modeless. If a custom dialog is used the application must execute |callback| once the custom dialog is dismissed. Called to run a dialog asking the user if they want to leave a page. Return false to use the default dialog implementation. Return true if the application will use a custom dialog or if the callback has been executed immediately. Custom dialogs may be either modal or modeless. If a custom dialog is used the application must execute |callback| once the custom dialog is dismissed. Called to cancel any pending dialogs and reset any saved dialog state. Will be called due to events like page navigation irregardless of whether any dialogs are currently pending. Called when the default implementation dialog is closed. Implement this interface to handle events related to keyboard input. The methods of this class will be called on the UI thread. Called before a keyboard event is sent to the renderer. |event| contains information about the keyboard event. |os_event| is the operating system event message, if any. Return true if the event was handled or false otherwise. If the event will be handled in OnKeyEvent() as a keyboard shortcut set |is_keyboard_shortcut| to true and return false. Called after the renderer and JavaScript in the page has had a chance to handle the event. |event| contains information about the keyboard event. |os_event| is the operating system event message, if any. Return true if the keyboard event was handled or false otherwise. Implement this interface to handle events related to browser life span. The methods of this class will be called on the UI thread unless otherwise indicated. Called on the UI thread before a new popup browser is created. The |browser| and |frame| values represent the source of the popup request. The |target_url| and |target_frame_name| values indicate where the popup browser should navigate and may be empty if not specified with the request. The |target_disposition| value indicates where the user intended to open the popup (e.g. current tab, new tab, etc). The |user_gesture| value will be true if the popup was opened via explicit user gesture (e.g. clicking a link) or false if the popup opened automatically (e.g. via the DomContentLoaded event). The |popupFeatures| structure contains additional information about the requested popup window. To allow creation of the popup browser optionally modify |windowInfo|, |client|, |settings| and |no_javascript_access| and return false. To cancel creation of the popup browser return true. The |client| and |settings| values will default to the source browser's values. If the |no_javascript_access| value is set to false the new browser will not be scriptable and may not be hosted in the same renderer process as the source browser. Any modifications to |windowInfo| will be ignored if the parent browser is wrapped in a CefBrowserView. Popup browser creation will be canceled if the parent browser is destroyed before the popup browser creation completes (indicated by a call to OnAfterCreated for the popup browser). The |extra_info| parameter provides an opportunity to specify extra information specific to the created popup browser that will be passed to CefRenderProcessHandler::OnBrowserCreated() in the render process. Called after a new browser is created. This callback will be the first notification that references |browser|. Called when a browser has recieved a request to close. This may result directly from a call to CefBrowserHost::*CloseBrowser() or indirectly if the browser is parented to a top-level window created by CEF and the user attempts to close that window (by clicking the 'X', for example). The DoClose() method will be called after the JavaScript 'onunload' event has been fired. An application should handle top-level owner window close notifications by calling CefBrowserHost::TryCloseBrowser() or CefBrowserHost::CloseBrowser(false) instead of allowing the window to close immediately (see the examples below). This gives CEF an opportunity to process the 'onbeforeunload' event and optionally cancel the close before DoClose() is called. When windowed rendering is enabled CEF will internally create a window or view to host the browser. In that case returning false from DoClose() will send the standard close notification to the browser's top-level owner window (e.g. WM_CLOSE on Windows, performClose: on OS X, "delete_event" on Linux or CefWindowDelegate::CanClose() callback from Views). If the browser's host window/view has already been destroyed (via view hierarchy tear-down, for example) then DoClose() will not be called for that browser since is no longer possible to cancel the close. When windowed rendering is disabled returning false from DoClose() will cause the browser object to be destroyed immediately. If the browser's top-level owner window requires a non-standard close notification then send that notification from DoClose() and return true. The CefLifeSpanHandler::OnBeforeClose() method will be called after DoClose() (if DoClose() is called) and immediately before the browser object is destroyed. The application should only exit after OnBeforeClose() has been called for all existing browsers. The below examples describe what should happen during window close when the browser is parented to an application-provided top-level window. Example 1: Using CefBrowserHost::TryCloseBrowser(). This is recommended for clients using standard close handling and windows created on the browser process UI thread. 1. User clicks the window close button which sends a close notification to the application's top-level window. 2. Application's top-level window receives the close notification and calls TryCloseBrowser() (which internally calls CloseBrowser(false)). TryCloseBrowser() returns false so the client cancels the window close. 3. JavaScript 'onbeforeunload' handler executes and shows the close confirmation dialog (which can be overridden via CefJSDialogHandler::OnBeforeUnloadDialog()). 4. User approves the close. 5. JavaScript 'onunload' handler executes. 6. CEF sends a close notification to the application's top-level window (because DoClose() returned false by default). 7. Application's top-level window receives the close notification and calls TryCloseBrowser(). TryCloseBrowser() returns true so the client allows the window close. 8. Application's top-level window is destroyed. 9. Application's OnBeforeClose() handler is called and the browser object is destroyed. 10. Application exits by calling CefQuitMessageLoop() if no other browsers exist. Example 2: Using CefBrowserHost::CloseBrowser(false) and implementing the DoClose() callback. This is recommended for clients using non-standard close handling or windows that were not created on the browser process UI thread. 1. User clicks the window close button which sends a close notification to the application's top-level window. 2. Application's top-level window receives the close notification and: A. Calls CefBrowserHost::CloseBrowser(false). B. Cancels the window close. 3. JavaScript 'onbeforeunload' handler executes and shows the close confirmation dialog (which can be overridden via CefJSDialogHandler::OnBeforeUnloadDialog()). 4. User approves the close. 5. JavaScript 'onunload' handler executes. 6. Application's DoClose() handler is called. Application will: A. Set a flag to indicate that the next close attempt will be allowed. B. Return false. 7. CEF sends an close notification to the application's top-level window. 8. Application's top-level window receives the close notification and allows the window to close based on the flag from #6B. 9. Application's top-level window is destroyed. 10. Application's OnBeforeClose() handler is called and the browser object is destroyed. 11. Application exits by calling CefQuitMessageLoop() if no other browsers exist. Called just before a browser is destroyed. Release all references to the browser object and do not attempt to execute any methods on the browser object (other than GetIdentifier or IsSame) after this callback returns. This callback will be the last notification that references |browser| on the UI thread. Any in-progress network requests associated with |browser| will be aborted when the browser is destroyed, and CefResourceRequestHandler callbacks related to those requests may still arrive on the IO thread after this method is called. See DoClose() documentation for additional usage information. Class representing a list value. Can be used on any process and thread. Creates a new object that is not owned by any other object. Returns true if this object is valid. This object may become invalid if the underlying data is owned by another object (e.g. list or dictionary) and that other object is then modified or destroyed. Do not call any other methods if this method returns false. Returns true if this object is currently owned by another object. Returns true if the values of this object are read-only. Some APIs may expose read-only objects. Returns true if this object and |that| object have the same underlying data. If true modifications to this object will also affect |that| object and vice-versa. Returns true if this object and |that| object have an equivalent underlying value but are not necessarily the same object. Returns a writable copy of this object. Sets the number of values. If the number of values is expanded all new value slots will default to type null. Returns true on success. Returns the number of values. Removes all values. Returns true on success. Removes the value at the specified index. Returns the value type at the specified index. Returns the value at the specified index. For simple types the returned value will copy existing data and modifications to the value will not modify this object. For complex types (binary, dictionary and list) the returned value will reference existing data and modifications to the value will modify this object. Returns the value at the specified index as type bool. Returns the value at the specified index as type int. Returns the value at the specified index as type double. Returns the value at the specified index as type string. Returns the value at the specified index as type binary. The returned value will reference existing data. Returns the value at the specified index as type dictionary. The returned value will reference existing data and modifications to the value will modify this object. Returns the value at the specified index as type list. The returned value will reference existing data and modifications to the value will modify this object. Sets the value at the specified index. Returns true if the value was set successfully. If |value| represents simple data then the underlying data will be copied and modifications to |value| will not modify this object. If |value| represents complex data (binary, dictionary or list) then the underlying data will be referenced and modifications to |value| will modify this object. Sets the value at the specified index as type null. Returns true if the value was set successfully. Sets the value at the specified index as type bool. Returns true if the value was set successfully. Sets the value at the specified index as type int. Returns true if the value was set successfully. Sets the value at the specified index as type double. Returns true if the value was set successfully. Sets the value at the specified index as type string. Returns true if the value was set successfully. Sets the value at the specified index as type binary. Returns true if the value was set successfully. If |value| is currently owned by another object then the value will be copied and the |value| reference will not change. Otherwise, ownership will be transferred to this object and the |value| reference will be invalidated. Sets the value at the specified index as type dict. Returns true if the value was set successfully. If |value| is currently owned by another object then the value will be copied and the |value| reference will not change. Otherwise, ownership will be transferred to this object and the |value| reference will be invalidated. Sets the value at the specified index as type list. Returns true if the value was set successfully. If |value| is currently owned by another object then the value will be copied and the |value| reference will not change. Otherwise, ownership will be transferred to this object and the |value| reference will be invalidated. Implement this interface to handle events related to browser load status. The methods of this class will be called on the browser process UI thread or render process main thread (TID_RENDERER). Called when the loading state has changed. This callback will be executed twice -- once when loading is initiated either programmatically or by user action, and once when loading is terminated due to completion, cancellation of failure. It will be called before any calls to OnLoadStart and after all calls to OnLoadError and/or OnLoadEnd. Called after a navigation has been committed and before the browser begins loading contents in the frame. The |frame| value will never be empty -- call the IsMain() method to check if this frame is the main frame. |transition_type| provides information about the source of the navigation and an accurate value is only available in the browser process. Multiple frames may be loading at the same time. Sub-frames may start or continue loading after the main frame load has ended. This method will not be called for same page navigations (fragments, history state, etc.) or for navigations that fail or are canceled before commit. For notification of overall browser load status use OnLoadingStateChange instead. Called when the browser is done loading a frame. The |frame| value will never be empty -- call the IsMain() method to check if this frame is the main frame. Multiple frames may be loading at the same time. Sub-frames may start or continue loading after the main frame load has ended. This method will not be called for same page navigations (fragments, history state, etc.) or for navigations that fail or are canceled before commit. For notification of overall browser load status use OnLoadingStateChange instead. Called when a navigation fails or is canceled. This method may be called by itself if before commit or in combination with OnLoadStart/OnLoadEnd if after commit. |errorCode| is the error code number, |errorText| is the error text and |failedUrl| is the URL that failed to load. See net\base\net_error_list.h for complete descriptions of the error codes. Implemented by the client to observe MediaRouter events and registered via CefMediaRouter::AddObserver. The methods of this class will be called on the browser process UI thread. The list of available media sinks has changed or CefMediaRouter::NotifyCurrentSinks was called. The list of available media routes has changed or CefMediaRouter::NotifyCurrentRoutes was called. The connection state of |route| has changed. A message was recieved over |route|. |message| is only valid for the scope of this callback and should be copied if necessary. Represents the route between a media source and sink. Instances of this object are created via CefMediaRouter::CreateRoute and retrieved via CefMediaObserver::OnRoutes. Contains the status and metadata of a routing operation. The methods of this class may be called on any browser process thread unless otherwise indicated. Returns the ID for this route. Returns the source associated with this route. Returns the sink associated with this route. Send a message over this route. |message| will be copied if necessary. Terminate this route. Will result in an asynchronous call to CefMediaObserver::OnRoutes on all registered observers. Callback interface for CefMediaRouter::CreateRoute. The methods of this class will be called on the browser process UI thread. Method that will be executed when the route creation has finished. |result| will be CEF_MRCR_OK if the route creation succeeded. |error| will be a description of the error if the route creation failed. |route| is the resulting route, or empty if the route creation failed. Supports discovery of and communication with media devices on the local network via the Cast and DIAL protocols. The methods of this class may be called on any browser process thread unless otherwise indicated. Returns the MediaRouter object associated with the global request context. Equivalent to calling CefRequestContext::GetGlobalContext()->GetMediaRouter(). Add an observer for MediaRouter events. The observer will remain registered until the returned Registration object is destroyed. Returns a MediaSource object for the specified media source URN. Supported URN schemes include "cast:" and "dial:", and will be already known by the client application (e.g. "cast:<appId>?clientId=<clientId>"). Trigger an asynchronous call to CefMediaObserver::OnSinks on all registered observers. Create a new route between |source| and |sink|. Source and sink must be valid, compatible (as reported by CefMediaSink::IsCompatibleWith), and a route between them must not already exist. |callback| will be executed on success or failure. If route creation succeeds it will also trigger an asynchronous call to CefMediaObserver::OnRoutes on all registered observers. Trigger an asynchronous call to CefMediaObserver::OnRoutes on all registered observers. Represents a sink to which media can be routed. Instances of this object are retrieved via CefMediaObserver::OnSinks. The methods of this class may be called on any browser process thread unless otherwise indicated. Returns the ID for this sink. Returns true if this sink is valid. Returns the name of this sink. Returns the description of this sink. Returns true if this sink accepts content via Cast. Returns true if this sink accepts content via DIAL. Returns true if this sink is compatible with |source|. Represents a source from which media can be routed. Instances of this object are retrieved via CefMediaRouter::GetSource. The methods of this class may be called on any browser process thread unless otherwise indicated. Returns the ID (media source URN or URL) for this source. Returns true if this source is valid. Returns true if this source outputs its content via Cast. Returns true if this source outputs its content via DIAL. Supports creation and modification of menus. See cef_menu_id_t for the command ids that have default implementations. All user-defined command ids should be between MENU_ID_USER_FIRST and MENU_ID_USER_LAST. The methods of this class can only be accessed on the browser process the UI thread. Create a new MenuModel with the specified |delegate|. Returns true if this menu is a submenu. Clears the menu. Returns true on success. Returns the number of items in this menu. Add a separator to the menu. Returns true on success. Add an item to the menu. Returns true on success. Add a check item to the menu. Returns true on success. Add a radio item to the menu. Only a single item with the specified |group_id| can be checked at a time. Returns true on success. Add a sub-menu to the menu. The new sub-menu is returned. Insert a separator in the menu at the specified |index|. Returns true on success. Insert an item in the menu at the specified |index|. Returns true on success. Insert a check item in the menu at the specified |index|. Returns true on success. Insert a radio item in the menu at the specified |index|. Only a single item with the specified |group_id| can be checked at a time. Returns true on success. Insert a sub-menu in the menu at the specified |index|. The new sub-menu is returned. Removes the item with the specified |commandId|. Returns true on success. Removes the item at the specified |index|. Returns true on success. Returns the index associated with the specified |commandId| or -1 if not found due to the command id not existing in the menu. Returns the command id at the specified |index| or -1 if not found due to invalid range or the index being a separator. Sets the command id at the specified |index|. Returns true on success. Returns the label for the specified |commandId| or empty if not found. Returns the label at the specified |index| or empty if not found due to invalid range or the index being a separator. Sets the label for the specified |commandId|. Returns true on success. Set the label at the specified |index|. Returns true on success. Returns the item type for the specified |commandId|. Returns the item type at the specified |index|. Returns the group id for the specified |commandId| or -1 if invalid. Returns the group id at the specified |index| or -1 if invalid. Sets the group id for the specified |commandId|. Returns true on success. Sets the group id at the specified |index|. Returns true on success. Returns the submenu for the specified |commandId| or empty if invalid. Returns the submenu at the specified |index| or empty if invalid. Returns true if the specified |commandId| is visible. Returns true if the specified |index| is visible. Change the visibility of the specified |commandId|. Returns true on success. Change the visibility at the specified |index|. Returns true on success. Returns true if the specified |commandId| is enabled. Returns true if the specified |index| is enabled. Change the enabled status of the specified |commandId|. Returns true on success. Change the enabled status at the specified |index|. Returns true on success. Returns true if the specified |commandId| is checked. Only applies to check and radio items. Returns true if the specified |index| is checked. Only applies to check and radio items. Check the specified |commandId|. Only applies to check and radio items. Returns true on success. Check the specified |index|. Only applies to check and radio items. Returns true on success. Returns true if the specified |commandId| has a keyboard accelerator assigned. Returns true if the specified |index| has a keyboard accelerator assigned. Set the keyboard accelerator for the specified |commandId|. |key_code| can be any virtual key or character value. Returns true on success. Set the keyboard accelerator at the specified |index|. |key_code| can be any virtual key or character value. Returns true on success. Remove the keyboard accelerator for the specified |commandId|. Returns true on success. Remove the keyboard accelerator at the specified |index|. Returns true on success. Retrieves the keyboard accelerator for the specified |commandId|. Returns true on success. Retrieves the keyboard accelerator for the specified |index|. Returns true on success. Set the explicit color for |command_id| and |color_type| to |color|. Specify a |color| value of 0 to remove the explicit color. If no explicit color or default color is set for |color_type| then the system color will be used. Returns true on success. Set the explicit color for |command_id| and |index| to |color|. Specify a |color| value of 0 to remove the explicit color. Specify an |index| value of -1 to set the default color for items that do not have an explicit color set. If no explicit color or default color is set for |color_type| then the system color will be used. Returns true on success. Returns in |color| the color that was explicitly set for |command_id| and |color_type|. If a color was not set then 0 will be returned in |color|. Returns true on success. Returns in |color| the color that was explicitly set for |command_id| and |color_type|. Specify an |index| value of -1 to return the default color in |color|. If a color was not set then 0 will be returned in |color|. Returns true on success. Sets the font list for the specified |command_id|. If |font_list| is empty the system font will be used. Returns true on success. The format is "<FONT_FAMILY_LIST>,[STYLES] <SIZE>", where: - FONT_FAMILY_LIST is a comma-separated list of font family names, - STYLES is an optional space-separated list of style names (case-sensitive "Bold" and "Italic" are supported), and - SIZE is an integer font size in pixels with the suffix "px". Here are examples of valid font description strings: - "Arial, Helvetica, Bold Italic 14px" - "Arial, 14px" Sets the font list for the specified |index|. Specify an |index| value of -1 to set the default font. If |font_list| is empty the system font will be used. Returns true on success. The format is "<FONT_FAMILY_LIST>,[STYLES] <SIZE>", where: - FONT_FAMILY_LIST is a comma-separated list of font family names, - STYLES is an optional space-separated list of style names (case-sensitive "Bold" and "Italic" are supported), and - SIZE is an integer font size in pixels with the suffix "px". Here are examples of valid font description strings: - "Arial, Helvetica, Bold Italic 14px" - "Arial, 14px" Implement this interface to handle menu model events. The methods of this class will be called on the browser process UI thread unless otherwise indicated. Perform the action associated with the specified |command_id| and optional |event_flags|. Called when the user moves the mouse outside the menu and over the owning window. Called on unhandled open submenu keyboard commands. |is_rtl| will be true if the menu is displaying a right-to-left language. Called on unhandled close submenu keyboard commands. |is_rtl| will be true if the menu is displaying a right-to-left language. The menu is about to show. The menu has closed. Optionally modify a menu item label. Return true if |label| was modified. Class used to represent an entry in navigation history. Returns true if this object is valid. Do not call any other methods if this function returns false. Returns the actual URL of the page. For some pages this may be data: URL or similar. Use GetDisplayURL() to return a display-friendly version. Returns a display-friendly version of the URL. Returns the original URL that was entered by the user before any redirects. Returns the title set by the page. This value may be empty. Returns the transition type which indicates what the user did to move to this page from the previous page. Returns true if this navigation includes post data. Returns the time for the last known successful navigation completion. A navigation may be completed more than once if the page is reloaded. May be 0 if the navigation has not yet completed. Returns the HTTP status code for the last known successful navigation response. May be 0 if the response has not yet been received or if the navigation has not yet completed. Returns the SSL information for this navigation entry. Callback interface for CefBrowserHost::GetNavigationEntries. The methods of this class will be called on the browser process UI thread. Method that will be executed. Do not keep a reference to |entry| outside of this callback. Return true to continue visiting entries or false to stop. |current| is true if this entry is the currently loaded navigation entry. |index| is the 0-based index of this entry and |total| is the total number of entries. Callback interface for CefBrowserHost::PrintToPDF. The methods of this class will be called on the browser process UI thread. Method that will be executed when the PDF printing has completed. |path| is the output path. |ok| will be true if the printing completed successfully or false otherwise. Class used to represent post data for a web request. The methods of this class may be called on any thread. Create a new CefPostData object. Returns true if this object is read-only. Returns true if the underlying POST data includes elements that are not represented by this CefPostData object (for example, multi-part file upload data). Modifying CefPostData objects with excluded elements may result in the request failing. Returns the number of existing post data elements. Retrieve the post data elements. Remove the specified post data element. Returns true if the removal succeeds. Add the specified post data element. Returns true if the add succeeds. Remove all existing post data elements. Class used to represent a single element in the request post data. The methods of this class may be called on any thread. Create a new CefPostDataElement object. Returns true if this object is read-only. Remove all contents from the post data element. The post data element will represent a file. The post data element will represent bytes. The bytes passed in will be copied. Return the type of this post data element. Return the file name. Return the number of bytes. Read up to |size| bytes into |bytes| and return the number of bytes actually read. Callback interface for asynchronous continuation of print dialog requests. Continue printing with the specified |settings|. Cancel the printing. Implement this interface to handle printing on Linux. Each browser will have only one print job in progress at a time. The methods of this class will be called on the browser process UI thread. Called when printing has started for the specified |browser|. This method will be called before the other OnPrint*() methods and irrespective of how printing was initiated (e.g. CefBrowserHost::Print(), JavaScript window.print() or PDF extension print button). Synchronize |settings| with client state. If |get_defaults| is true then populate |settings| with the default print settings. Do not keep a reference to |settings| outside of this callback. Show the print dialog. Execute |callback| once the dialog is dismissed. Return true if the dialog will be displayed or false to cancel the printing immediately. Send the print job to the printer. Execute |callback| once the job is completed. Return true if the job will proceed or false to cancel the job immediately. Reset client state related to printing. Return the PDF paper size in device units. Used in combination with CefBrowserHost::PrintToPDF(). Callback interface for asynchronous continuation of print job requests. Indicate completion of the print job. Class representing print settings. Create a new CefPrintSettings object. Returns true if this object is valid. Do not call any other methods if this function returns false. Returns true if the values of this object are read-only. Some APIs may expose read-only objects. Set the page orientation. Returns true if the orientation is landscape. Set the printer printable area in device units. Some platforms already provide flipped area. Set |landscape_needs_flip| to false on those platforms to avoid double flipping. Set the device name. Get the device name. Set the DPI (dots per inch). Get the DPI (dots per inch). Set the page ranges. Returns the number of page ranges that currently exist. Retrieve the page ranges. Set whether only the selection will be printed. Returns true if only the selection will be printed. Set whether pages will be collated. Returns true if pages will be collated. Set the color model. Get the color model. Set the number of copies. Get the number of copies. Set the duplex mode. Get the duplex mode. Class representing a message. Can be used on any process and thread. Create a new CefProcessMessage object with the specified name. Returns true if this object is valid. Do not call any other methods if this function returns false. Returns true if the values of this object are read-only. Some APIs may expose read-only objects. Returns a writable copy of this object. Returns the message name. Returns the list of arguments. Interface the client can implement to provide a custom stream reader. The methods of this class may be called on any thread. Read raw binary data. Seek to the specified offset position. |whence| may be any one of SEEK_CUR, SEEK_END or SEEK_SET. Return zero on success and non-zero on failure. Return the current offset position. Return non-zero if at end of file. Return true if this handler performs work like accessing the file system which may block. Used as a hint for determining the thread to access the handler from. Implement this interface to receive notification when CDM registration is complete. The methods of this class will be called on the browser process UI thread. Method that will be called when CDM registration is complete. |result| will be CEF_CDM_REGISTRATION_ERROR_NONE if registration completed successfully. Otherwise, |result| and |error_message| will contain additional information about why registration failed. Generic callback interface used for managing the lifespan of a registration. Implement this interface to handle events when window rendering is disabled. The methods of this class will be called on the UI thread. Return the handler for accessibility notifications. If no handler is provided the default implementation will be used. Called to retrieve the root window rectangle in screen coordinates. Return true if the rectangle was provided. If this method returns false the rectangle from GetViewRect will be used. Called to retrieve the view rectangle which is relative to screen coordinates. This method must always provide a non-empty rectangle. Called to retrieve the translation from view coordinates to actual screen coordinates. Return true if the screen coordinates were provided. Called to allow the client to fill in the CefScreenInfo object with appropriate values. Return true if the |screen_info| structure has been modified. If the screen info rectangle is left empty the rectangle from GetViewRect will be used. If the rectangle is still empty or invalid popups may not be drawn correctly. Called when the browser wants to show or hide the popup widget. The popup should be shown if |show| is true and hidden if |show| is false. Called when the browser wants to move or resize the popup widget. |rect| contains the new location and size in view coordinates. Called when an element should be painted. Pixel values passed to this method are scaled relative to view coordinates based on the value of CefScreenInfo.device_scale_factor returned from GetScreenInfo. |type| indicates whether the element is the view or the popup widget. |buffer| contains the pixel data for the whole image. |dirtyRects| contains the set of rectangles in pixel coordinates that need to be repainted. |buffer| will be |width|*|height|*4 bytes in size and represents a BGRA image with an upper-left origin. This method is only called when CefWindowInfo::SharedTextureEnabled is set to false. Called when an element has been rendered to the shared texture handle. |type| indicates whether the element is the view or the popup widget. |dirtyRects| contains the set of rectangles in pixel coordinates that need to be repainted. |shared_handle| is the handle for a D3D11 Texture2D that can be accessed via ID3D11Device using the OpenSharedResource method. This method is only called when CefWindowInfo::SharedTextureEnabled is set to true, and is currently only supported on Windows. Called when the browser's cursor has changed. If |type| is CT_CUSTOM then |custom_cursor_info| will be populated with the custom cursor information. Called when the user starts dragging content in the web view. Contextual information about the dragged content is supplied by |drag_data|. (|x|, |y|) is the drag start location in screen coordinates. OS APIs that run a system message loop may be used within the StartDragging call. Return false to abort the drag operation. Don't call any of CefBrowserHost::DragSource*Ended* methods after returning false. Return true to handle the drag operation. Call CefBrowserHost::DragSourceEndedAt and DragSourceSystemDragEnded either synchronously or asynchronously to inform the web view that the drag operation has ended. Called when the web view wants to update the mouse cursor during a drag & drop operation. |operation| describes the allowed operation (none, move, copy, link). Called when the scroll offset has changed. Called when the IME composition range has changed. |selected_range| is the range of characters that have been selected. |character_bounds| is the bounds of each character in view coordinates. Called when text selection has changed for the specified |browser|. |selected_text| is the currently selected text and |selected_range| is the character range. Called when an on-screen keyboard should be shown or hidden for the specified |browser|. |input_mode| specifies what kind of keyboard should be opened. If |input_mode| is CEF_TEXT_INPUT_MODE_NONE, any existing keyboard for this browser should be hidden. Class used to implement render process callbacks. The methods of this class will be called on the render process main thread (TID_RENDERER) unless otherwise indicated. Called after the render process main thread has been created. Called after WebKit has been initialized. Called after a browser has been created. When browsing cross-origin a new browser will be created before the old browser with the same identifier is destroyed. |extra_info| is a read-only value originating from CefBrowserHost::CreateBrowser(), CefBrowserHost::CreateBrowserSync(), CefLifeSpanHandler::OnBeforePopup() or CefBrowserView::CreateBrowserView(). Called before a browser is destroyed. Return the handler for browser load status events. Called immediately after the V8 context for a frame has been created. To retrieve the JavaScript 'window' object use the CefV8Context::GetGlobal() method. V8 handles can only be accessed from the thread on which they are created. A task runner for posting tasks on the associated thread can be retrieved via the CefV8Context::GetTaskRunner() method. Called immediately before the V8 context for a frame is released. No references to the context should be kept after this method is called. Called for global uncaught exceptions in a frame. Execution of this callback is disabled by default. To enable set CefSettings.uncaught_exception_stack_size > 0. Called when a new node in the the browser gets focus. The |node| value may be empty if no specific node has gained focus. The node object passed to this method represents a snapshot of the DOM at the time this method is executed. DOM objects are only valid for the scope of this method. Do not keep references to or attempt to access any DOM objects outside the scope of this method. Called when a new message is received from a different process. Return true if the message was handled or false otherwise. Do not keep a reference to or attempt to access the message outside of this callback. Class used to represent a web request. The methods of this class may be called on any thread. Create a new CefRequest object. Returns true if this object is read-only. Gets or sets the fully qualified URL. Gets or sets the request method type. The value will default to POST if post data is provided and GET otherwise. Set the referrer URL and policy. If non-empty the referrer URL must be fully qualified with an HTTP or HTTPS scheme component. Any username, password or ref component will be removed. Get the referrer URL. Get the referrer policy. Get the post data. Get the header values. Will not include the Referer value if any. Set the header values. If a Referer value exists in the header map it will be removed and ignored. Returns the first header value for |name| or an empty string if not found. Will not return the Referer value if any. Use GetHeaderMap instead if |name| might have multiple values. Set the header |name| to |value|. If |overwrite| is true any existing values will be replaced with the new value. If |overwrite| is false any existing values will not be overwritten. The Referer value cannot be set using this method. Set all values at one time. Get the options used in combination with CefUrlRequest. Gets or sets the URL to the first party for cookies used in combination with CefURLRequest. Get the resource type for this request. Only available in the browser process. Get the transition type for this request. Only available in the browser process and only applies to requests that represent a main frame or sub-frame navigation. Returns the globally unique identifier for this request or 0 if not specified. Can be used by CefResourceRequestHandler implementations in the browser process to track a single request across multiple callbacks. Callback interface used for asynchronous continuation of url requests. Continue the url request. If |allow| is true the request will be continued. Otherwise, the request will be canceled. Cancel the url request. A request context provides request handling for a set of related browser or URL request objects. A request context can be specified when creating a new browser via the CefBrowserHost static factory methods or when creating a new URL request via the CefURLRequest static factory methods. Browser objects with different request contexts will never be hosted in the same render process. Browser objects with the same request context may or may not be hosted in the same render process depending on the process model. Browser objects created indirectly via the JavaScript window.open function or targeted links will share the same render process and the same request context as the source browser. When running in single-process mode there is only a single render process (the main process) and so all browsers created in single-process mode will share the same request context. This will be the first request context passed into a CefBrowserHost static factory method and all other request context objects will be ignored. Returns the global context object. Creates a new context object with the specified |settings| and optional |handler|. Creates a new context object that shares storage with |other| and uses an optional |handler|. Returns true if this object is pointing to the same context as |that| object. Returns true if this object is sharing the same storage as |that| object. Returns true if this object is the global context. The global context is used by default when creating a browser or URL request with a NULL context argument. Returns the handler for this context if any. Returns the cache path for this object. If empty an "incognito mode" in-memory cache is being used. Returns the cookie manager for this object. If |callback| is non-NULL it will be executed asnychronously on the IO thread after the manager's storage has been initialized. Register a scheme handler factory for the specified |scheme_name| and optional |domain_name|. An empty |domain_name| value for a standard scheme will cause the factory to match all domain names. The |domain_name| value will be ignored for non-standard schemes. If |scheme_name| is a built-in scheme and no handler is returned by |factory| then the built-in scheme handler factory will be called. If |scheme_name| is a custom scheme then you must also implement the CefApp::OnRegisterCustomSchemes() method in all processes. This function may be called multiple times to change or remove the factory that matches the specified |scheme_name| and optional |domain_name|. Returns false if an error occurs. This function may be called on any thread in the browser process. Clear all registered scheme handler factories. Returns false on error. This function may be called on any thread in the browser process. Tells all renderer processes associated with this context to throw away their plugin list cache. If |reload_pages| is true they will also reload all pages with plugins. CefRequestContextHandler::OnBeforePluginLoad may be called to rebuild the plugin list cache. Returns true if a preference with the specified |name| exists. This method must be called on the browser process UI thread. Returns the value for the preference with the specified |name|. Returns NULL if the preference does not exist. The returned object contains a copy of the underlying preference value and modifications to the returned object will not modify the underlying preference value. This method must be called on the browser process UI thread. Returns all preferences as a dictionary. If |include_defaults| is true then preferences currently at their default value will be included. The returned object contains a copy of the underlying preference values and modifications to the returned object will not modify the underlying preference values. This method must be called on the browser process UI thread. Returns true if the preference with the specified |name| can be modified using SetPreference. As one example preferences set via the command-line usually cannot be modified. This method must be called on the browser process UI thread. Set the |value| associated with preference |name|. Returns true if the value is set successfully and false otherwise. If |value| is NULL the preference will be restored to its default value. If setting the preference fails then |error| will be populated with a detailed description of the problem. This method must be called on the browser process UI thread. Clears all certificate exceptions that were added as part of handling CefRequestHandler::OnCertificateError(). If you call this it is recommended that you also call CloseAllConnections() or you risk not being prompted again for server certificates if you reconnect quickly. If |callback| is non-NULL it will be executed on the UI thread after completion. Clears all HTTP authentication credentials that were added as part of handling GetAuthCredentials. If |callback| is non-NULL it will be executed on the UI thread after completion. Clears all active and idle connections that Chromium currently has. This is only recommended if you have released all other CEF objects but don't yet want to call CefShutdown(). If |callback| is non-NULL it will be executed on the UI thread after completion. Attempts to resolve |origin| to a list of associated IP addresses. |callback| will be executed on the UI thread after completion. Load an extension. If extension resources will be read from disk using the default load implementation then |root_directory| should be the absolute path to the extension resources directory and |manifest| should be NULL. If extension resources will be provided by the client (e.g. via CefRequestHandler and/or CefExtensionHandler) then |root_directory| should be a path component unique to the extension (if not absolute this will be internally prefixed with the PK_DIR_RESOURCES path) and |manifest| should contain the contents that would otherwise be read from the "manifest.json" file on disk. The loaded extension will be accessible in all contexts sharing the same storage (HasExtension returns true). However, only the context on which this method was called is considered the loader (DidLoadExtension returns true) and only the loader will receive CefRequestContextHandler callbacks for the extension. CefExtensionHandler::OnExtensionLoaded will be called on load success or CefExtensionHandler::OnExtensionLoadFailed will be called on load failure. If the extension specifies a background script via the "background" manifest key then CefExtensionHandler::OnBeforeBackgroundBrowser will be called to create the background browser. See that method for additional information about background scripts. For visible extension views the client application should evaluate the manifest to determine the correct extension URL to load and then pass that URL to the CefBrowserHost::CreateBrowser* function after the extension has loaded. For example, the client can look for the "browser_action" manifest key as documented at https://developer.chrome.com/extensions/browserAction. Extension URLs take the form "chrome-extension://<extension_id>/<path>". Browsers that host extensions differ from normal browsers as follows: - Can access chrome.* JavaScript APIs if allowed by the manifest. Visit chrome://extensions-support for the list of extension APIs currently supported by CEF. - Main frame navigation to non-extension content is blocked. - Pinch-zooming is disabled. - CefBrowserHost::GetExtension returns the hosted extension. - CefBrowserHost::IsBackgroundHost returns true for background hosts. See https://developer.chrome.com/extensions for extension implementation and usage documentation. Returns true if this context was used to load the extension identified by |extension_id|. Other contexts sharing the same storage will also have access to the extension (see HasExtension). This method must be called on the browser process UI thread. Returns true if this context has access to the extension identified by |extension_id|. This may not be the context that was used to load the extension (see DidLoadExtension). This method must be called on the browser process UI thread. Retrieve the list of all extensions that this context has access to (see HasExtension). |extension_ids| will be populated with the list of extension ID values. Returns true on success. This method must be called on the browser process UI thread. Returns the extension matching |extension_id| or NULL if no matching extension is accessible in this context (see HasExtension). This method must be called on the browser process UI thread. Returns the MediaRouter object associated with this context. Implement this interface to provide handler implementations. The handler instance will not be released until all objects related to the context have been destroyed. Called on the browser process UI thread immediately after the request context has been initialized. Called on multiple browser process threads before a plugin instance is loaded. |mime_type| is the mime type of the plugin that will be loaded. |plugin_url| is the content URL that the plugin will load and may be empty. |is_main_frame| will be true if the plugin is being loaded in the main (top-level) frame, |top_origin_url| is the URL for the top-level frame that contains the plugin when loading a specific plugin instance or empty when building the initial list of enabled plugins for 'navigator.plugins' JavaScript state. |plugin_info| includes additional information about the plugin that will be loaded. |plugin_policy| is the recommended policy. Modify |plugin_policy| and return true to change the policy. Return false to use the recommended policy. The default plugin policy can be set at runtime using the `--plugin-policy=[allow|detect|block]` command-line flag. Decisions to mark a plugin as disabled by setting |plugin_policy| to PLUGIN_POLICY_DISABLED may be cached when |top_origin_url| is empty. To purge the plugin list cache and potentially trigger new calls to this method call CefRequestContext::PurgePluginListCache. Called on the browser process IO thread before a resource request is initiated. The |browser| and |frame| values represent the source of the request, and may be NULL for requests originating from service workers or CefURLRequest. |request| represents the request contents and cannot be modified in this callback. |is_navigation| will be true if the resource request is a navigation. |is_download| will be true if the resource request is a download. |request_initiator| is the origin (scheme + domain) of the page that initiated the request. Set |disable_default_handling| to true to disable default handling of the request, in which case it will need to be handled via CefResourceRequestHandler::GetResourceHandler or it will be canceled. To allow the resource load to proceed with default handling return NULL. To specify a handler for the resource return a CefResourceRequestHandler object. This method will not be called if the client associated with |browser| returns a non-NULL value from CefRequestHandler::GetResourceRequestHandler for the same request (identified by CefRequest::GetIdentifier). Implement this interface to handle events related to browser requests. The methods of this class will be called on the thread indicated. Called on the UI thread before browser navigation. Return true to cancel the navigation or false to allow the navigation to proceed. The |request| object cannot be modified in this callback. CefLoadHandler::OnLoadingStateChange will be called twice in all cases. If the navigation is allowed CefLoadHandler::OnLoadStart and CefLoadHandler::OnLoadEnd will be called. If the navigation is canceled CefLoadHandler::OnLoadError will be called with an |errorCode| value of ERR_ABORTED. The |user_gesture| value will be true if the browser navigated via explicit user gesture (e.g. clicking a link) or false if it navigated automatically (e.g. via the DomContentLoaded event). Called on the UI thread before OnBeforeBrowse in certain limited cases where navigating a new or different browser might be desirable. This includes user-initiated navigation that might open in a special way (e.g. links clicked via middle-click or ctrl + left-click) and certain types of cross-origin navigation initiated from the renderer process (e.g. navigating the top-level frame to/from a file URL). The |browser| and |frame| values represent the source of the navigation. The |target_disposition| value indicates where the user intended to navigate the browser based on standard Chromium behaviors (e.g. current tab, new tab, etc). The |user_gesture| value will be true if the browser navigated via explicit user gesture (e.g. clicking a link) or false if it navigated automatically (e.g. via the DomContentLoaded event). Return true to cancel the navigation or false to allow the navigation to proceed in the source browser's top-level frame. Called on the browser process IO thread before a resource request is initiated. The |browser| and |frame| values represent the source of the request. |request| represents the request contents and cannot be modified in this callback. |is_navigation| will be true if the resource request is a navigation. |is_download| will be true if the resource request is a download. |request_initiator| is the origin (scheme + domain) of the page that initiated the request. Set |disable_default_handling| to true to disable default handling of the request, in which case it will need to be handled via CefResourceRequestHandler::GetResourceHandler or it will be canceled. To allow the resource load to proceed with default handling return NULL. To specify a handler for the resource return a CefResourceRequestHandler object. If this callback returns NULL the same method will be called on the associated CefRequestContextHandler, if any. Called on the IO thread when the browser needs credentials from the user. |origin_url| is the origin making this authentication request. |isProxy| indicates whether the host is a proxy server. |host| contains the hostname and |port| contains the port number. |realm| is the realm of the challenge and may be empty. |scheme| is the authentication scheme used, such as "basic" or "digest", and will be empty if the source of the request is an FTP server. Return true to continue the request and call CefAuthCallback::Continue() either in this method or at a later time when the authentication information is available. Return false to cancel the request immediately. Called on the IO thread when JavaScript requests a specific storage quota size via the webkitStorageInfo.requestQuota function. |origin_url| is the origin of the page making the request. |new_size| is the requested quota size in bytes. Return true to continue the request and call CefRequestCallback::Continue() either in this method or at a later time to grant or deny the request. Return false to cancel the request immediately. Called on the UI thread to handle requests for URLs with an invalid SSL certificate. Return true and call CefRequestCallback::Continue() either in this method or at a later time to continue or cancel the request. Return false to cancel the request immediately. If CefSettings.ignore_certificate_errors is set all invalid certificates will be accepted without calling this method. Called on the UI thread when a client certificate is being requested for authentication. Return false to use the default behavior and automatically select the first certificate available. Return true and call CefSelectClientCertificateCallback::Select either in this method or at a later time to select a certificate. Do not call Select or call it with NULL to continue without using any certificate. |isProxy| indicates whether the host is an HTTPS proxy or the origin server. |host| and |port| contains the hostname and port of the SSL server. |certificates| is the list of certificates to choose from; this list has already been pruned by Chromium so that it only contains certificates from issuers that the server trusts. Called on the browser process UI thread when a plugin has crashed. |plugin_path| is the path of the plugin that crashed. Called on the browser process UI thread when the render view associated with |browser| is ready to receive/handle IPC messages in the render process. Called on the browser process UI thread when the render process terminates unexpectedly. |status| indicates how the process terminated. Callback interface for CefRequestContext::ResolveHost. Called on the UI thread after the ResolveHost request has completed. |result| will be the result code. |resolved_ips| will be the list of resolved IP addresses or empty if the resolution failed. Class used for retrieving resources from the resource bundle (*.pak) files loaded by CEF during startup or via the CefResourceBundleHandler returned from CefApp::GetResourceBundleHandler. See CefSettings for additional options related to resource bundle loading. The methods of this class may be called on any thread unless otherwise indicated. Returns the global resource bundle instance. Returns the localized string for the specified |string_id| or an empty string if the value is not found. Include cef_pack_strings.h for a listing of valid string ID values. Retrieves the contents of the specified scale independent |resource_id|. If the value is found then |data| and |data_size| will be populated and this method will return true. If the value is not found then this method will return false. The returned |data| pointer will remain resident in memory and should not be freed. Include cef_pack_resources.h for a listing of valid resource ID values. Retrieves the contents of the specified |resource_id| nearest the scale factor |scale_factor|. Use a |scale_factor| value of SCALE_FACTOR_NONE for scale independent resources or call GetDataResource instead. If the value is found then |data| and |data_size| will be populated and this method will return true. If the value is not found then this method will return false. The returned |data| pointer will remain resident in memory and should not be freed. Include cef_pack_resources.h for a listing of valid resource ID values. Class used to implement a custom resource bundle interface. See CefSettings for additional options related to resource bundle loading. The methods of this class may be called on multiple threads. Called to retrieve a localized translation for the specified |string_id|. To provide the translation set |string| to the translation string and return true. To use the default translation return false. Include cef_pack_strings.h for a listing of valid string ID values. Called to retrieve data for the specified scale independent |resource_id|. To provide the resource data set |data| and |data_size| to the data pointer and size respectively and return true. To use the default resource data return false. The resource data will not be copied and must remain resident in memory. Include cef_pack_resources.h for a listing of valid resource ID values. Called to retrieve data for the specified |resource_id| nearest the scale factor |scale_factor|. To provide the resource data set |data| and |data_size| to the data pointer and size respectively and return true. To use the default resource data return false. The resource data will not be copied and must remain resident in memory. Include cef_pack_resources.h for a listing of valid resource ID values. Class used to implement a custom request handler interface. The methods of this class will be called on the IO thread unless otherwise indicated. Open the response stream. To handle the request immediately set |handle_request| to true and return true. To decide at a later time set |handle_request| to false, return true, and execute |callback| to continue or cancel the request. To cancel the request immediately set |handle_request| to true and return false. This method will be called in sequence but not from a dedicated thread. For backwards compatibility set |handle_request| to false and return false and the ProcessRequest method will be called. Begin processing the request. To handle the request return true and call CefCallback::Continue() once the response header information is available (CefCallback::Continue() can also be called from inside this method if header information is available immediately). To cancel the request return false. WARNING: This method is deprecated. Use Open instead. Retrieve response header information. If the response length is not known set |response_length| to -1 and ReadResponse() will be called until it returns false. If the response length is known set |response_length| to a positive value and ReadResponse() will be called until it returns false or the specified number of bytes have been read. Use the |response| object to set the mime type, http status code and other optional header values. To redirect the request to a new URL set |redirectUrl| to the new URL. |redirectUrl| can be either a relative or fully qualified URL. It is also possible to set |response| to a redirect http status code and pass the new URL via a Location header. Likewise with |redirectUrl| it is valid to set a relative or fully qualified URL as the Location header value. If an error occured while setting up the request you can call SetError() on |response| to indicate the error condition. Skip response data when requested by a Range header. Skip over and discard |bytes_to_skip| bytes of response data. If data is available immediately set |bytes_skipped| to the number of bytes skipped and return true. To read the data at a later time set |bytes_skipped| to 0, return true and execute |callback| when the data is available. To indicate failure set |bytes_skipped| to < 0 (e.g. -2 for ERR_FAILED) and return false. This method will be called in sequence but not from a dedicated thread. Read response data. If data is available immediately copy up to |bytes_to_read| bytes into |data_out|, set |bytes_read| to the number of bytes copied, and return true. To read the data at a later time keep a pointer to |data_out|, set |bytes_read| to 0, return true and execute |callback| when the data is available (|data_out| will remain valid until the callback is executed). To indicate response completion set |bytes_read| to 0 and return false. To indicate failure set |bytes_read| to < 0 (e.g. -2 for ERR_FAILED) and return false. This method will be called in sequence but not from a dedicated thread. For backwards compatibility set |bytes_read| to -1 and return false and the ReadResponse method will be called. Read response data. If data is available immediately copy up to |bytes_to_read| bytes into |data_out|, set |bytes_read| to the number of bytes copied, and return true. To read the data at a later time set |bytes_read| to 0, return true and call CefCallback::Continue() when the data is available. To indicate response completion return false. WARNING: This method is deprecated. Use Skip and Read instead. Request processing has been canceled. Callback for asynchronous continuation of CefResourceHandler::Read(). Callback for asynchronous continuation of Read(). If |bytes_read| == 0 the response will be considered complete. If |bytes_read| > 0 then Read() will be called again until the request is complete (based on either the result or the expected content length). If |bytes_read| < 0 then the request will fail and the |bytes_read| value will be treated as the error code. Implement this interface to handle events related to browser requests. The methods of this class will be called on the IO thread unless otherwise indicated. Called on the IO thread before a resource request is loaded. The |browser| and |frame| values represent the source of the request, and may be NULL for requests originating from service workers or CefURLRequest. To optionally filter cookies for the request return a CefCookieAccessFilter object. The |request| object cannot not be modified in this callback. Called on the IO thread before a resource request is loaded. The |browser| and |frame| values represent the source of the request, and may be NULL for requests originating from service workers or CefURLRequest. To redirect or change the resource load optionally modify |request|. Modification of the request URL will be treated as a redirect. Return RV_CONTINUE to continue the request immediately. Return RV_CONTINUE_ASYNC and call CefRequestCallback:: Continue() at a later time to continue or cancel the request asynchronously. Return RV_CANCEL to cancel the request immediately. Called on the IO thread before a resource is loaded. The |browser| and |frame| values represent the source of the request, and may be NULL for requests originating from service workers or CefURLRequest. To allow the resource to load using the default network loader return NULL. To specify a handler for the resource return a CefResourceHandler object. The |request| object cannot not be modified in this callback. Called on the IO thread when a resource load is redirected. The |browser| and |frame| values represent the source of the request, and may be NULL for requests originating from service workers or CefURLRequest. The |request| parameter will contain the old URL and other request-related information. The |response| parameter will contain the response that resulted in the redirect. The |new_url| parameter will contain the new URL and can be changed if desired. The |request| and |response| objects cannot be modified in this callback. Called on the IO thread when a resource response is received. The |browser| and |frame| values represent the source of the request, and may be NULL for requests originating from service workers or CefURLRequest. To allow the resource load to proceed without modification return false. To redirect or retry the resource load optionally modify |request| and return true. Modification of the request URL will be treated as a redirect. Requests handled using the default network loader cannot be redirected in this callback. The |response| object cannot be modified in this callback. WARNING: Redirecting using this method is deprecated. Use OnBeforeResourceLoad or GetResourceHandler to perform redirects. Called on the IO thread to optionally filter resource response content. The |browser| and |frame| values represent the source of the request, and may be NULL for requests originating from service workers or CefURLRequest. |request| and |response| represent the request and response respectively and cannot be modified in this callback. Called on the IO thread when a resource load has completed. The |browser| and |frame| values represent the source of the request, and may be NULL for requests originating from service workers or CefURLRequest. |request| and |response| represent the request and response respectively and cannot be modified in this callback. |status| indicates the load completion status. |received_content_length| is the number of response bytes actually read. This method will be called for all requests, including requests that are aborted due to CEF shutdown or destruction of the associated browser. In cases where the associated browser is destroyed this callback may arrive after the CefLifeSpanHandler::OnBeforeClose callback for that browser. The CefFrame::IsValid method can be used to test for this situation, and care should be taken not to call |browser| or |frame| methods that modify state (like LoadURL, SendProcessMessage, etc.) if the frame is invalid. Called on the IO thread to handle requests for URLs with an unknown protocol component. The |browser| and |frame| values represent the source of the request, and may be NULL for requests originating from service workers or CefURLRequest. |request| cannot be modified in this callback. Set |allow_os_execution| to true to attempt execution via the registered OS protocol handler, if any. SECURITY WARNING: YOU SHOULD USE THIS METHOD TO ENFORCE RESTRICTIONS BASED ON SCHEME, HOST OR OTHER URL ANALYSIS BEFORE ALLOWING OS EXECUTION. Callback for asynchronous continuation of CefResourceHandler::Skip(). Callback for asynchronous continuation of Skip(). If |bytes_skipped| > 0 then either Skip() will be called again until the requested number of bytes have been skipped or the request will proceed. If |bytes_skipped| <= 0 the request will fail with ERR_REQUEST_RANGE_NOT_SATISFIABLE. Class used to represent a web response. The methods of this class may be called on any thread. Create a new CefResponse object. Returns true if this object is read-only. Gets or sets the response error code. Returns ERR_NONE if there was no error. This can be used by custom scheme handlers to return errors during initial request processing. Gets or sets the response status code. Get the response status text. Gets or sets the response mime type. Gets or sets the response charset. Get the value for the specified response header field. Set the header |name| to |value|. If |overwrite| is true any existing values will be replaced with the new value. If |overwrite| is false any existing values will not be overwritten. Get all response header fields. Set all response header fields. Gets or sets the resolved URL after redirects or changed as a result of HSTS. Implement this interface to filter resource response content. The methods of this class will be called on the browser process IO thread. Initialize the response filter. Will only be called a single time. The filter will not be installed if this method returns false. Called to filter a chunk of data. Expected usage is as follows: A. Read input data from |data_in| and set |data_in_read| to the number of bytes that were read up to a maximum of |data_in_size|. |data_in| will be NULL if |data_in_size| is zero. B. Write filtered output data to |data_out| and set |data_out_written| to the number of bytes that were written up to a maximum of |data_out_size|. If no output data was written then all data must be read from |data_in| (user must set |data_in_read| = |data_in_size|). C. Return RESPONSE_FILTER_DONE if all output data was written or RESPONSE_FILTER_NEED_MORE_DATA if output data is still pending. This method will be called repeatedly until the input buffer has been fully read (user sets |data_in_read| = |data_in_size|) and there is no more input data to filter (the resource response is complete). This method may then be called an additional time with an empty input buffer if the user filled the output buffer (set |data_out_written| = |data_out_size|) and returned RESPONSE_FILTER_NEED_MORE_DATA to indicate that output data is still pending. Calls to this method will stop when one of the following conditions is met: A. There is no more input data to filter (the resource response is complete) and the user sets |data_out_written| = 0 or returns RESPONSE_FILTER_DONE to indicate that all data has been written, or; B. The user returns RESPONSE_FILTER_ERROR to indicate an error. Do not keep a reference to the buffers passed to this method. Callback interface used for continuation of custom context menu display. Complete context menu display by selecting the specified |command_id| and |event_flags|. Cancel context menu display. Callback interface for CefBrowserHost::RunFileDialog. The methods of this class will be called on the browser process UI thread. Called asynchronously after the file dialog is dismissed. |selected_accept_filter| is the 0-based index of the value selected from the accept filters array passed to CefBrowserHost::RunFileDialog. |file_paths| will be a single value or a list of values depending on the dialog mode. If the selection was cancelled |file_paths| will be empty. Class that creates CefResourceHandler instances for handling scheme requests. The methods of this class will always be called on the IO thread. Return a new resource handler instance to handle the request or an empty reference to allow default handling of the request. |browser| and |frame| will be the browser window and frame respectively that originated the request or NULL if the request did not originate from a browser window (for example, if the request came from CefURLRequest). The |request| object passed to this method cannot be modified. Class that manages custom scheme registrations. Register a custom scheme. This method should not be called for the built-in HTTP, HTTPS, FILE, FTP, ABOUT and DATA schemes. See cef_scheme_options_t for possible values for |options|. This function may be called on any thread. It should only be called once per unique |scheme_name| value. If |scheme_name| is already registered or if an error occurs this method will return false. Callback interface used to select a client certificate for authentication. Chooses the specified certificate for client certificate authentication. NULL value means that no client certificate should be used. Class representing a server that supports HTTP and WebSocket requests. Server capacity is limited and is intended to handle only a small number of simultaneous connections (e.g. for communicating between applications on localhost). The methods of this class are safe to call from any thread in the brower process unless otherwise indicated. Create a new server that binds to |address| and |port|. |address| must be a valid IPv4 or IPv6 address (e.g. 127.0.0.1 or ::1) and |port| must be a port number outside of the reserved range (e.g. between 1025 and 65535 on most platforms). |backlog| is the maximum number of pending connections. A new thread will be created for each CreateServer call (the "dedicated server thread"). It is therefore recommended to use a different CefServerHandler instance for each CreateServer call to avoid thread safety issues in the CefServerHandler implementation. The CefServerHandler::OnServerCreated method will be called on the dedicated server thread to report success or failure. See CefServerHandler::OnServerCreated documentation for a description of server lifespan. Returns the task runner for the dedicated server thread. Stop the server and shut down the dedicated server thread. See CefServerHandler::OnServerCreated documentation for a description of server lifespan. Returns true if the server is currently running and accepting incoming connections. See CefServerHandler::OnServerCreated documentation for a description of server lifespan. This method must be called on the dedicated server thread. Returns the server address including the port number. Returns true if the server currently has a connection. This method must be called on the dedicated server thread. Returns true if |connection_id| represents a valid connection. This method must be called on the dedicated server thread. Send an HTTP 200 "OK" response to the connection identified by |connection_id|. |content_type| is the response content type (e.g. "text/html"), |data| is the response content, and |data_size| is the size of |data| in bytes. The contents of |data| will be copied. The connection will be closed automatically after the response is sent. Send an HTTP 404 "Not Found" response to the connection identified by |connection_id|. The connection will be closed automatically after the response is sent. Send an HTTP 500 "Internal Server Error" response to the connection identified by |connection_id|. |error_message| is the associated error message. The connection will be closed automatically after the response is sent. Send a custom HTTP response to the connection identified by |connection_id|. |response_code| is the HTTP response code sent in the status line (e.g. 200), |content_type| is the response content type sent as the "Content-Type" header (e.g. "text/html"), |content_length| is the expected content length, and |extra_headers| is the map of extra response headers. If |content_length| is >= 0 then the "Content-Length" header will be sent. If |content_length| is 0 then no content is expected and the connection will be closed automatically after the response is sent. If |content_length| is < 0 then no "Content-Length" header will be sent and the client will continue reading until the connection is closed. Use the SendRawData method to send the content, if applicable, and call CloseConnection after all content has been sent. Send raw data directly to the connection identified by |connection_id|. |data| is the raw data and |data_size| is the size of |data| in bytes. The contents of |data| will be copied. No validation of |data| is performed internally so the client should be careful to send the amount indicated by the "Content-Length" header, if specified. See SendHttpResponse documentation for intended usage. Close the connection identified by |connection_id|. See SendHttpResponse documentation for intended usage. Send a WebSocket message to the connection identified by |connection_id|. |data| is the response content and |data_size| is the size of |data| in bytes. The contents of |data| will be copied. See CefServerHandler::OnWebSocketRequest documentation for intended usage. Implement this interface to handle HTTP server requests. A new thread will be created for each CefServer::CreateServer call (the "dedicated server thread"), and the methods of this class will be called on that thread. It is therefore recommended to use a different CefServerHandler instance for each CefServer::CreateServer call to avoid thread safety issues in the CefServerHandler implementation. Called when |server| is created. If the server was started successfully then CefServer::IsRunning will return true. The server will continue running until CefServer::Shutdown is called, after which time OnServerDestroyed will be called. If the server failed to start then OnServerDestroyed will be called immediately after this method returns. Called when |server| is destroyed. The server thread will be stopped after this method returns. The client should release any references to |server| when this method is called. See OnServerCreated documentation for a description of server lifespan. Called when a client connects to |server|. |connection_id| uniquely identifies the connection. Each call to this method will have a matching call to OnClientDisconnected. Called when a client disconnects from |server|. |connection_id| uniquely identifies the connection. The client should release any data associated with |connection_id| when this method is called and |connection_id| should no longer be passed to CefServer methods. Disconnects can originate from either the client or the server. For example, the server will disconnect automatically after a CefServer::SendHttpXXXResponse method is called. Called when |server| receives an HTTP request. |connection_id| uniquely identifies the connection, |client_address| is the requesting IPv4 or IPv6 client address including port number, and |request| contains the request contents (URL, method, headers and optional POST data). Call CefServer methods either synchronously or asynchronusly to send a response. Called when |server| receives a WebSocket request. |connection_id| uniquely identifies the connection, |client_address| is the requesting IPv4 or IPv6 client address including port number, and |request| contains the request contents (URL, method, headers and optional POST data). Execute |callback| either synchronously or asynchronously to accept or decline the WebSocket connection. If the request is accepted then OnWebSocketConnected will be called after the WebSocket has connected and incoming messages will be delivered to the OnWebSocketMessage callback. If the request is declined then the client will be disconnected and OnClientDisconnected will be called. Call the CefServer::SendWebSocketMessage method after receiving the OnWebSocketConnected callback to respond with WebSocket messages. Called after the client has accepted the WebSocket connection for |server| and |connection_id| via the OnWebSocketRequest callback. See OnWebSocketRequest documentation for intended usage. Called when |server| receives an WebSocket message. |connection_id| uniquely identifies the connection, |data| is the message content and |data_size| is the size of |data| in bytes. Do not keep a reference to |data| outside of this method. See OnWebSocketRequest documentation for intended usage. Interface to implement to be notified of asynchronous completion via CefCookieManager::SetCookie(). Method that will be called upon completion. |success| will be true if the cookie was set successfully. Class representing SSL information. Returns a bitmask containing any and all problems verifying the server certificate. Returns the X.509 certificate. Class representing the SSL information for a navigation entry. Returns true if the status is related to a secure SSL/TLS connection. Returns a bitmask containing any and all problems verifying the server certificate. Returns the SSL version used for the SSL connection. Returns a bitmask containing the page security content status. Returns the X.509 certificate. Class used to read data from a stream. The methods of this class may be called on any thread. Create a new CefStreamReader object from a file. Create a new CefStreamReader object from data. Create a new CefStreamReader object from a custom handler. Read raw binary data. Seek to the specified offset position. |whence| may be any one of SEEK_CUR, SEEK_END or SEEK_SET. Returns zero on success and non-zero on failure. Return the current offset position. Return non-zero if at end of file. Returns true if this reader performs work like accessing the file system which may block. Used as a hint for determining the thread to access the reader from. Class used to write data to a stream. The methods of this class may be called on any thread. Create a new CefStreamWriter object for a file. Create a new CefStreamWriter object for a custom handler. Write raw binary data. Seek to the specified offset position. |whence| may be any one of SEEK_CUR, SEEK_END or SEEK_SET. Returns zero on success and non-zero on failure. Return the current offset position. Flush the stream. Returns true if this writer performs work like accessing the file system which may block. Used as a hint for determining the thread to access the writer from. Implement this interface to receive string values asynchronously. Method that will be executed. Implement this interface for asynchronous task execution. If the task is posted successfully and if the associated message loop is still running then the Execute() method will be called on the target thread. If the task fails to post then the task object may be destroyed on the source thread instead of the target thread. For this reason be cautious when performing work in the task object destructor. Method that will be executed on the target thread. Class that asynchronously executes tasks on the associated thread. It is safe to call the methods of this class on any thread. CEF maintains multiple internal threads that are used for handling different types of tasks in different processes. The cef_thread_id_t definitions in cef_types.h list the common CEF threads. Task runners are also available for other CEF threads as appropriate (for example, V8 WebWorker threads). Returns the task runner for the current thread. Only CEF threads will have task runners. An empty reference will be returned if this method is called on an invalid thread. Returns the task runner for the specified CEF thread. Returns true if this object is pointing to the same task runner as |that| object. Returns true if this task runner belongs to the current thread. Returns true if this task runner is for the specified CEF thread. Post a task for execution on the thread associated with this task runner. Execution will occur asynchronously. Post a task for delayed execution on the thread associated with this task runner. Execution will occur asynchronously. Delayed tasks are not supported on V8 WebWorker threads and will be executed without the specified delay. Class used to make a URL request. URL requests are not associated with a browser instance so no CefClient callbacks will be executed. URL requests can be created on any valid CEF thread in either the browser or render process. Once created the methods of the URL request object must be accessed on the same thread that created it. Create a new URL request that is not associated with a specific browser or frame. Use CefFrame::CreateURLRequest instead if you want the request to have this association, in which case it may be handled differently (see documentation on that method). Requests may originate from the both browser process and the render process. For requests originating from the browser process: - It may be intercepted by the client via CefResourceRequestHandler or CefSchemeHandlerFactory. - POST data may only contain only a single element of type PDE_TYPE_FILE or PDE_TYPE_BYTES. - If |request_context| is empty the global request context will be used. For requests originating from the render process: - It cannot be intercepted by the client so only http(s) and blob schemes are supported. - POST data may only contain a single element of type PDE_TYPE_BYTES. - The |request_context| parameter must be NULL. The |request| object will be marked as read-only after calling this method. Returns the request object used to create this URL request. The returned object is read-only and should not be modified. Returns the client. Returns the request status. Returns the request error if status is UR_CANCELED or UR_FAILED, or 0 otherwise. Returns the response, or NULL if no response information is available. Response information will only be available after the upload has completed. The returned object is read-only and should not be modified. Returns true if the response body was served from the cache. This includes responses for which revalidation was required. Cancel the request. Interface that should be implemented by the CefURLRequest client. The methods of this class will be called on the same thread that created the request unless otherwise documented. Notifies the client that the request has completed. Use the CefURLRequest::GetRequestStatus method to determine if the request was successful or not. Notifies the client of upload progress. |current| denotes the number of bytes sent so far and |total| is the total size of uploading data (or -1 if chunked upload is enabled). This method will only be called if the UR_FLAG_REPORT_UPLOAD_PROGRESS flag is set on the request. Notifies the client of download progress. |current| denotes the number of bytes received up to the call and |total| is the expected total size of the response (or -1 if not determined). Called when some part of the response is read. |data| contains the current bytes received since the last call. This method will not be called if the UR_FLAG_NO_DOWNLOAD_DATA flag is set on the request. Called on the IO thread when the browser needs credentials from the user. |isProxy| indicates whether the host is a proxy server. |host| contains the hostname and |port| contains the port number. Return true to continue the request and call CefAuthCallback::Continue() when the authentication information is available. If the request has an associated browser/frame then returning false will result in a call to GetAuthCredentials on the CefRequestHandler associated with that browser, if any. Otherwise, returning false will cancel the request immediately. This method will only be called for requests initiated from the browser process. Interface that should be implemented to handle V8 function calls. The methods of this class will be called on the thread associated with the V8 function. Handle retrieval the accessor value identified by |name|. |object| is the receiver ('this' object) of the accessor. If retrieval succeeds set |retval| to the return value. If retrieval fails set |exception| to the exception that will be thrown. Return true if accessor retrieval was handled. Handle assignment of the accessor value identified by |name|. |object| is the receiver ('this' object) of the accessor. |value| is the new value being assigned to the accessor. If assignment fails set |exception| to the exception that will be thrown. Return true if accessor assignment was handled. Callback interface that is passed to CefV8Value::CreateArrayBuffer. Called to release |buffer| when the ArrayBuffer JS object is garbage collected. |buffer| is the value that was passed to CreateArrayBuffer along with this object. Class representing a V8 context handle. V8 handles can only be accessed from the thread on which they are created. Valid threads for creating a V8 handle include the render process main thread (TID_RENDERER) and WebWorker threads. A task runner for posting tasks on the associated thread can be retrieved via the CefV8Context::GetTaskRunner() method. Returns the current (top) context object in the V8 context stack. Returns the entered (bottom) context object in the V8 context stack. Returns true if V8 is currently inside a context. Returns the task runner associated with this context. V8 handles can only be accessed from the thread on which they are created. This method can be called on any render process thread. Returns true if the underlying handle is valid and it can be accessed on the current thread. Do not call any other methods if this method returns false. Returns the browser for this context. This method will return an empty reference for WebWorker contexts. Returns the frame for this context. This method will return an empty reference for WebWorker contexts. Returns the global object for this context. The context must be entered before calling this method. Enter this context. A context must be explicitly entered before creating a V8 Object, Array, Function or Date asynchronously. Exit() must be called the same number of times as Enter() before releasing this context. V8 objects belong to the context in which they are created. Returns true if the scope was entered successfully. Exit this context. Call this method only after calling Enter(). Returns true if the scope was exited successfully. Returns true if this object is pointing to the same handle as |that| object. Execute a string of JavaScript code in this V8 context. The |script_url| parameter is the URL where the script in question can be found, if any. The |start_line| parameter is the base line number to use for error reporting. On success |retval| will be set to the return value, if any, and the function will return true. On failure |exception| will be set to the exception, if any, and the function will return false. Class representing a V8 exception. The methods of this class may be called on any render process thread. Returns the exception message. Returns the line of source code that the exception occurred within. Returns the resource name for the script from where the function causing the error originates. Returns the 1-based number of the line where the error occurred or 0 if the line number is unknown. Returns the index within the script of the first character where the error occurred. Returns the index within the script of the last character where the error occurred. Returns the index within the line of the first character where the error occurred. Returns the index within the line of the last character where the error occurred. Interface that should be implemented to handle V8 function calls. The methods of this class will always be called on the render process main thread. Handle execution of the function identified by |name|. |object| is the receiver ('this' object) of the function. |arguments| is the list of arguments passed to the function. If execution succeeds set |retval| to the function return value. If execution fails set |exception| to the exception that will be thrown. Return true if execution was handled. Interface that should be implemented to handle V8 interceptor calls. The methods of this class will be called on the thread associated with the V8 interceptor. Interceptor's named property handlers (with first argument of type CefString) are called when object is indexed by string. Indexed property handlers (with first argument of type int) are called when object is indexed by integer. Handle retrieval of the interceptor value identified by |name|. |object| is the receiver ('this' object) of the interceptor. If retrieval succeeds, set |retval| to the return value. If the requested value does not exist, don't set either |retval| or |exception|. If retrieval fails, set |exception| to the exception that will be thrown. If the property has an associated accessor, it will be called only if you don't set |retval|. Return true if interceptor retrieval was handled, false otherwise. Handle retrieval of the interceptor value identified by |index|. |object| is the receiver ('this' object) of the interceptor. If retrieval succeeds, set |retval| to the return value. If the requested value does not exist, don't set either |retval| or |exception|. If retrieval fails, set |exception| to the exception that will be thrown. Return true if interceptor retrieval was handled, false otherwise. Handle assignment of the interceptor value identified by |name|. |object| is the receiver ('this' object) of the interceptor. |value| is the new value being assigned to the interceptor. If assignment fails, set |exception| to the exception that will be thrown. This setter will always be called, even when the property has an associated accessor. Return true if interceptor assignment was handled, false otherwise. Handle assignment of the interceptor value identified by |index|. |object| is the receiver ('this' object) of the interceptor. |value| is the new value being assigned to the interceptor. If assignment fails, set |exception| to the exception that will be thrown. Return true if interceptor assignment was handled, false otherwise. Class representing a V8 stack frame handle. V8 handles can only be accessed from the thread on which they are created. Valid threads for creating a V8 handle include the render process main thread (TID_RENDERER) and WebWorker threads. A task runner for posting tasks on the associated thread can be retrieved via the CefV8Context::GetTaskRunner() method. Returns true if the underlying handle is valid and it can be accessed on the current thread. Do not call any other methods if this method returns false. Returns the name of the resource script that contains the function. Returns the name of the resource script that contains the function or the sourceURL value if the script name is undefined and its source ends with a "//@ sourceURL=..." string. Returns the name of the function. Returns the 1-based line number for the function call or 0 if unknown. Returns the 1-based column offset on the line for the function call or 0 if unknown. Returns true if the function was compiled using eval(). Returns true if the function was called as a constructor via "new". Class representing a V8 stack trace handle. V8 handles can only be accessed from the thread on which they are created. Valid threads for creating a V8 handle include the render process main thread (TID_RENDERER) and WebWorker threads. A task runner for posting tasks on the associated thread can be retrieved via the CefV8Context::GetTaskRunner() method. Returns the stack trace for the currently active context. |frame_limit| is the maximum number of frames that will be captured. Returns true if the underlying handle is valid and it can be accessed on the current thread. Do not call any other methods if this method returns false. Returns the number of stack frames. Returns the stack frame at the specified 0-based index. Class representing a V8 value handle. V8 handles can only be accessed from the thread on which they are created. Valid threads for creating a V8 handle include the render process main thread (TID_RENDERER) and WebWorker threads. A task runner for posting tasks on the associated thread can be retrieved via the CefV8Context::GetTaskRunner() method. Create a new CefV8Value object of type undefined. Create a new CefV8Value object of type null. Create a new CefV8Value object of type bool. Create a new CefV8Value object of type int. Create a new CefV8Value object of type unsigned int. Create a new CefV8Value object of type double. Create a new CefV8Value object of type Date. This method should only be called from within the scope of a CefRenderProcessHandler, CefV8Handler or CefV8Accessor callback, or in combination with calling Enter() and Exit() on a stored CefV8Context reference. Create a new CefV8Value object of type string. Create a new CefV8Value object of type object with optional accessor and/or interceptor. This method should only be called from within the scope of a CefRenderProcessHandler, CefV8Handler or CefV8Accessor callback, or in combination with calling Enter() and Exit() on a stored CefV8Context reference. Create a new CefV8Value object of type array with the specified |length|. If |length| is negative the returned array will have length 0. This method should only be called from within the scope of a CefRenderProcessHandler, CefV8Handler or CefV8Accessor callback, or in combination with calling Enter() and Exit() on a stored CefV8Context reference. Create a new CefV8Value object of type ArrayBuffer which wraps the provided |buffer| of size |length| bytes. The ArrayBuffer is externalized, meaning that it does not own |buffer|. The caller is responsible for freeing |buffer| when requested via a call to CefV8ArrayBufferReleaseCallback:: ReleaseBuffer. This method should only be called from within the scope of a CefRenderProcessHandler, CefV8Handler or CefV8Accessor callback, or in combination with calling Enter() and Exit() on a stored CefV8Context reference. Create a new CefV8Value object of type function. This method should only be called from within the scope of a CefRenderProcessHandler, CefV8Handler or CefV8Accessor callback, or in combination with calling Enter() and Exit() on a stored CefV8Context reference. Returns true if the underlying handle is valid and it can be accessed on the current thread. Do not call any other methods if this method returns false. True if the value type is undefined. True if the value type is null. True if the value type is bool. True if the value type is int. True if the value type is unsigned int. True if the value type is double. True if the value type is Date. True if the value type is string. True if the value type is object. True if the value type is array. True if the value type is an ArrayBuffer. True if the value type is function. Returns true if this object is pointing to the same handle as |that| object. Return a bool value. Return an int value. Return an unsigned int value. Return a double value. Return a Date value. Return a string value. OBJECT METHODS - These methods are only available on objects. Arrays and functions are also objects. String- and integer-based keys can be used interchangably with the framework converting between them as necessary. Returns true if this is a user created object. Returns true if the last method call resulted in an exception. This attribute exists only in the scope of the current CEF value object. Returns the exception resulting from the last method call. This attribute exists only in the scope of the current CEF value object. Clears the last exception and returns true on success. Returns true if this object will re-throw future exceptions. This attribute exists only in the scope of the current CEF value object. Set whether this object will re-throw future exceptions. By default exceptions are not re-thrown. If a exception is re-thrown the current context should not be accessed again until after the exception has been caught and not re-thrown. Returns true on success. This attribute exists only in the scope of the current CEF value object. Returns true if the object has a value with the specified identifier. Returns true if the object has a value with the specified identifier. Deletes the value with the specified identifier and returns true on success. Returns false if this method is called incorrectly or an exception is thrown. For read-only and don't-delete values this method will return true even though deletion failed. Deletes the value with the specified identifier and returns true on success. Returns false if this method is called incorrectly, deletion fails or an exception is thrown. For read-only and don't-delete values this method will return true even though deletion failed. Returns the value with the specified identifier on success. Returns NULL if this method is called incorrectly or an exception is thrown. Returns the value with the specified identifier on success. Returns NULL if this method is called incorrectly or an exception is thrown. Associates a value with the specified identifier and returns true on success. Returns false if this method is called incorrectly or an exception is thrown. For read-only values this method will return true even though assignment failed. Associates a value with the specified identifier and returns true on success. Returns false if this method is called incorrectly or an exception is thrown. For read-only values this method will return true even though assignment failed. Registers an identifier and returns true on success. Access to the identifier will be forwarded to the CefV8Accessor instance passed to CefV8Value::CreateObject(). Returns false if this method is called incorrectly or an exception is thrown. For read-only values this method will return true even though assignment failed. Read the keys for the object's values into the specified vector. Integer- based keys will also be returned as strings. Read the keys for the object's values into the specified vector. Integer- based keys will also be returned as strings. Sets the user data for this object and returns true on success. Returns false if this method is called incorrectly. This method can only be called on user created objects. Returns the user data, if any, assigned to this object. Returns the amount of externally allocated memory registered for the object. Adjusts the amount of registered external memory for the object. Used to give V8 an indication of the amount of externally allocated memory that is kept alive by JavaScript objects. V8 uses this information to decide when to perform global garbage collection. Each CefV8Value tracks the amount of external memory associated with it and automatically decreases the global total by the appropriate amount on its destruction. |change_in_bytes| specifies the number of bytes to adjust by. This method returns the number of bytes associated with the object after the adjustment. This method can only be called on user created objects. ARRAY METHODS - These methods are only available on arrays. Returns the number of elements in the array. ARRAY BUFFER METHODS - These methods are only available on ArrayBuffers. Returns the ReleaseCallback object associated with the ArrayBuffer or NULL if the ArrayBuffer was not created with CreateArrayBuffer. Prevent the ArrayBuffer from using it's memory block by setting the length to zero. This operation cannot be undone. If the ArrayBuffer was created with CreateArrayBuffer then CefV8ArrayBufferReleaseCallback::ReleaseBuffer will be called to release the underlying buffer. FUNCTION METHODS - These methods are only available on functions. Returns the function name. Returns the function handler or NULL if not a CEF-created function. Execute the function using the current V8 context. This method should only be called from within the scope of a CefV8Handler or CefV8Accessor callback, or in combination with calling Enter() and Exit() on a stored CefV8Context reference. |object| is the receiver ('this' object) of the function. If |object| is empty the current context's global object will be used. |arguments| is the list of arguments that will be passed to the function. Returns the function return value on success. Returns NULL if this method is called incorrectly or an exception is thrown. Execute the function using the specified V8 context. |object| is the receiver ('this' object) of the function. If |object| is empty the specified context's global object will be used. |arguments| is the list of arguments that will be passed to the function. Returns the function return value on success. Returns NULL if this method is called incorrectly or an exception is thrown. Class that wraps other data value types. Complex types (binary, dictionary and list) will be referenced but not owned by this object. Can be used on any process and thread. Creates a new object. Returns true if the underlying data is valid. This will always be true for simple types. For complex types (binary, dictionary and list) the underlying data may become invalid if owned by another object (e.g. list or dictionary) and that other object is then modified or destroyed. This value object can be re-used by calling Set*() even if the underlying data is invalid. Returns true if the underlying data is owned by another object. Returns true if the underlying data is read-only. Some APIs may expose read-only objects. Returns true if this object and |that| object have the same underlying data. If true modifications to this object will also affect |that| object and vice-versa. Returns true if this object and |that| object have an equivalent underlying value but are not necessarily the same object. Returns a copy of this object. The underlying data will also be copied. Returns the underlying value type. Returns the underlying value as type bool. Returns the underlying value as type int. Returns the underlying value as type double. Returns the underlying value as type string. Returns the underlying value as type binary. The returned reference may become invalid if the value is owned by another object or if ownership is transferred to another object in the future. To maintain a reference to the value after assigning ownership to a dictionary or list pass this object to the SetValue() method instead of passing the returned reference to SetBinary(). Returns the underlying value as type dictionary. The returned reference may become invalid if the value is owned by another object or if ownership is transferred to another object in the future. To maintain a reference to the value after assigning ownership to a dictionary or list pass this object to the SetValue() method instead of passing the returned reference to SetDictionary(). Returns the underlying value as type list. The returned reference may become invalid if the value is owned by another object or if ownership is transferred to another object in the future. To maintain a reference to the value after assigning ownership to a dictionary or list pass this object to the SetValue() method instead of passing the returned reference to SetList(). Sets the underlying value as type null. Returns true if the value was set successfully. Sets the underlying value as type bool. Returns true if the value was set successfully. Sets the underlying value as type int. Returns true if the value was set successfully. Sets the underlying value as type double. Returns true if the value was set successfully. Sets the underlying value as type string. Returns true if the value was set successfully. Sets the underlying value as type binary. Returns true if the value was set successfully. This object keeps a reference to |value| and ownership of the underlying data remains unchanged. Sets the underlying value as type dict. Returns true if the value was set successfully. This object keeps a reference to |value| and ownership of the underlying data remains unchanged. Sets the underlying value as type list. Returns true if the value was set successfully. This object keeps a reference to |value| and ownership of the underlying data remains unchanged. Information about a specific web plugin. Returns the plugin name (i.e. Flash). Returns the plugin file path (DLL/bundle/library). Returns the version of the plugin (may be OS-specific). Returns a description of the plugin from the version information. Interface to implement for visiting web plugin information. The methods of this class will be called on the browser process UI thread. Method that will be called once for each plugin. |count| is the 0-based index for the current plugin. |total| is the total number of plugins. Return false to stop visiting plugins. This method may never be called if no plugins are found. Interface to implement for receiving unstable plugin information. The methods of this class will be called on the browser process IO thread. Method that will be called for the requested plugin. |unstable| will be true if the plugin has reached the crash count threshold of 3 times in 120 seconds. Interface the client can implement to provide a custom stream writer. The methods of this class may be called on any thread. Write raw binary data. Seek to the specified offset position. |whence| may be any one of SEEK_CUR, SEEK_END or SEEK_SET. Return zero on success and non-zero on failure. Return the current offset position. Flush the stream. Return true if this handler performs work like accessing the file system which may block. Used as a hint for determining the thread to access the handler from. Class representing a X.509 certificate. Returns the subject of the X.509 certificate. For HTTPS server certificates this represents the web server. The common name of the subject should match the host name of the web server. Returns the issuer of the X.509 certificate. Returns the DER encoded serial number for the X.509 certificate. The value possibly includes a leading 00 byte. Returns the date before which the X.509 certificate is invalid. CefTime.GetTimeT() will return 0 if no date was specified. Returns the date after which the X.509 certificate is invalid. CefTime.GetTimeT() will return 0 if no date was specified. Returns the DER encoded data for the X.509 certificate. Returns the PEM encoded data for the X.509 certificate. Returns the number of certificates in the issuer chain. If 0, the certificate is self-signed. Returns the DER encoded data for the certificate issuer chain. If we failed to encode a certificate in the chain it is still present in the array but is an empty string. Returns the PEM encoded data for the certificate issuer chain. If we failed to encode a certificate in the chain it is still present in the array but is an empty string. Class representing the issuer or subject field of an X.509 certificate. Returns a name that can be used to represent the issuer. It tries in this order: Common Name (CN), Organization Name (O) and Organizational Unit Name (OU) and returns the first non-empty one found. Returns the common name. Returns the locality name. Returns the state or province name. Returns the country name. Retrieve the list of street addresses. Retrieve the list of organization names. Retrieve the list of organization unit names. Retrieve the list of domain components. Class that supports the reading of XML data via the libxml streaming API. The methods of this class should only be called on the thread that creates the object. Create a new CefXmlReader object. The returned object's methods can only be called from the thread that created the object. Moves the cursor to the next node in the document. This method must be called at least once to set the current cursor position. Returns true if the cursor position was set successfully. Close the document. This should be called directly to ensure that cleanup occurs on the correct thread. Returns true if an error has been reported by the XML parser. Returns the error string. The below methods retrieve data for the node at the current cursor position. Returns the node type. Returns the node depth. Depth starts at 0 for the root node. Returns the local name. See http://www.w3.org/TR/REC-xml-names/#NT-LocalPart for additional details. Returns the namespace prefix. See http://www.w3.org/TR/REC-xml-names/ for additional details. Returns the qualified name, equal to (Prefix:)LocalName. See http://www.w3.org/TR/REC-xml-names/#ns-qualnames for additional details. Returns the URI defining the namespace associated with the node. See http://www.w3.org/TR/REC-xml-names/ for additional details. Returns the base URI of the node. See http://www.w3.org/TR/xmlbase/ for additional details. Returns the xml:lang scope within which the node resides. See http://www.w3.org/TR/REC-xml/#sec-lang-tag for additional details. Returns true if the node represents an empty element. is considered empty but is not. Returns true if the node has a text value. Returns the text value. Returns true if the node has attributes. Returns the number of attributes. Returns the value of the attribute at the specified 0-based index. Returns the value of the attribute with the specified qualified name. Returns the value of the attribute with the specified local name and namespace URI. Returns an XML representation of the current node's children. Returns an XML representation of the current node including its children. Returns the line number for the current node. Attribute nodes are not traversed by default. The below methods can be used to move the cursor to an attribute node. MoveToCarryingElement() can be called afterwards to return the cursor to the carrying element. The depth of an attribute node will be 1 + the depth of the carrying element. Moves the cursor to the attribute at the specified 0-based index. Returns true if the cursor position was set successfully. Moves the cursor to the attribute with the specified qualified name. Returns true if the cursor position was set successfully. Moves the cursor to the attribute with the specified local name and namespace URI. Returns true if the cursor position was set successfully. Moves the cursor to the first attribute in the current element. Returns true if the cursor position was set successfully. Moves the cursor to the next attribute in the current element. Returns true if the cursor position was set successfully. Moves the cursor back to the carrying element. Returns true if the cursor position was set successfully. Class that supports the reading of zip archives via the zlib unzip API. The methods of this class should only be called on the thread that creates the object. Create a new CefZipReader object. The returned object's methods can only be called from the thread that created the object. Moves the cursor to the first file in the archive. Returns true if the cursor position was set successfully. Moves the cursor to the next file in the archive. Returns true if the cursor position was set successfully. Moves the cursor to the specified file in the archive. If |caseSensitive| is true then the search will be case sensitive. Returns true if the cursor position was set successfully. Closes the archive. This should be called directly to ensure that cleanup occurs on the correct thread. The below methods act on the file at the current cursor position. Returns the name of the file. Returns the uncompressed size of the file. Returns the last modified timestamp for the file. Opens the file for reading of uncompressed data. A read password may optionally be specified. Closes the file. Read uncompressed file contents into the specified buffer. Returns < 0 if an error occurred, 0 if at the end of file, or the number of bytes read. Returns the current offset in the uncompressed file contents. Returns true if at end of the file contents. Describes how to interpret the alpha component of a pixel. No transparency. The alpha component is ignored. Transparency with pre-multiplied alpha component. Transparency with post-multiplied alpha component. Error codes for CDM registration. See cef_web_plugin.h for details. No error. Registration completed successfully. Required files or manifest contents are missing. The CDM is incompatible with the current Chromium version. CDM registration is not supported at this time. Supported certificate status code values. See net\cert\cert_status_flags.h for more information. CERT_STATUS_NONE is new in CEF because we use an enum while cert_status_flags.h uses a typedef and static const variables. Print job color mode values. Describes how to interpret the components of a pixel. RGBA with 8 bits per pixel (32bits total). BGRA with 8 bits per pixel (32bits total). Supported context menu edit state bit flags. Supported context menu media state bit flags. Supported context menu media types. No special node is in context. An image node is selected. A video node is selected. An audio node is selected. A file node is selected. A plugin node is selected. Supported context menu type flags. No node is selected. The top page is selected. A subframe page is selected. A link is selected. A media node is selected. There is a textual or mixed selection that is selected. An editable element is selected. CEF 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. Specifies where along the cross axis the CefBoxLayout child views should be laid out. Child views will be stretched to fit. Child views will be left-aligned. Child views will be center-aligned. Child views will be right-aligned. Cursor type values. DOM document types. DOM event category flags. DOM event processing phases. DOM node types. "Verb" of a drag-and-drop operation as negotiated between the source and destination. These constants match their equivalents in WebCore's DragActions.h and should not be renumbered. Print job duplex mode values. Supported error code values. An asynchronous IO operation is not yet complete. This usually does not indicate a fatal error. Typically this error will be generated as a notification to wait for some external notification that the IO operation finally completed. A generic failure occurred. An operation was aborted (due to user action). An argument to the function is incorrect. The handle or file descriptor is invalid. The file or directory cannot be found. An operation timed out. The file is too large. An unexpected error. This may be caused by a programming mistake or an invalid assumption. Permission to access a resource, other than the network, was denied. The operation failed because of unimplemented functionality. There were not enough resources to complete the operation. Memory allocation failed. The file upload failed because the file's modification time was different from the expectation. The socket is not connected. The file already exists. The path or file name is too long. Not enough room left on the disk. The file has a virus. The client chose to block the request. The network changed. The request was blocked by the URL block list configured by the domain administrator. The socket is already connected. The request was blocked because the forced reenrollment check is still pending. This error can only occur on ChromeOS. The error can be emitted by code in chrome/browser/policy/policy_helpers.cc. The upload failed because the upload stream needed to be re-read, due to a retry or a redirect, but the upload stream doesn't support that operation. The request failed because the URLRequestContext is shutting down, or has been shut down. The request failed because the response was delivered along with requirements which are not met ('X-Frame-Options' and 'Content-Security-Policy' ancestor checks and 'Cross-Origin-Resource-Policy', for instance). The request was blocked by system policy disallowing some or all cleartext requests. Used for NetworkSecurityPolicy on Android. A connection was closed (corresponding to a TCP FIN). A connection was reset (corresponding to a TCP RST). A connection attempt was refused. A connection timed out as a result of not receiving an ACK for data sent. This can include a FIN packet that did not get ACK'd. A connection attempt failed. The host name could not be resolved. The Internet connection has been lost. An SSL protocol error occurred. The IP address or port number is invalid (e.g., cannot connect to the IP address 0 or the port 0). The IP address is unreachable. This usually means that there is no route to the specified host or network. The server requested a client certificate for SSL client authentication. A tunnel connection through the proxy could not be established. No SSL protocol versions are enabled. The client and server don't support a common SSL protocol version or cipher suite. The server requested a renegotiation (rehandshake). The proxy requested authentication (for tunnel establishment) with an unsupported method. During SSL renegotiation (rehandshake), the server sent a certificate with an error. Note: this error is not in the -2xx range so that it won't be handled as a certificate error. The SSL handshake failed because of a bad or missing client certificate. A connection attempt timed out. There are too many pending DNS resolves, so a request in the queue was aborted. Failed establishing a connection to the SOCKS proxy server for a target host. The SOCKS proxy server failed establishing connection to the target host because that host is unreachable. The request to negotiate an alternate protocol failed. The peer sent an SSL no_renegotiation alert message. Winsock sometimes reports more data written than passed. This is probably due to a broken LSP. An SSL peer sent us a fatal decompression_failure alert. This typically occurs when a peer selects DEFLATE compression in the mistaken belief that it supports it. An SSL peer sent us a fatal bad_record_mac alert. This has been observed from servers with buggy DEFLATE support. The proxy requested authentication (for tunnel establishment). The SSL server attempted to use a weak ephemeral Diffie-Hellman key. Could not create a connection to the proxy server. An error occurred either in resolving its name, or in connecting a socket to it. Note that this does NOT include failures during the actual "CONNECT" method of an HTTP proxy. A mandatory proxy configuration could not be used. Currently this means that a mandatory PAC script could not be fetched, parsed or executed. We've hit the max socket limit for the socket pool while preconnecting. We don't bother trying to preconnect more sockets. The permission to use the SSL client certificate's private key was denied. The SSL client certificate has no private key. The certificate presented by the HTTPS Proxy was invalid. An error occurred when trying to do a name resolution (DNS). Permission to access the network was denied. This is used to distinguish errors that were most likely caused by a firewall from other access denied errors. See also ERR_ACCESS_DENIED. The request throttler module cancelled this request to avoid DDOS. A request to create an SSL tunnel connection through the HTTPS proxy received a 302 (temporary redirect) response. The response body might include a description of why the request failed. TODO(https://crbug.com/928551): This is deprecated and should not be used by new code. We were unable to sign the CertificateVerify data of an SSL client auth handshake with the client certificate's private key. Possible causes for this include the user implicitly or explicitly denying access to the private key, the private key may not be valid for signing, the key may be relying on a cached handle which is no longer valid, or the CSP won't allow arbitrary data to be signed. The message was too large for the transport. (for example a UDP message which exceeds size threshold). Websocket protocol error. Indicates that we are terminating the connection due to a malformed frame or other protocol violation. Returned when attempting to bind an address that is already in use. An operation failed because the SSL handshake has not completed. SSL peer's public key is invalid. The certificate didn't match the built-in public key pins for the host name. The pins are set in net/http/transport_security_state.cc and require that one of a set of public keys exist on the path from the leaf to the root. Server request for client certificate did not contain any types we support. An SSL peer sent us a fatal decrypt_error alert. This typically occurs when a peer could not correctly verify a signature (in CertificateVerify or ServerKeyExchange) or validate a Finished message. There are too many pending WebSocketJob instances, so the new job was not pushed to the queue. The SSL server certificate changed in a renegotiation. The SSL server sent us a fatal unrecognized_name alert. Failed to set the socket's receive buffer size as requested. Failed to set the socket's send buffer size as requested. Failed to set the socket's receive buffer size as requested, despite success return code from setsockopt. Failed to set the socket's send buffer size as requested, despite success return code from setsockopt. Failed to import a client certificate from the platform store into the SSL library. Resolving a hostname to an IP address list included the IPv4 address "127.0.53.53". This is a special IP address which ICANN has recommended to indicate there was a name collision, and alert admins to a potential problem. The SSL server presented a certificate which could not be decoded. This is not a certificate error code as no X509Certificate object is available. This error is fatal. Certificate Transparency: Received a signed tree head that failed to parse. Certificate Transparency: Received a signed tree head whose JSON parsing was OK but was missing some of the fields. The attempt to reuse a connection to send proxy auth credentials failed before the AuthController was used to generate credentials. The caller should reuse the controller with a new connection. This error is only used internally by the network stack. Certificate Transparency: Failed to parse the received consistency proof. The SSL server required an unsupported cipher suite that has since been removed. This error will temporarily be signaled on a fallback for one or two releases immediately following a cipher suite's removal, after which the fallback will be removed. When a WebSocket handshake is done successfully and the connection has been upgraded, the URLRequest is cancelled with this error code. Socket ReadIfReady support is not implemented. This error should not be user visible, because the normal Read() method is used as a fallback. No socket buffer space is available. There were no common signature algorithms between our client certificate private key and the server's preferences. TLS 1.3 early data was rejected by the server. This will be received before any data is returned from the socket. The request should be retried with early data disabled. TLS 1.3 early data was offered, but the server responded with TLS 1.2 or earlier. This is an internal error code to account for a backwards-compatibility issue with early data and TLS 1.2. It will be received before any data is returned from the socket. The request should be retried with early data disabled. See https://tools.ietf.org/html/rfc8446#appendix-D.3 for details. TLS 1.3 was enabled, but a lower version was negotiated and the server returned a value indicating it supported TLS 1.3. This is part of a security check in TLS 1.3, but it may also indicate the user is behind a buggy TLS-terminating proxy which implemented TLS 1.2 incorrectly. (See https://crbug.com/boringssl/226.) The server's certificate has a keyUsage extension incompatible with the negotiated TLS key exchange method. The server responded with a certificate whose common name did not match the host name. This could mean: 1. An attacker has redirected our traffic to their server and is presenting a certificate for which they know the private key. 2. The server is misconfigured and responding with the wrong cert. 3. The user is on a wireless network and is being redirected to the network's login page. 4. The OS has used a DNS search suffix and the server doesn't have a certificate for the abbreviated name in the address bar. The server responded with a certificate that, by our clock, appears to either not yet be valid or to have expired. This could mean: 1. An attacker is presenting an old certificate for which they have managed to obtain the private key. 2. The server is misconfigured and is not presenting a valid cert. 3. Our clock is wrong. The server responded with a certificate that is signed by an authority we don't trust. The could mean: 1. An attacker has substituted the real certificate for a cert that contains their public key and is signed by their cousin. 2. The server operator has a legitimate certificate from a CA we don't know about, but should trust. 3. The server is presenting a self-signed certificate, providing no defense against active attackers (but foiling passive attackers). The server responded with a certificate that contains errors. This error is not recoverable. MSDN describes this error as follows: "The SSL certificate contains errors." NOTE: It's unclear how this differs from ERR_CERT_INVALID. For consistency, use that code instead of this one from now on. The certificate has no mechanism for determining if it is revoked. In effect, this certificate cannot be revoked. Revocation information for the security certificate for this site is not available. This could mean: 1. An attacker has compromised the private key in the certificate and is blocking our attempt to find out that the cert was revoked. 2. The certificate is unrevoked, but the revocation server is busy or unavailable. The server responded with a certificate has been revoked. We have the capability to ignore this error, but it is probably not the thing to do. The server responded with a certificate that is invalid. This error is not recoverable. MSDN describes this error as follows: "The SSL certificate is invalid." The server responded with a certificate that is signed using a weak signature algorithm. The host name specified in the certificate is not unique. The server responded with a certificate that contains a weak key (e.g. a too-small RSA key). The certificate claimed DNS names that are in violation of name constraints. The certificate's validity period is too long. Certificate Transparency was required for this connection, but the server did not provide CT information that complied with the policy. The certificate chained to a legacy Symantec root that is no longer trusted. https://g.co/chrome/symantecpkicerts The certificate is known to be used for interception by an entity other the device owner. The URL is invalid. The scheme of the URL is disallowed. The scheme of the URL is unknown. Attempting to load an URL resulted in a redirect to an invalid URL. Attempting to load an URL resulted in too many redirects. Attempting to load an URL resulted in an unsafe redirect (e.g., a redirect to file:// is considered unsafe). Attempting to load an URL with an unsafe port number. These are port numbers that correspond to services, which are not robust to spurious input that may be constructed as a result of an allowed web construct (e.g., HTTP looks a lot like SMTP, so form submission to port 25 is denied). The server's response was invalid. Error in chunked transfer encoding. The server did not support the request method. The response was 407 (Proxy Authentication Required), yet we did not send the request to a proxy. The server closed the connection without sending any data. The headers section of the response is too large. The evaluation of the PAC script failed. The response was 416 (Requested range not satisfiable) and the server cannot satisfy the range requested. The identity used for authentication is invalid. Content decoding of the response body failed. An operation could not be completed because all network IO is suspended. FLIP data received without receiving a SYN_REPLY on the stream. Converting the response to target encoding failed. The server sent an FTP directory listing in a format we do not understand. There are no supported proxies in the provided list. There is an HTTP/2 protocol error. Credentials could not be established during HTTP Authentication. An HTTP Authentication scheme was tried which is not supported on this machine. Detecting the encoding of the response failed. (GSSAPI) No Kerberos credentials were available during HTTP Authentication. An unexpected, but documented, SSPI or GSSAPI status code was returned. The environment was not set up correctly for authentication (for example, no KDC could be found or the principal is unknown. An undocumented SSPI or GSSAPI status code was returned. The HTTP response was too big to drain. The HTTP response contained multiple distinct Content-Length headers. HTTP/2 headers have been received, but not all of them - status or version headers are missing, so we're expecting additional frames to complete them. No PAC URL configuration could be retrieved from DHCP. This can indicate either a failure to retrieve the DHCP configuration, or that there was no PAC URL configured in DHCP. The HTTP response contained multiple Content-Disposition headers. The HTTP response contained multiple Location headers. HTTP/2 server refused the request without processing, and sent either a GOAWAY frame with error code NO_ERROR and Last-Stream-ID lower than the stream id corresponding to the request indicating that this request has not been processed yet, or a RST_STREAM frame with error code REFUSED_STREAM. Client MAY retry (on a different connection). See RFC7540 Section 8.1.4. HTTP/2 server didn't respond to the PING message. The HTTP response body transferred fewer bytes than were advertised by the Content-Length header when the connection is closed. The HTTP response body is transferred with Chunked-Encoding, but the terminating zero-length chunk was never sent when the connection is closed. There is a QUIC protocol error. The HTTP headers were truncated by an EOF. The QUIC crytpo handshake failed. This means that the server was unable to read any requests sent, so they may be resent. Transport security is inadequate for the HTTP/2 version. The peer violated HTTP/2 flow control. The peer sent an improperly sized HTTP/2 frame. Decoding or encoding of compressed HTTP/2 headers failed. Proxy Auth Requested without a valid Client Socket Handle. HTTP_1_1_REQUIRED error code received on HTTP/2 session. HTTP_1_1_REQUIRED error code received on HTTP/2 session to proxy. The PAC script terminated fatally and must be reloaded. The server was expected to return an HTTP/1.x response, but did not. Rather than treat it as HTTP/0.9, this error is returned. Initializing content decoding failed. Received HTTP/2 RST_STREAM frame with NO_ERROR error code. This error should be handled internally by HTTP/2 code, and should not make it above the SpdyStream layer. The pushed stream claimed by the request is no longer available. A pushed stream was claimed and later reset by the server. When this happens, the request should be retried. An HTTP transaction was retried too many times due for authentication or invalid certificates. This may be due to a bug in the net stack that would otherwise infinite loop, or if the server or proxy continually requests fresh credentials or presents a fresh invalid certificate. Received an HTTP/2 frame on a closed stream. Client is refusing an HTTP/2 stream. A pushed HTTP/2 stream was claimed by a request based on matching URL and request headers, but the pushed response headers do not match the request. The server returned a non-2xx HTTP response code. Not that this error is only used by certain APIs that interpret the HTTP response itself. URLRequest for instance just passes most non-2xx response back as success. The certificate presented on a QUIC connection does not chain to a known root and the origin connected to is not on a list of domains where unknown roots are allowed. The cache does not have the requested entry. Unable to read from the disk cache. Unable to write to the disk cache. The operation is not supported for this entry. The disk cache is unable to open this entry. The disk cache is unable to create this entry. Multiple transactions are racing to create disk cache entries. This is an internal error returned from the HttpCache to the HttpCacheTransaction that tells the transaction to restart the entry-creation logic because the state of the cache has changed. The cache was unable to read a checksum record on an entry. This can be returned from attempts to read from the cache. It is an internal error, returned by the SimpleCache backend, but not by any URLRequest methods or members. The cache found an entry with an invalid checksum. This can be returned from attempts to read from the cache. It is an internal error, returned by the SimpleCache backend, but not by any URLRequest methods or members. Internal error code for the HTTP cache. The cache lock timeout has fired. Received a challenge after the transaction has read some data, and the credentials aren't available. There isn't a way to get them at that point. Internal not-quite error code for the HTTP cache. In-memory hints suggest that the cache entry would not have been useable with the transaction's current configuration (e.g. load flags, mode, etc.) The disk cache is unable to doom this entry. The disk cache is unable to open or create this entry. The server's response was insecure (e.g. there was a cert error). An attempt to import a client certificate failed, as the user's key database lacked a corresponding private key. An error adding a certificate to the OS certificate database. An error occurred while handling a signed exchange. An error occurred while handling a Web Bundle source. A generic error for failed FTP control connection command. If possible, please use or add a more specific error code. The server cannot fulfill the request at this point. This is a temporary error. FTP response code 421. The server has aborted the transfer. FTP response code 426. The file is busy, or some other temporary error condition on opening the file. FTP response code 450. Server rejected our command because of syntax errors. FTP response codes 500, 501. Server does not support the command we issued. FTP response codes 502, 504. Server rejected our command because we didn't issue the commands in right order. FTP response code 503. PKCS #12 import failed due to incorrect password. PKCS #12 import failed due to other error. CA import failed - not a CA cert. Import failed - certificate already exists in database. Note it's a little weird this is an error but reimporting a PKCS12 is ok (no-op). That's how Mozilla does it, though. CA import failed due to some other error. Server certificate import failed due to some internal error. PKCS #12 import failed due to invalid MAC. PKCS #12 import failed due to invalid/corrupt file. PKCS #12 import failed due to unsupported features. Key generation failed. Failure to export private key. Self-signed certificate generation failed. The certificate database changed in some way. DNS resolver received a malformed response. DNS server requires TCP DNS server failed. This error is returned for all of the following error conditions: 1 - Format error - The name server was unable to interpret the query. 2 - Server failure - The name server was unable to process this query due to a problem with the name server. 4 - Not Implemented - The name server does not support the requested kind of query. 5 - Refused - The name server refuses to perform the specified operation for policy reasons. DNS transaction timed out. The entry was not found in cache or other local sources, for lookups where only local sources were queried. TODO(ericorth): Consider renaming to DNS_LOCAL_MISS or something like that as the cache is not necessarily queried either. Suffix search list rules prevent resolution of the given host name. Failed to sort addresses according to RFC3484. Failed to resolve the hostname of a DNS-over-HTTPS server. Supported event bit flags. Mac OS-X command key. Supported file dialog modes. Requires that the file exists before allowing the user to pick it. Like Open, but allows picking multiple files to open. Like Open, but selects a folder to open. Allows picking a nonexistent file, and prompts to overwrite if the file already exists. General mask defining the bits used for the type values. Prompt to overwrite if the user selects an existing file with the Save dialog. Do not display read-only files. Focus sources. The source is explicit navigation via the API (LoadURL(), etc). The source is a system-generated focus event. Supported JavaScript dialog types. Error codes that can be returned from CefParseJSONAndReturnError. Options that can be passed to CefParseJSON. Parses the input strictly according to RFC 4627. See comments in Chromium's base/json/json_reader.h file for known limitations/deviations from the RFC. Allows commas to exist after the last element in structures. Options that can be passed to CefWriteJSON. Default behavior. This option instructs the writer that if a Binary value is encountered, the value (and key if within a dictionary) will be omitted from the output, and success will be returned. Otherwise, if a binary value is encountered, failure will be returned. This option instructs the writer to write doubles that have no fractional part as a normal integer (i.e., without using exponential notation or appending a '.0') as long as the value is within the range of a 64-bit int. Return a slightly nicer formatted json string (pads with whitespace to help with readability). Key event types. Notification that a key transitioned from "up" to "down". Notification that a key was pressed. This does not necessarily correspond to a character depending on the key and language. Use KEYEVENT_CHAR for character input. Notification that a key was released. Notification that a character was typed. Use this for text input. Key down events may generate 0, 1, or more than one character event depending on the key, locale, and operating system. Log severity levels. Default logging (currently INFO logging). Verbose logging. DEBUG logging. INFO logging. WARNING logging. ERROR logging. FATAL logging. Disable logging to file for all messages, and to stderr for messages with severity less than FATAL. Specifies where along the main axis the CefBoxLayout child views should be laid out. Child views will be left-aligned. Child views will be center-aligned. Child views will be right-aligned. Connection state for a MediaRoute object. Result codes for CefMediaRouter::CreateRoute. These constants match their equivalents in Chromium's route_request_result.h and should not be renumbered. Supported color types for menu items. Supported menu IDs. Non-English translations can be provided for the IDS_MENU_* strings in CefResourceBundleHandler::GetLocalizedString(). Supported menu item types. Mouse button types. Paint element types. Path key values. Current directory. Directory containing PK_FILE_EXE. Directory containing PK_FILE_MODULE. Temporary directory. Path and filename of the current executable. Path and filename of the module containing the CEF code (usually the libcef module). "Local Settings\Application Data" directory under the user profile directory on Windows. "Application Data" directory under the user profile directory on Windows and "~/Library/Application Support" directory on Mac OS X. Directory containing application resources. Can be configured via CefSettings.resources_dir_path. Margin type for PDF printing. Default margins. No margins. Minimum margins. Custom margins using the |margin_*| values from cef_pdf_print_settings_t. Plugin policies supported by CefRequestContextHandler::OnBeforePluginLoad. Allow the content. Allow important content and block unimportant content based on heuristics. The user can manually load blocked content. Block the content. The user can manually load blocked content. Disable the content. The user cannot load disabled content. The device type that caused the event. Post data elements may represent either bytes or files. Existing process IDs. Policy for how the Referrer HTTP header value will be sent during navigation. If the `--no-referrers` command-line flag is specified then the policy value will be ignored and the Referrer value will never be sent. Must be kept synchronized with net::URLRequest::ReferrerPolicy from Chromium. Clear the referrer header if the header value is HTTPS but the request destination is HTTP. This is the default behavior. Default policy (same as CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE). A slight variant on CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE: If the request destination is HTTP, an HTTPS referrer will be cleared. If the request's destination is cross-origin with the referrer (but does not downgrade), the referrer's granularity will be stripped down to an origin rather than a full URL. Same-origin requests will send the full referrer. Strip the referrer down to an origin when the origin of the referrer is different from the destination's origin. Never change the referrer. Strip the referrer down to the origin regardless of the redirect location. Clear the referrer when the request's referrer is cross-origin with the request's destination. Strip the referrer down to the origin, but clear it entirely if the referrer value is HTTPS and the destination is HTTP. Always clear the referrer regardless of the request destination. Resource type for a request. Top level page. Frame or iframe. CSS stylesheet. External script. Image (jpg/gif/png/etc). Font. Some other subresource. This is the default type if the actual type is unknown. Object (or embed) tag for a plugin, or a resource that a plugin requested. Media resource. Main resource of a dedicated worker. Main resource of a shared worker. Explicitly requested prefetch. Favicon. XMLHttpRequest. A request for a <ping>. Main resource of a service worker. A report of Content Security Policy violations. A resource that a plugin requested. Return values for CefResponseFilter::Filter(). Some or all of the pre-filter data was read successfully but more data is needed in order to continue filtering (filtered output is pending). Some or all of the pre-filter data was read successfully and all available filtered output has been written. An error occurred during filtering. Return value types. Cancel immediately. Continue immediately. Continue asynchronously (usually via a callback). Supported UI scale factors for the platform. SCALE_FACTOR_NONE is used for density independent resources such as string, html/js files or an image that can be used for any scale factors (such as wallpapers). Configuration options for registering a custom scheme. These values are used when calling AddCustomScheme. If CEF_SCHEME_OPTION_STANDARD is set the scheme will be treated as a standard scheme. Standard schemes are subject to URL canonicalization and parsing rules as defined in the Common Internet Scheme Syntax RFC 1738 Section 3.1 available at http://www.ietf.org/rfc/rfc1738.txt In particular, the syntax for standard scheme URLs must be of the form:
              [scheme]://[username]:[password]@[host]:[port]/[url-path]
             
Standard scheme URLs must have a host component that is a fully qualified domain name as defined in Section 3.5 of RFC 1034 [13] and Section 2.1 of RFC 1123. These URLs will be canonicalized to "scheme://host/path" in the simplest case and "scheme://username:password@host:port/path" in the most explicit case. For example, "scheme:host/path" and "scheme:///host/path" will both be canonicalized to "scheme://host/path". The origin of a standard scheme URL is the combination of scheme, host and port (i.e., "scheme://host:port" in the most explicit case). For non-standard scheme URLs only the "scheme:" component is parsed and canonicalized. The remainder of the URL will be passed to the handler as- is. For example, "scheme:///some%20text" will remain the same. Non-standard scheme URLs cannot be used as a target for form submission.
If CEF_SCHEME_OPTION_LOCAL is set the scheme will be treated with the same security rules as those applied to "file" URLs. Normal pages cannot link to or access local URLs. Also, by default, local URLs can only perform XMLHttpRequest calls to the same URL (origin + path) that originated the request. To allow XMLHttpRequest calls from a local URL to other URLs with the same origin set the CefSettings.file_access_from_file_urls_allowed value to true (1). To allow XMLHttpRequest calls from a local URL to all origins set the CefSettings.universal_access_from_file_urls_allowed value to true (1). If CEF_SCHEME_OPTION_DISPLAY_ISOLATED is set the scheme can only be displayed from other content hosted with the same scheme. For example, pages in other origins cannot create iframes or hyperlinks to URLs with the scheme. For schemes that must be accessible from other schemes don't set this, set CEF_SCHEME_OPTION_CORS_ENABLED, and use CORS "Access-Control-Allow-Origin" headers to further restrict access. If CEF_SCHEME_OPTION_SECURE is set the scheme will be treated with the same security rules as those applied to "https" URLs. For example, loading this scheme from other secure schemes will not trigger mixed content warnings. If CEF_SCHEME_OPTION_CORS_ENABLED is set the scheme can be sent CORS requests. This value should be set in most cases where CEF_SCHEME_OPTION_STANDARD is set. If CEF_SCHEME_OPTION_CSP_BYPASSING is set the scheme can bypass Content- Security-Policy (CSP) checks. This value should not be set in most cases where CEF_SCHEME_OPTION_STANDARD is set. If CEF_SCHEME_OPTION_FETCH_ENABLED is set the scheme can perform Fetch API requests. Supported SSL content status flags. See content/public/common/ssl_status.h for more information. Supported SSL version values. See net/ssl/ssl_connection_status_flags.h for more information. Unknown SSL version. Represents the state of a setting. Use the default state for the setting. Enable or allow the setting. Disable or disallow the setting. Storage types. Process termination status values. Non-zero exit status. SIGKILL or task manager kill. Segmentation fault. Out of memory. Some platforms may use TS_PROCESS_CRASHED instead. Input mode of a virtual keyboard. These constants match their equivalents in Chromium's text_input_mode.h and should not be renumbered. See https://html.spec.whatwg.org/#input-modalities:-the-inputmode-attribute Text style types. Should be kepy in sync with gfx::TextStyle. Existing thread IDs. The main thread in the browser. This will be the same as the main application thread if CefInitialize() is called with a CefSettings.multi_threaded_message_loop value of false. Do not perform blocking tasks on this thread. All tasks posted after CefBrowserProcessHandler::OnContextInitialized() and before CefShutdown() are guaranteed to run. This thread will outlive all other CEF threads. Used for blocking tasks (e.g. file system access) where the user won't notice if the task takes an arbitrarily long time to complete. All tasks posted after CefBrowserProcessHandler::OnContextInitialized() and before CefShutdown() are guaranteed to run. Used for blocking tasks (e.g. file system access) that affect UI or responsiveness of future user interactions. Do not use if an immediate response to a user interaction is expected. All tasks posted after CefBrowserProcessHandler::OnContextInitialized() and before CefShutdown() are guaranteed to run. Examples: - Updating the UI to reflect progress on a long task. - Loading data that might be shown in the UI after a future user interaction. Used for blocking tasks (e.g. file system access) that affect UI immediately after a user interaction. All tasks posted after CefBrowserProcessHandler::OnContextInitialized() and before CefShutdown() are guaranteed to run. Example: Generating data shown in the UI immediately after a click. Used to launch and terminate browser processes. Used to process IPC and network messages. Do not perform blocking tasks on this thread. All tasks posted after CefBrowserProcessHandler::OnContextInitialized() and before CefShutdown() are guaranteed to run. The main thread in the renderer. Used for all WebKit and V8 interaction. Tasks may be posted to this thread after CefRenderProcessHandler::OnRenderThreadCreated but are not guaranteed to run before sub-process termination (sub-processes may be killed at any time without warning). Touch points states types. Transition type for a request. Made up of one source value and 0 or more qualifiers. Source is a link click or the JavaScript window.open function. This is also the default value for requests like sub-resource loads that are not navigations. Source is some other "explicit" navigation. This is the default value for navigations where the actual type is unknown. See also TT_DIRECT_LOAD_FLAG. Source is a subframe navigation. This is any content that is automatically loaded in a non-toplevel frame. For example, if a page consists of several frames containing ads, those ad URLs will have this transition type. The user may not even realize the content in these pages is a separate frame, so may not care about the URL. Source is a subframe navigation explicitly requested by the user that will generate new navigation entries in the back/forward list. These are probably more important than frames that were automatically loaded in the background because the user probably cares about the fact that this link was loaded. Source is a form submission by the user. NOTE: In some situations submitting a form does not result in this transition type. This can happen if the form uses a script to submit the contents. Source is a "reload" of the page via the Reload function or by re-visiting the same URL. NOTE: This is distinct from the concept of whether a particular load uses "reload semantics" (i.e. bypasses cached data). General mask defining the bits used for the source values. Attempted to visit a URL but was blocked. Used the Forward or Back function to navigate among browsing history. Will be ORed to the transition type for the original load. Loaded a URL directly via CreateBrowser, LoadURL or LoadRequest. The beginning of a navigation chain. The last transition in a redirect chain. Redirects caused by JavaScript or a meta refresh tag on the page. Redirects sent from the server by HTTP headers. Used to test whether a transition involves a redirect. General mask defining the bits used for the qualifiers. URI unescape rules passed to CefURIDecode(). Don't unescape anything at all. Don't unescape anything special, but all normal unescaping will happen. This is a placeholder and can't be combined with other flags (since it's just the absence of them). All other unescape rules imply "normal" in addition to their special meaning. Things like escaped letters, digits, and most symbols will get unescaped with this mode. Convert %20 to spaces. In some places where we're showing URLs, we may want this. In places where the URL may be copied and pasted out, then you wouldn't want this since it might not be interpreted in one piece by other applications. Unescapes '/' and '\\'. If these characters were unescaped, the resulting URL won't be the same as the source one. Moreover, they are dangerous to unescape in strings that will be used as file paths or names. This value should only be used when slashes don't have special meaning, like data URLs. Unescapes various characters that will change the meaning of URLs, including '%', '+', '&', '#'. Does not unescape path separators. If these characters were unescaped, the resulting URL won't be the same as the source one. This flag is used when generating final output like filenames for URLs where we won't be interpreting as a URL and want to do as much unescaping as possible. URL queries use "+" for space. This flag controls that replacement. Flags used to customize the behavior of CefURLRequest. Default behavior. If set the cache will be skipped when handling the request. Setting this value is equivalent to specifying the "Cache-Control: no-cache" request header. Setting this value in combination with UR_FLAG_ONLY_FROM_CACHE will cause the request to fail. If set the request will fail if it cannot be served from the cache (or some equivalent local store). Setting this value is equivalent to specifying the "Cache-Control: only-if-cached" request header. Setting this value in combination with UR_FLAG_SKIP_CACHE or UR_FLAG_DISABLE_CACHE will cause the request to fail. If set the cache will not be used at all. Setting this value is equivalent to specifying the "Cache-Control: no-store" request header. Setting this value in combination with UR_FLAG_ONLY_FROM_CACHE will cause the request to fail. If set user name, password, and cookies may be sent with the request, and cookies may be saved from the response. If set upload progress events will be generated when a request has a body. If set the CefUrlRequestClient.OnDownloadData method will not be called. If set 5XX redirect errors will be propagated to the observer instead of automatically re-tried. This currently only applies for requests originated in the browser process. If set 3XX responses will cause the fetch to halt immediately rather than continue through the redirect. Unknown status. Request succeeded. An IO request is pending, and the caller will be informed when it is completed. Request was canceled programatically. Request failed for some reason. V8 access control values. V8 property attribute values. Supported value types. The manner in which a link click should be opened. These constants match their equivalents in Chromium's window_open_disposition.h and should not be renumbered. Supported XML encoding types. The parser supports ASCII, ISO-8859-1, and UTF16 (LE and BE) by default. All other types must be translated to UTF8 before being passed to the parser. If a BOM is detected and the correct decoder is available then that decoder will be used automatically. XML node types. It is sometimes necessary for the system to allocate string structures with the expectation that the user will free them. The userfree types act as a hint that the user is responsible for freeing the structure. cef_string_userfree* === cef_string_userfree_t. Window Styles. The following styles can be specified wherever a window style is required. After the control has been created, these styles cannot be modified, except as noted. The window has a thin-line border. The window has a title bar (includes the WS_BORDER style). The window is a child window. A window with this style cannot have a menu bar. This style cannot be used with the WS_POPUP style. Excludes the area occupied by child windows when drawing occurs within the parent window. This style is used when creating the parent window. Clips child windows relative to each other; that is, when a particular child window receives a WM_PAINT message, the WS_CLIPSIBLINGS style clips all other overlapping child windows out of the region of the child window to be updated. If WS_CLIPSIBLINGS is not specified and child windows overlap, it is possible, when drawing within the client area of a child window, to draw within the client area of a neighboring child window. The window is initially disabled. A disabled window cannot receive input from the user. To change this after a window has been created, use the EnableWindow function. The window has a border of a style typically used with dialog boxes. A window with this style cannot have a title bar. The window is the first control of a group of controls. The group consists of this first control and all controls defined after it, up to the next control with the WS_GROUP style. The first control in each group usually has the WS_TABSTOP style so that the user can move from group to group. The user can subsequently change the keyboard focus from one control in the group to the next control in the group by using the direction keys. You can turn this style on and off to change dialog box navigation. To change this style after a window has been created, use the SetWindowLong function. The window has a horizontal scroll bar. The window is initially maximized. The window has a maximize button. Cannot be combined with the WS_EX_CONTEXTHELP style. The WS_SYSMENU style must also be specified. The window is initially minimized. The window has a minimize button. Cannot be combined with the WS_EX_CONTEXTHELP style. The WS_SYSMENU style must also be specified. The window is an overlapped window. An overlapped window has a title bar and a border. The window is an overlapped window. The window is a pop-up window. This style cannot be used with the WS_CHILD style. The window is a pop-up window. The WS_CAPTION and WS_POPUPWINDOW styles must be combined to make the window menu visible. The window has a sizing border. The window has a window menu on its title bar. The WS_CAPTION style must also be specified. The window is a control that can receive the keyboard focus when the user presses the TAB key. Pressing the TAB key changes the keyboard focus to the next control with the WS_TABSTOP style. You can turn this style on and off to change dialog box navigation. To change this style after a window has been created, use the SetWindowLong function. For user-created windows and modeless dialogs to work with tab stops, alter the message loop to call the IsDialogMessage function. The window is initially visible. This style can be turned on and off by using the ShowWindow or SetWindowPos function. The window has a vertical scroll bar. Specifies that a window created with this style accepts drag-drop files. Forces a top-level window onto the taskbar when the window is visible. Specifies that a window has a border with a sunken edge. Windows XP: Paints all descendants of a window in bottom-to-top painting order using double-buffering. For more information, see Remarks. This cannot be used if the window has a class style of either CS_OWNDC or CS_CLASSDC. Includes a question mark in the title bar of the window. When the user clicks the question mark, the cursor changes to a question mark with a pointer. If the user then clicks a child window, the child receives a WM_HELP message. The child window should pass the message to the parent window procedure, which should call the WinHelp function using the HELP_WM_HELP command. The Help application displays a pop-up window that typically contains help for the child window. WS_EX_CONTEXTHELP cannot be used with the WS_MAXIMIZEBOX or WS_MINIMIZEBOX styles. The window itself contains child windows that should take part in dialog box navigation. If this style is specified, the dialog manager recurses into children of this window when performing navigation operations such as handling the TAB key, an arrow key, or a keyboard mnemonic. Creates a window that has a double border; the window can, optionally, be created with a title bar by specifying the WS_CAPTION style in the dwStyle parameter. Windows 2000/XP: Creates a layered window. Note that this cannot be used for child windows. Also, this cannot be used if the window has a class style of either CS_OWNDC or CS_CLASSDC. Arabic and Hebrew versions of Windows 98/Me, Windows 2000/XP: Creates a window whose horizontal origin is on the right edge. Increasing horizontal values advance to the left. Creates a window that has generic left-aligned properties. This is the default. If the shell language is Hebrew, Arabic, or another language that supports reading order alignment, the vertical scroll bar (if present) is to the left of the client area. For other languages, the style is ignored. The window text is displayed using left-to-right reading-order properties. This is the default. Creates a multiple-document interface (MDI) child window. Windows 2000/XP: A top-level window created with this style does not become the foreground window when the user clicks it. The system does not bring this window to the foreground when the user minimizes or closes the foreground window. To activate the window, use the SetActiveWindow or SetForegroundWindow function. The window does not appear on the taskbar by default. To force the window to appear on the taskbar, use the WS_EX_APPWINDOW style. Windows 2000/XP: A window created with this style does not pass its window layout to its child windows. Specifies that a child window created with this style does not send the WM_PARENTNOTIFY message to its parent window when it is created or destroyed. Combines the WS_EX_CLIENTEDGE and WS_EX_WINDOWEDGE styles. Combines the WS_EX_WINDOWEDGE, WS_EX_TOOLWINDOW, and WS_EX_TOPMOST styles. The window has generic "right-aligned" properties. This depends on the window class. This style has an effect only if the shell language is Hebrew, Arabic, or another language that supports reading-order alignment; otherwise, the style is ignored. Using the WS_EX_RIGHT style for static or edit controls has the same effect as using the SS_RIGHT or ES_RIGHT style, respectively. Using this style with button controls has the same effect as using BS_RIGHT and BS_RIGHTBUTTON styles. Vertical scroll bar (if present) is to the right of the client area. This is the default. If the shell language is Hebrew, Arabic, or another language that supports reading-order alignment, the window text is displayed using right-to-left reading-order properties. For other languages, the style is ignored. Creates a window with a three-dimensional border style intended to be used for items that do not accept user input. Creates a tool window; that is, a window intended to be used as a floating toolbar. A tool window has a title bar that is shorter than a normal title bar, and the window title is drawn using a smaller font. A tool window does not appear in the taskbar or in the dialog that appears when the user presses ALT+TAB. If a tool window has a system menu, its icon is not displayed on the title bar. However, you can display the system menu by right-clicking or by typing ALT+SPACE. Specifies that a window created with this style should be placed above all non-topmost windows and should stay above them, even when the window is deactivated. To add or remove this style, use the SetWindowPos function. Specifies that a window created with this style should not be painted until siblings beneath the window (that were created by the same thread) have been painted. The window appears transparent because the bits of underlying sibling windows have already been painted. To achieve transparency without these restrictions, use the SetWindowRgn function. Specifies that a window has a border with a raised edge. Browser initialization settings. Specify null or 0 to get the recommended default values. The consequences of using custom values may not be well tested. Many of these and other settings can also configured using command- line switches. The maximum rate in frames per second (fps) that CefRenderHandler::OnPaint will be called for a windowless browser. The actual fps may be lower if the browser cannot generate frames at the requested rate. The minimum value is 1 and the maximum value is 60 (default 30). This value can also be changed dynamically via CefBrowserHost::SetWindowlessFrameRate. Default encoding for Web content. If empty "ISO-8859-1" will be used. Also configurable using the "default-encoding" command-line switch. Controls the loading of fonts from remote sources. Also configurable using the "disable-remote-fonts" command-line switch. Controls whether JavaScript can be executed. Also configurable using the "disable-javascript" command-line switch. Controls whether JavaScript can be used to close windows that were not opened via JavaScript. JavaScript can still be used to close windows that were opened via JavaScript or that have no back/forward history. Also configurable using the "disable-javascript-close-windows" command-line switch. Controls whether JavaScript can access the clipboard. Also configurable using the "disable-javascript-access-clipboard" command-line switch. Controls whether DOM pasting is supported in the editor via execCommand("paste"). The |javascript_access_clipboard| setting must also be enabled. Also configurable using the "disable-javascript-dom-paste" command-line switch. Controls whether any plugins will be loaded. Also configurable using the "disable-plugins" command-line switch. Controls whether file URLs will have access to all URLs. Also configurable using the "allow-universal-access-from-files" command-line switch. Controls whether file URLs will have access to other file URLs. Also configurable using the "allow-access-from-files" command-line switch. Controls whether web security restrictions (same-origin policy) will be enforced. Disabling this setting is not recommend as it will allow risky security behavior such as cross-site scripting (XSS). Also configurable using the "disable-web-security" command-line switch. Controls whether image URLs will be loaded from the network. A cached image will still be rendered if requested. Also configurable using the "disable-image-loading" command-line switch. Controls whether standalone images will be shrunk to fit the page. Also configurable using the "image-shrink-standalone-to-fit" command-line switch. Controls whether text areas can be resized. Also configurable using the "disable-text-area-resize" command-line switch. Controls whether the tab key can advance focus to links. Also configurable using the "disable-tab-to-links" command-line switch. Controls whether local storage can be used. Also configurable using the "disable-local-storage" command-line switch. Controls whether databases can be used. Also configurable using the "disable-databases" command-line switch. Controls whether the application cache can be used. Also configurable using the "disable-application-cache" command-line switch. Controls whether WebGL can be used. Note that WebGL requires hardware support and may not work on all systems even when enabled. Also configurable using the "disable-webgl" command-line switch. 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 CefSettings.background_color value will be used. If the alpha component is fully transparent for a windowless (off-screen) browser then transparent painting will be enabled. Comma delimited ordered list of language codes without any whitespace that will be used in the "Accept-Language" HTTP header. May be set globally using the CefBrowserSettings.accept_language_list value. If both values are empty then "en-US,en" will be used. Structure representing IME composition underline information. This is a thin wrapper around Blink's WebCompositionUnderline class and should be kept in sync with that. Underline character range. Text color. Background color. Set to true (1) for thick underline. Structure representing cursor information. |buffer| will be |size.width|*|size.height|*4 bytes in size and represents a BGRA image with an upper-left origin. The type of keyboard event. Bit flags describing any pressed modifier keys. See cef_event_flags_t for values. The Windows key code for the key event. This value is used by the DOM specification. Sometimes it comes directly from the event (i.e. on Windows) and sometimes it's determined using a mapping function. See WebCore/platform/chromium/KeyboardCodes.h for the list of values. The actual key code genenerated by the platform. Indicates whether the event is considered a "system key" event (see http://msdn.microsoft.com/en-us/library/ms646286(VS.85).aspx for details). This value will always be false on non-Windows platforms. The character generated by the keystroke. Same as |character| but unmodified by any concurrently-held modifiers (except shift). This is useful for working out shortcut keys. True if the focus is currently on an editable field on the page. This is useful for determining if standard key events should be intercepted. Structure representing mouse event information. Page title to display in the header. Only used if |header_footer_enabled| is set to true (1). URL to display in the footer. Only used if |header_footer_enabled| is set to true (1). Output page size in microns. If either of these values is less than or equal to zero then the default paper size (A4) will be used. The percentage to scale the PDF by before printing (e.g. 50 is 50%). If this value is less than or equal to zero the default value of 100 will be used. Margins in millimeters. Only used if |margin_type| is set to PDF_PRINT_MARGIN_CUSTOM. Margin type. Set to true (1) to print headers and footers or false (0) to not print headers and footers. Set to true (1) to print the selection only or false (0) to print all. Set to true (1) for landscape mode or false (0) for portrait mode. Set to true (1) to print background graphics or false (0) to not print background graphics. Request context initialization settings. Specify NULL or 0 to get the recommended default values. The location where cache data for this request context will be stored on disk. If non-empty this must be either equal to or a child directory of CefSettings.root_cache_path. If empty then browsers will be created in "incognito mode" where in-memory caches are used for storage and no data is persisted to disk. HTML5 databases such as localStorage will only persist across sessions if a cache path is specified. To share the global browser cache and related configuration set this value to match the CefSettings.cache_path value. 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. Can be set globally using the CefSettings.persist_session_cookies value. This value will be ignored if |cache_path| is empty or if it matches the CefSettings.cache_path value. To persist user preferences as a JSON file in the cache path directory set this value to true (1). Can be set globally using the CefSettings.persist_user_preferences value. This value will be ignored if |cache_path| is empty or if it matches the CefSettings.cache_path value. 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. Can be set globally using the CefSettings.ignore_certificate_errors value. This value will be ignored if |cache_path| matches the CefSettings.cache_path value. Comma delimited ordered list of language codes without any whitespace that will be used in the "Accept-Language" HTTP header. Can be set globally using the CefSettings.accept_language_list value or overridden on a per- browser basis using the CefBrowserSettings.accept_language_list value. If all values are empty then "en-US,en" will be used. This value will be ignored if |cache_path| matches the CefSettings.cache_path value. Screen information used when window rendering is disabled. This structure is passed as a parameter to CefRenderHandler::GetScreenInfo and should be filled in by the client. Device scale factor. Specifies the ratio between physical and logical pixels. The screen depth in bits per pixel. The bits per color component. This assumes that the colors are balanced equally. This can be true for black and white printers. This is set from the rcMonitor member of MONITORINFOEX, to whit: "A RECT structure that specifies the display monitor rectangle, expressed in virtual-screen coordinates. Note that if the monitor is not the primary display monitor, some of the rectangle's coordinates may be negative values." The |rect| and |available_rect| properties are used to determine the available surface for rendering popup views. This is set from the rcWork member of MONITORINFOEX, to whit: "A RECT structure that specifies the work area rectangle of the display monitor that can be used by applications, expressed in virtual-screen coordinates. Windows uses this rectangle to maximize an application on the monitor. The rest of the area in rcMonitor contains system windows such as the task bar and side bars. Note that if the monitor is not the primary display monitor, some of the rectangle's coordinates may be negative values". The |rect| and |available_rect| properties are used to determine the available surface for rendering popup views. 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. Set to true 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. 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. Also configurable using the "browser-subprocess-path" command-line switch. 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. Also configurable using the "framework-dir-path" command-line switch. The path to the main bundle on macOS. If this value is empty then it defaults to the top-level app bundle. Also configurable using the "main-bundle-path" command-line switch. Set to true to have the browser process message loop run in a separate thread. If false than the CefDoMessageLoopWork() function must be called from your application message loop. This option is only supported on Windows and Linux. Set to true 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. 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. Set to true 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. The location where data for the global browser cache will be stored on disk. If non-empty this must be either equal to or a child directory of CefSettings.root_cache_path. If empty then browsers will be created in "incognito mode" where in-memory caches are used for storage and no data is persisted to disk. 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. The root directory that all CefSettings.cache_path and CefRequestContextSettings.cache_path values must have in common. If this value is empty and CefSettings.cache_path is non-empty then this value will default to the CefSettings.cache_path value. Failure to set this value correctly may result in the sandbox blocking read/write access to the cache_path directory. The location where user data such as spell checking dictionary files will be stored on disk. If empty then the default platform-specific user data directory will be used ("~/.cef_user_data" directory on Linux, "~/Library/Application Support/CEF/User Data" directory on Mac OS X, "Local Settings\Application Data\CEF\User Data" directory under the user profile directory on Windows). 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. Can be overridden for individual CefRequestContext instances via the CefRequestContextSettings.persist_session_cookies value. To persist user preferences as a JSON file in the cache path directory set this value to true. 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. 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. 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. 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. 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 Mac OS X 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. 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". 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. 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. 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 resource directory. Also configurable using the "locales-dir-path" command-line switch. Set to true 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. 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. 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. 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. Can be overridden for individual CefRequestContext instances via the CefRequestContextSettings.ignore_certificate_errors value. 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. Comma delimited ordered list of language codes without any whitespace that will be used in the "Accept-Language" HTTP header. May be overridden on a per-browser basis using the CefBrowserSettings.accept_language_list value. If both values are empty then "en-US,en" will be used. Can be overridden for individual CefRequestContext instances via the CefRequestContextSettings.accept_language_list value. GUID string used for identifying the application. This is passed to the system AV function for scanning downloaded files. By default, the GUID will be an empty string and the file will be treated as an untrusted file when the GUID is empty. Structure representing touch event information. Id of a touch point. Must be unique per touch, can be any number except -1. Note that a maximum of 16 concurrent touches will be tracked; touches beyond that will be ignored. X coordinate relative to the left side of the view. Y coordinate relative to the top side of the view. X radius in pixels. Set to 0 if not applicable. Y radius in pixels. Set to 0 if not applicable. Rotation angle in radians. Set to 0 if not applicable. The normalized pressure of the pointer input in the range of [0,1]. Set to 0 if not applicable. The state of the touch point. Touches begin with one CEF_TET_PRESSED event followed by zero or more CEF_TET_MOVED events and finally one CEF_TET_RELEASED or CEF_TET_CANCELLED event. Events not respecting this order will be ignored. Bit flags describing any pressed modifier keys. See cef_event_flags_t for values. The device type that caused the event. URL component parts. The complete URL specification. Scheme component not including the colon (e.g., "http"). User name component. Password component. Host component. This may be a hostname, an IPv4 address or an IPv6 literal surrounded by square brackets (e.g., "[2001:db8::1]"). Port number component. Origin contains just the scheme, host, and port from a URL. Equivalent to clearing any username and password, replacing the path with a slash, and clearing everything after that. This value will be empty for non-standard URLs. Path component including the first slash following the host. Query string component (i.e., everything following the '?'). Class representing window information. Meanings for handles: Platform Description Windows Window handle (HWND) Mac OS X NSView pointer for the parent view (NSView*) Linux Pointer for the new browser widget (GtkWidget*) Handle for the parent window. Handle for the new browser window. Set to true (1) to create the browser using windowless (off-screen) rendering. No window will be created for the browser and all rendering will occur via the CefRenderHandler interface. The |parent_window| value will be used to identify monitor info and to act as the parent window for dialogs, context menus, etc. If |parent_window| is not provided then the main screen monitor will be used and some functionality that requires a parent window may not function correctly. In order to create windowless browsers the CefSettings.windowless_rendering_enabled value must be set to true. Transparent painting is enabled by default but can be disabled by setting CefBrowserSettings.background_color to an opaque value. Set to true to enable shared textures for windowless rendering. Only valid if windowless_rendering_enabled above is also set to true. Currently only supported on Windows (D3D11). Set to true to enable the ability to issue BeginFrame requests from the client application by calling CefBrowserHost::SendExternalBeginFrame. Implements the browser side of query routing. The methods of this class may be called on any browser process thread unless otherwise indicated. Callback associated with a single pending asynchronous query. Execute the Success or Failure method to send an asynchronous response to the associated JavaScript handler. It is a runtime error to destroy a Callback object associated with an uncanceled query without first executing one of the callback methods. The methods of this class may be called on any browser process thread. Notify the associated JavaScript onSuccess callback that the query has completed successfully with the specified |response|. Notify the associated JavaScript onFailure callback that the query has failed with the specified |error_code| and |error_message|. Implement this interface to handle queries. All methods will be executed on the browser process UI thread. Executed when a new query is received. |query_id| uniquely identifies the query for the life span of the router. Return true to handle the query or false to propagate the query to other registered handlers, if any. If no handlers return true from this method then the query will be automatically canceled with an error code of -1 delivered to the JavaScript onFailure callback. If this method returns true then a Callback method must be executed either in this method or asynchronously to complete the query. Executed when a query has been canceled either explicitly using the JavaScript cancel function or implicitly due to browser destruction, navigation or renderer process termination. It will only be called for the single handler that returned true from OnQuery for the same |query_id|. No references to the associated Callback object should be kept after this method is called, nor should any Callback methods be executed. Create a new router with the specified configuration. Create a new router with the specified configuration. Add a new query handler. If |first| is true it will be added as the first handler, otherwise it will be added as the last handler. Returns true if the handler is added successfully or false if the handler has already been added. Must be called on the browser process UI thread. The Handler object must either outlive the router or be removed before deletion. Remove an existing query handler. Any pending queries associated with the handler will be canceled. Handler::OnQueryCanceled will be called and the associated JavaScript onFailure callback will be executed with an error code of -1. Returns true if the handler is removed successfully or false if the handler is not found. Must be called on the browser process UI thread. Cancel all pending queries associated with either |browser| or |handler|. If both |browser| and |handler| are NULL all pending queries will be canceled. Handler::OnQueryCanceled will be called and the associated JavaScript onFailure callback will be executed in all cases with an error code of -1. Returns the number of queries currently pending for the specified |browser| and/or |handler|. Either or both values may be empty. Must be called on the browser process UI thread. Call from CefLifeSpanHandler::OnBeforeClose. Any pending queries associated with |browser| will be canceled and Handler::OnQueryCanceled will be called. No JavaScript callbacks will be executed since this indicates destruction of the browser. Call from CefRequestHandler::OnRenderProcessTerminated. Any pending queries associated with |browser| will be canceled and Handler::OnQueryCanceled will be called. No JavaScript callbacks will be executed since this indicates destruction of the context. Call from CefRequestHandler::OnBeforeBrowse only if the navigation is allowed to proceed. If |frame| is the main frame then any pending queries associated with |browser| will be canceled and Handler::OnQueryCanceled will be called. No JavaScript callbacks will be executed since this indicates destruction of the context. Call from CefClient::OnProcessMessageReceived. Returns true if the message is handled by this router or false otherwise. Used to configure the query router. The same values must be passed to both CefMessageRouterBrowserSide and CefMessageRouterRendererSide. If using multiple router pairs make sure to choose values that do not conflict. Name of the JavaScript function that will be added to the 'window' object for sending a query. The default value is "cefQuery". Name of the JavaScript function that will be added to the 'window' object for canceling a pending query. The default value is "cefQueryCancel". Implements the renderer side of query routing. The methods of this class must be called on the render process main thread. Create a new router with the specified configuration. Create a new router with the specified configuration. Returns the number of queries currently pending for the specified |browser| and/or |context|. Either or both values may be empty. Call from CefRenderProcessHandler::OnContextCreated. Registers the JavaScripts functions with the new context. Call from CefRenderProcessHandler::OnContextReleased. Any pending queries associated with the released context will be canceled and Handler::OnQueryCanceled will be called in the browser process. Call from CefRenderProcessHandler::OnProcessMessageReceived. Returns true if the message is handled by this router or false otherwise. Convenience extension methods for re-coloring instances of . Provides guard clauses. Guards against a null argument. The type of the argument. Name of the parameter. The argument. is null. is restricted to reference types to avoid boxing of value type objects. Guards against a null argument if can be null. The type of the argument. Name of the parameter. The argument. is null. Performs a type check to avoid boxing of value type objects. Guards against a null argument property value. The type of the property. Name of the parameter. Name of the property. The argument property. is null. is restricted to reference types to avoid boxing of value type objects. Guards against a null argument property value if can be null. The type of the property. Name of the parameter. Name of the property. The argument property. is null. Performs a type check to avoid boxing of value type objects. Determines whether the specified type is a nullable type. The type. true if the specified type is a nullable type; otherwise, false. When applied to a parameter, this attribute provides an indication to code analysis that the argument has been null checked. Convenience extension methods for coloring instances of . Parses the text changing the colors based on color tokens @COLOR@ in the string. Example: "@BLUE@This is Blue @RED@This is Red @GREEN@This is Green @WHITE@Etc.". The text. The initial color. The color token delimiter (defaults to '@'). Parsed ColorTokens array (always non-null). Checks if requested API is available in the give library that exist on the machine library name function name return 'true' if given procName available in the installed libName(dll) The primary screen's (device) current DPI Transforms a horizontal or vertical integer coordinate from logical to device units by scaling it up for current DPI and rounding to nearest integer value value in logical units value in logical units value in device units Tries to compare two DPIawareness context values. Return true if they were equal. Return false when they are not equal or underlying OS does not support this API. true/false Tries to get thread dpi awareness context returns thread dpi awareness context if API is available in this version of OS. otherwise, return IntPtr.Zero. Tries to set thread dpi awareness context returns old thread dpi awareness context if API is available in this version of OS. otherwise, return IntPtr.Zero. Tries to get window dpi awareness context returns window dpi awareness context if API is available in this version of OS. otherwise, return DpiAwarenessContext.DPI_AWARENESS_CONTEXT_UNSPECIFIED. Lock bitmap data Unlock bitmap data Get the color of the specified pixel Set the color of the specified pixel ShowWindow function of USER32 ShowWindow function of USER32 ShowWindow function of USER32 The services requested. This member can be a combination of the following values. The caller wants to cancel a prior tracking request. The caller should also specify the type of tracking that it wants to cancel. For example, to cancel hover tracking, the caller must pass the TME_CANCEL and TME_HOVER flags. The caller wants hover notification. Notification is delivered as a WM_MOUSEHOVER message. If the caller requests hover tracking while hover tracking is already active, the hover timer will be reset. This flag is ignored if the mouse pointer is not over the specified window or area. The caller wants leave notification. Notification is delivered as a WM_MOUSELEAVE message. If the mouse is not over the specified window or area, a leave notification is generated immediately and no further tracking is performed. The caller wants hover and leave notification for the nonclient areas. Notification is delivered as WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages. The function fills in the structure instead of treating it as a tracking request. The structure is filled such that had that structure been passed to TrackMouseEvent, it would generate the current tracking. The only anomaly is that the hover time-out returned is always the actual time-out and not HOVER_DEFAULT, if HOVER_DEFAULT was specified during the original TrackMouseEvent request. The flags that specify how the system arranged minimized windows. For more information, see the Remarks section in this topic. The value that specifies how the system is started: 0 Normal boot 1 Fail-safe boot 2 Fail-safe with network boot A fail-safe boot (also called SafeBoot, Safe Mode, or Clean Boot) bypasses the user startup files. The number of display monitors on a desktop. For more information, see the Remarks section in this topic. The number of buttons on a mouse, or zero if no mouse is installed. The width of a window border, in pixels. This is equivalent to the SM_CXEDGE value for windows with the 3-D look. The width of a cursor, in pixels. The system cannot create cursors of other sizes. This value is the same as SM_CXFIXEDFRAME. The width of the rectangle around the location of a first click in a double-click sequence, in pixels. , The second click must occur within the rectangle that is defined by SM_CXDOUBLECLK and SM_CYDOUBLECLK for the system to consider the two clicks a double-click. The two clicks must also occur within a specified time. To set the width of the double-click rectangle, call SystemParametersInfo with SPI_SETDOUBLECLKWIDTH. The number of pixels on either side of a mouse-down point that the mouse pointer can move before a drag operation begins. This allows the user to click and release the mouse button easily without unintentionally starting a drag operation. If this value is negative, it is subtracted from the left of the mouse-down point and added to the right of it. The width of a 3-D border, in pixels. This metric is the 3-D counterpart of SM_CXBORDER. The thickness of the frame around the perimeter of a window that has a caption but is not sizable, in pixels. SM_CXFIXEDFRAME is the height of the horizontal border, and SM_CYFIXEDFRAME is the width of the vertical border. This value is the same as SM_CXDLGFRAME. The width of the left and right edges of the focus rectangle that the DrawFocusRectdraws. This value is in pixels. Windows 2000: This value is not supported. This value is the same as SM_CXSIZEFRAME. The width of the client area for a full-screen window on the primary display monitor, in pixels. To get the coordinates of the portion of the screen that is not obscured by the system taskbar or by application desktop toolbars, call the SystemParametersInfofunction with the SPI_GETWORKAREA value. The width of the arrow bitmap on a horizontal scroll bar, in pixels. The width of the thumb box in a horizontal scroll bar, in pixels. The default width of an icon, in pixels. The LoadIcon function can load only icons with the dimensions that SM_CXICON and SM_CYICON specifies. The width of a grid cell for items in large icon view, in pixels. Each item fits into a rectangle of size SM_CXICONSPACING by SM_CYICONSPACING when arranged. This value is always greater than or equal to SM_CXICON. The default width, in pixels, of a maximized top-level window on the primary display monitor. The default maximum width of a window that has a caption and sizing borders, in pixels. This metric refers to the entire desktop. The user cannot drag the window frame to a size larger than these dimensions. A window can override this value by processing the WM_GETMINMAXINFO message. The width of the default menu check-mark bitmap, in pixels. The width of menu bar buttons, such as the child window close button that is used in the multiple document interface, in pixels. The minimum width of a window, in pixels. The width of a minimized window, in pixels. The width of a grid cell for a minimized window, in pixels. Each minimized window fits into a rectangle this size when arranged. This value is always greater than or equal to SM_CXMINIMIZED. The minimum tracking width of a window, in pixels. The user cannot drag the window frame to a size smaller than these dimensions. A window can override this value by processing the WM_GETMINMAXINFO message. The amount of border padding for captioned windows, in pixels. Windows XP/2000: This value is not supported. The width of the screen of the primary display monitor, in pixels. This is the same value obtained by calling GetDeviceCaps as follows: GetDeviceCaps( hdcPrimaryMonitor, HORZRES). The width of a button in a window caption or title bar, in pixels. The thickness of the sizing border around the perimeter of a window that can be resized, in pixels. SM_CXSIZEFRAME is the width of the horizontal border, and SM_CYSIZEFRAME is the height of the vertical border. This value is the same as SM_CXFRAME. The recommended width of a small icon, in pixels. Small icons typically appear in window captions and in small icon view. The width of small caption buttons, in pixels. The width of the virtual screen, in pixels. The virtual screen is the bounding rectangle of all display monitors. The SM_XVIRTUALSCREEN metric is the coordinates for the left side of the virtual screen. The width of a vertical scroll bar, in pixels. The height of a window border, in pixels. This is equivalent to the SM_CYEDGE value for windows with the 3-D look. The height of a caption area, in pixels. The height of a cursor, in pixels. The system cannot create cursors of other sizes. This value is the same as SM_CYFIXEDFRAME. The height of the rectangle around the location of a first click in a double-click sequence, in pixels. The second click must occur within the rectangle defined by SM_CXDOUBLECLK and SM_CYDOUBLECLK for the system to consider the two clicks a double-click. The two clicks must also occur within a specified time. To set the height of the double-click rectangle, call SystemParametersInfo with SPI_SETDOUBLECLKHEIGHT. The number of pixels above and below a mouse-down point that the mouse pointer can move before a drag operation begins. This allows the user to click and release the mouse button easily without unintentionally starting a drag operation. If this value is negative, it is subtracted from above the mouse-down point and added below it. The height of a 3-D border, in pixels. This is the 3-D counterpart of SM_CYBORDER. The thickness of the frame around the perimeter of a window that has a caption but is not sizable, in pixels. SM_CXFIXEDFRAME is the height of the horizontal border, and SM_CYFIXEDFRAME is the width of the vertical border. This value is the same as SM_CYDLGFRAME. The height of the top and bottom edges of the focus rectangle drawn byDrawFocusRect. This value is in pixels. Windows 2000: This value is not supported. This value is the same as SM_CYSIZEFRAME. The height of the client area for a full-screen window on the primary display monitor, in pixels. To get the coordinates of the portion of the screen not obscured by the system taskbar or by application desktop toolbars, call the SystemParametersInfo function with the SPI_GETWORKAREA value. The height of a horizontal scroll bar, in pixels. The default height of an icon, in pixels. The LoadIcon function can load only icons with the dimensions SM_CXICON and SM_CYICON. The height of a grid cell for items in large icon view, in pixels. Each item fits into a rectangle of size SM_CXICONSPACING by SM_CYICONSPACING when arranged. This value is always greater than or equal to SM_CYICON. For double byte character set versions of the system, this is the height of the Kanji window at the bottom of the screen, in pixels. The default height, in pixels, of a maximized top-level window on the primary display monitor. The default maximum height of a window that has a caption and sizing borders, in pixels. This metric refers to the entire desktop. The user cannot drag the window frame to a size larger than these dimensions. A window can override this value by processing the WM_GETMINMAXINFO message. The height of a single-line menu bar, in pixels. The height of the default menu check-mark bitmap, in pixels. The height of menu bar buttons, such as the child window close button that is used in the multiple document interface, in pixels. The minimum height of a window, in pixels. The height of a minimized window, in pixels. The height of a grid cell for a minimized window, in pixels. Each minimized window fits into a rectangle this size when arranged. This value is always greater than or equal to SM_CYMINIMIZED. The minimum tracking height of a window, in pixels. The user cannot drag the window frame to a size smaller than these dimensions. A window can override this value by processing the WM_GETMINMAXINFO message. The height of the screen of the primary display monitor, in pixels. This is the same value obtained by calling GetDeviceCaps as follows: GetDeviceCaps( hdcPrimaryMonitor, VERTRES). The height of a button in a window caption or title bar, in pixels. The thickness of the sizing border around the perimeter of a window that can be resized, in pixels. SM_CXSIZEFRAME is the width of the horizontal border, and SM_CYSIZEFRAME is the height of the vertical border. This value is the same as SM_CYFRAME. The height of a small caption, in pixels. The recommended height of a small icon, in pixels. Small icons typically appear in window captions and in small icon view. The height of small caption buttons, in pixels. The height of the virtual screen, in pixels. The virtual screen is the bounding rectangle of all display monitors. The SM_YVIRTUALSCREEN metric is the coordinates for the top of the virtual screen. The height of the arrow bitmap on a vertical scroll bar, in pixels. The height of the thumb box in a vertical scroll bar, in pixels. Nonzero if User32.dll supports DBCS; otherwise, 0. Nonzero if the debug version of User.exe is installed; otherwise, 0. Nonzero if the current operating system is Windows 7 or Windows Server 2008 R2 and the Tablet PC Input service is started; otherwise, 0. The return value is a bitmask that specifies the type of digitizer input supported by the device. For more information, see Remarks. Windows Server 2008, Windows Vista, and Windows XP/2000: This value is not supported. Nonzero if Input Method Manager/Input Method Editor features are enabled; otherwise, 0. SM_IMMENABLED indicates whether the system is ready to use a Unicode-based IME on a Unicode application. To ensure that a language-dependent IME works, check SM_DBCSENABLED and the system ANSI code page. Otherwise the ANSI-to-Unicode conversion may not be performed correctly, or some components like fonts or registry settings may not be present. Nonzero if there are digitizers in the system; otherwise, 0. SM_MAXIMUMTOUCHES returns the aggregate maximum of the maximum number of contacts supported by every digitizer in the system. If the system has only single-touch digitizers, the return value is 1. If the system has multi-touch digitizers, the return value is the number of simultaneous contacts the hardware can provide. Windows Server 2008, Windows Vista, and Windows XP/2000: This value is not supported. Nonzero if the current operating system is the Windows XP, Media Center Edition, 0 if not. Nonzero if drop-down menus are right-aligned with the corresponding menu-bar item; 0 if the menus are left-aligned. Nonzero if the system is enabled for Hebrew and Arabic languages, 0 if not. Nonzero if a mouse is installed; otherwise, 0. This value is rarely zero, because of support for virtual mice and because some systems detect the presence of the port instead of the presence of a mouse. Nonzero if a mouse with a horizontal scroll wheel is installed; otherwise 0. Nonzero if a mouse with a vertical scroll wheel is installed; otherwise 0. The least significant bit is set if a network is present; otherwise, it is cleared. The other bits are reserved for future use. Nonzero if the Microsoft Windows for Pen computing extensions are installed; zero otherwise. This system metric is used in a Terminal Services environment to determine if the current Terminal Server session is being remotely controlled. Its value is nonzero if the current session is remotely controlled; otherwise, 0. You can use terminal services management tools such as Terminal Services Manager (tsadmin.msc) and shadow.exe to control a remote session. When a session is being remotely controlled, another user can view the contents of that session and potentially interact with it. This system metric is used in a Terminal Services environment. If the calling process is associated with a Terminal Services client session, the return value is nonzero. If the calling process is associated with the Terminal Services console session, the return value is 0. Windows Server 2003 and Windows XP: The console session is not necessarily the physical console. For more information, seeWTSGetActiveConsoleSessionId. Nonzero if all the display monitors have the same color format, otherwise, 0. Two displays can have the same bit depth, but different color formats. For example, the red, green, and blue pixels can be encoded with different numbers of bits, or those bits can be located in different places in a pixel color value. This system metric should be ignored; it always returns 0. The build number if the system is Windows Server 2003 R2; otherwise, 0. Nonzero if the user requires an application to present information visually in situations where it would otherwise present the information only in audible form; otherwise, 0. Nonzero if the current session is shutting down; otherwise, 0. Windows 2000: This value is not supported. Nonzero if the computer has a low-end (slow) processor; otherwise, 0. Nonzero if the current operating system is Windows 7 Starter Edition, Windows Vista Starter, or Windows XP Starter Edition; otherwise, 0. Nonzero if the meanings of the left and right mouse buttons are swapped; otherwise, 0. Nonzero if the current operating system is the Windows XP Tablet PC edition or if the current operating system is Windows Vista or Windows 7 and the Tablet PC Input service is started; otherwise, 0. The SM_DIGITIZER setting indicates the type of digitizer input supported by a device running Windows 7 or Windows Server 2008 R2. For more information, see Remarks. The coordinates for the left side of the virtual screen. The virtual screen is the bounding rectangle of all display monitors. The SM_CXVIRTUALSCREEN metric is the width of the virtual screen. The coordinates for the top of the virtual screen. The virtual screen is the bounding rectangle of all display monitors. The SM_CYVIRTUALSCREEN metric is the height of the virtual screen. BlendOp field of structure BlendFlags field of structure SourceConstantAlpha field of structure AlphaFormat field of structure x field of structure y field of structure Specified WS_EX_DLGMODALFRAME enumeration value. Specified WS_EX_NOPARENTNOTIFY enumeration value. Specified WS_EX_NOACTIVATE enumeration value. Specified WS_EX_TOPMOST enumeration value. Specified WS_EX_ACCEPTFILES enumeration value. Specified WS_EX_TRANSPARENT enumeration value. Specified WS_EX_MDICHILD enumeration value. Specified WS_EX_TOOLWINDOW enumeration value. Specified WS_EX_WINDOWEDGE enumeration value. Specified WS_EX_CLIENTEDGE enumeration value. Specified WS_EX_CONTEXTHELP enumeration value. Specified WS_EX_RIGHT enumeration value. Specified WS_EX_LEFT enumeration value. Specified WS_EX_RTLREADING enumeration value. Specified WS_EX_LTRREADING enumeration value. Specified WS_EX_LEFTSCROLLBAR enumeration value. Specified WS_EX_RIGHTSCROLLBAR enumeration value. Specified WS_EX_CONTROLPARENT enumeration value. Specified WS_EX_STATICEDGE enumeration value. Specified WS_EX_APPWINDOW enumeration value. Specified WS_EX_OVERLAPPEDWINDOW enumeration value. Specified WS_EX_PALETTEWINDOW enumeration value. Specified WS_EX_LAYERED enumeration value. Specified GWL_WNDPROC enumeration value. Specified GWL_HINSTANCE enumeration value. Specified GWL_HWNDPARENT enumeration value. Specified GWL_STYLE enumeration value. Specified GWL_EXSTYLE enumeration value. Specified GWL_USERDATA enumeration value. Specified GWL_ID enumeration value. left field of structure top field of structure right field of structure bottom field of structure cx field of structure cy field of structure Specified SW_HIDE enumeration value. Specified SW_SHOWNORMAL enumeration value. Specified SW_NORMAL enumeration value. Specified SW_SHOWMINIMIZED enumeration value. Specified SW_SHOWMAXIMIZED enumeration value. Specified SW_MAXIMIZE enumeration value. Specified SW_SHOWNOACTIVATE enumeration value. Specified SW_SHOW enumeration value. Specified SW_MINIMIZE enumeration value. Specified SW_SHOWMINNOACTIVE enumeration value. Specified SW_SHOWNA enumeration value. Specified SW_RESTORE enumeration value. Specified SW_SHOWDEFAULT enumeration value. Specified SW_FORCEMINIMIZE enumeration value. Specified SW_MAX enumeration value. Contains the new coordinates of a window that has been moved or resized, that is, it is the proposed new window coordinates. Contains the coordinates of the window before it was moved or resized. Contains the coordinates of the window's client area before the window was moved or resized. Pointer to a WINDOWPOS structure that contains the size and position values specified in the operation that moved or resized the window. Device driver version Device classification Horizontal size in millimeters Vertical size in millimeters Horizontal width in pixels Vertical height in pixels Number of bits per pixel Number of planes Number of brushes the device has Number of pens the device has Number of markers the device has Number of fonts the device has Number of colors the device supports Size required for device descriptor Curve capabilities Line capabilities Polygonal capabilities Text capabilities Clipping capabilities Bitblt capabilities Length of the X leg Length of the Y leg Length of the hypotenuse Shading and Blending caps Logical pixels inch in X Logical pixels inch in Y Number of entries in physical palette Number of reserved entries in palette Actual color resolution Physical Width in device units Physical Height in device units Physical Printable Area x margin Physical Printable Area y margin Scaling factor x Scaling factor y Current vertical refresh rate of the display device (for displays only) in Hz Vertical height of entire desktop in pixels Horizontal width of entire desktop in pixels Preferred blt alignment Specified WM_NULL enumeration value. Specified WM_CREATE enumeration value. Specified WM_DESTROY enumeration value. Specified WM_MOVE enumeration value. Specified WM_SIZE enumeration value. Specified WM_ACTIVATE enumeration value. Specified WM_SETFOCUS enumeration value. Specified WM_KILLFOCUS enumeration value. Specified WM_ENABLE enumeration value. Specified WM_SETREDRAW enumeration value. Specified WM_SETTEXT enumeration value. Specified WM_GETTEXT enumeration value. Specified WM_GETTEXTLENGTH enumeration value. Specified WM_PAINT enumeration value. Specified WM_CLOSE enumeration value. Specified WM_QUERYENDSESSION enumeration value. Specified WM_QUIT enumeration value. Specified WM_QUERYOPEN enumeration value. Specified WM_ERASEBKGND enumeration value. Specified WM_SYSCOLORCHANGE enumeration value. Specified WM_ENDSESSION enumeration value. Specified WM_SHOWWINDOW enumeration value. Specified WM_WININICHANGE enumeration value. Specified WM_SETTINGCHANGE enumeration value. Specified WM_DEVMODECHANGE enumeration value. Specified WM_ACTIVATEAPP enumeration value. Specified WM_FONTCHANGE enumeration value. Specified WM_TIMECHANGE enumeration value. Specified WM_CANCELMODE enumeration value. Specified WM_SETCURSOR enumeration value. Specified WM_MOUSEACTIVATE enumeration value. Specified WM_CHILDACTIVATE enumeration value. Specified WM_QUEUESYNC enumeration value. Specified WM_GETMINMAXINFO enumeration value. Specified WM_PAINTICON enumeration value. Specified WM_ICONERASEBKGND enumeration value. Specified WM_NEXTDLGCTL enumeration value. Specified WM_SPOOLERSTATUS enumeration value. Specified WM_DRAWITEM enumeration value. Specified WM_MEASUREITEM enumeration value. Specified WM_DELETEITEM enumeration value. Specified WM_VKEYTOITEM enumeration value. Specified WM_CHARTOITEM enumeration value. Specified WM_SETFONT enumeration value. Specified WM_GETFONT enumeration value. Specified WM_SETHOTKEY enumeration value. Specified WM_GETHOTKEY enumeration value. Specified WM_QUERYDRAGICON enumeration value. Specified WM_COMPAREITEM enumeration value. Specified WM_GETOBJECT enumeration value. Specified WM_COMPACTING enumeration value. Specified WM_COMMNOTIFY enumeration value. Specified WM_WINDOWPOSCHANGING enumeration value. Specified WM_WINDOWPOSCHANGED enumeration value. Specified WM_POWER enumeration value. Specified WM_COPYDATA enumeration value. Specified WM_CANCELJOURNAL enumeration value. Specified WM_NOTIFY enumeration value. Specified WM_INPUTLANGCHANGEREQUEST enumeration value. Specified WM_INPUTLANGCHANGE enumeration value. Specified WM_TCARD enumeration value. Specified WM_HELP enumeration value. Specified WM_USERCHANGED enumeration value. Specified WM_NOTIFYFORMAT enumeration value. Specified WM_CONTEXTMENU enumeration value. Specified WM_STYLECHANGING enumeration value. Specified WM_STYLECHANGED enumeration value. Specified WM_DISPLAYCHANGE enumeration value. Specified WM_GETICON enumeration value. Specified WM_SETICON enumeration value. Specified WM_NCCREATE enumeration value. Specified VK_RMENU enumeration value. Specified WM_NCCALCSIZE enumeration value. Specified WM_NCHITTEST enumeration value. Specified WM_NCPAINT enumeration value. Specified WM_NCACTIVATE enumeration value. Specified WM_GETDLGCODE enumeration value. Specified WM_SYNCPAINT enumeration value. Specified WM_NCMOUSEMOVE enumeration value. Specified WM_NCLBUTTONDOWN enumeration value. Specified WM_NCLBUTTONUP enumeration value. Specified WM_NCLBUTTONDBLCLK enumeration value. Specified WM_NCRBUTTONDOWN enumeration value. Specified WM_NCRBUTTONUP enumeration value. Specified WM_NCRBUTTONDBLCLK enumeration value. Specified WM_NCMBUTTONDOWN enumeration value. Specified WM_NCMBUTTONUP enumeration value. Specified WM_NCMBUTTONDBLCLK enumeration value. Specified WM_NCXBUTTONDOWN enumeration value. Specified WM_NCXBUTTONUP enumeration value. Specified WM_KEYDOWN enumeration value. Specified WM_KEYUP enumeration value. Specified WM_CHAR enumeration value. Specified WM_DEADCHAR enumeration value. Specified WM_SYSKEYDOWN enumeration value. Specified WM_SYSKEYUP enumeration value. Specified WM_SYSCHAR enumeration value. Specified WM_SYSDEADCHAR enumeration value. Specified WM_KEYLAST enumeration value. Specified WM_IME_STARTCOMPOSITION enumeration value. Specified WM_IME_ENDCOMPOSITION enumeration value. Specified WM_IME_COMPOSITION enumeration value. Specified WM_IME_KEYLAST enumeration value. Specified WM_INITDIALOG enumeration value. Specified WM_COMMAND enumeration value. Specified WM_SYSCOMMAND enumeration value. Specified WM_TIMER enumeration value. Specified WM_HSCROLL enumeration value. Specified WM_VSCROLL enumeration value. Specified WM_INITMENU enumeration value. Specified WM_INITMENUPOPUP enumeration value. Specified WM_MENUSELECT enumeration value. Specified WM_MENUCHAR enumeration value. Specified WM_ENTERIDLE enumeration value. Specified WM_MENURBUTTONUP enumeration value. Specified WM_MENUDRAG enumeration value. Specified WM_MENUGETOBJECT enumeration value. Specified WM_UNINITMENUPOPUP enumeration value. Specified WM_MENUCOMMAND enumeration value. Specified WM_CTLCOLORMSGBOX enumeration value. Specified WM_CTLCOLOREDIT enumeration value. Specified WM_CTLCOLORLISTBOX enumeration value. Specified WM_CTLCOLORBTN enumeration value. Specified WM_CTLCOLORDLG enumeration value. Specified WM_CTLCOLORSCROLLBAR enumeration value. Specified WM_CTLCOLORSTATIC enumeration value. Specified WM_MOUSEMOVE enumeration value. Specified WM_LBUTTONDOWN enumeration value. Specified WM_LBUTTONUP enumeration value. Specified WM_LBUTTONDBLCLK enumeration value. Specified WM_RBUTTONDOWN enumeration value. Specified WM_RBUTTONUP enumeration value. Specified WM_RBUTTONDBLCLK enumeration value. Specified WM_MBUTTONDOWN enumeration value. Specified WM_MBUTTONUP enumeration value. Specified WM_MBUTTONDBLCLK enumeration value. Specified WM_MOUSEWHEEL enumeration value. Specified WM_XBUTTONDOWN enumeration value. Specified WM_XBUTTONUP enumeration value. Specified WM_XBUTTONDBLCLK enumeration value. Specified WM_PARENTNOTIFY enumeration value. Specified WM_ENTERMENULOOP enumeration value. Specified WM_EXITMENULOOP enumeration value. Specified WM_NEXTMENU enumeration value. Specified WM_SIZING enumeration value. Specified WM_CAPTURECHANGED enumeration value. Specified WM_MOVING enumeration value. Specified WM_DEVICECHANGE enumeration value. Specified WM_MDICREATE enumeration value. Specified WM_MDIDESTROY enumeration value. Specified WM_MDIACTIVATE enumeration value. Specified WM_MDIRESTORE enumeration value. Specified WM_MDINEXT enumeration value. Specified WM_MDIMAXIMIZE enumeration value. Specified WM_MDITILE enumeration value. Specified WM_MDICASCADE enumeration value. Specified WM_MDIICONARRANGE enumeration value. Specified WM_MDIGETACTIVE enumeration value. Specified WM_MDISETMENU enumeration value. Specified WM_ENTERSIZEMOVE enumeration value. Specified WM_EXITSIZEMOVE enumeration value. Specified WM_DROPFILES enumeration value. Specified WM_MDIREFRESHMENU enumeration value. Specified WM_IME_SETCONTEXT enumeration value. Specified WM_IME_NOTIFY enumeration value. Specified WM_IME_CONTROL enumeration value. Specified WM_IME_COMPOSITIONFULL enumeration value. Specified WM_IME_SELECT enumeration value. Specified WM_IME_CHAR enumeration value. Specified WM_IME_REQUEST enumeration value. Specified WM_IME_KEYDOWN enumeration value. Specified WM_IME_KEYUP enumeration value. Specified WM_MOUSEHOVER enumeration value. Specified WM_MOUSELEAVE enumeration value. Specified WM_CUT enumeration value. Specified WM_COPY enumeration value. Specified WM_PASTE enumeration value. Specified WM_CLEAR enumeration value. Specified WM_UNDO enumeration value. Specified WM_RENDERFORMAT enumeration value. Specified WM_RENDERALLFORMATS enumeration value. Specified WM_DESTROYCLIPBOARD enumeration value. Specified WM_DRAWCLIPBOARD enumeration value. Specified WM_PAINTCLIPBOARD enumeration value. Specified WM_VSCROLLCLIPBOARD enumeration value. Specified WM_SIZECLIPBOARD enumeration value. Specified WM_ASKCBFORMATNAME enumeration value. Specified WM_CHANGECBCHAIN enumeration value. Specified WM_HSCROLLCLIPBOARD enumeration value. Specified WM_QUERYNEWPALETTE enumeration value. Specified WM_PALETTEISCHANGING enumeration value. Specified WM_PALETTECHANGED enumeration value. Specified WM_HOTKEY enumeration value. Specified WM_PRINT enumeration value. Specified WM_PRINTCLIENT enumeration value. Specified WM_HANDHELDFIRST enumeration value. Specified WM_HANDHELDLAST enumeration value. Specified WM_AFXFIRST enumeration value. Specified WM_AFXLAST enumeration value. Specified WM_PENWINFIRST enumeration value. Specified WM_PENWINLAST enumeration value. Specified WM_APP enumeration value. Specified WM_USER enumeration value. Specified WM_THEMECHANGED enumeration value.