Cef3 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 used to integrate the CEF message loop into an existing application message loop. Care must be taken to balance performance against excessive 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 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. Request a one-time geolocation update. This function bypasses any user permission checks so should only be used by code that is allowed to access location information. 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. 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 |string| which represents a CSS color value. If |strict| is true strict parsing rules will be applied. Returns true on success or false on error. If parsing succeeds |color| will be set to the color value otherwise |color| will remain unchanged. 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. Add a plugin path (directory + file). This change may not take affect until after CefRefreshWebPlugins() is called. Can be called on any thread in the browser process. Add a plugin directory. This change may not take affect until after CefRefreshWebPlugins() is called. Can be called on any thread in the browser process. Remove a plugin path (directory + file). This change may not take affect until after CefRefreshWebPlugins() is called. 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. Force a plugin to shutdown. Can be called on any thread in the browser process but will be executed on the IO thread. 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. 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.) 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. 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. Send a message to the specified |target_process|. Returns true if the message was sent successfully. 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. 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. 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. Set whether the browser is focused. Set whether the window containing the browser is visible (minimized/unminimized, app hidden/unhidden, etc). Only used on Mac OS X. Retrieve the window handle for this browser. Retrieve the window handle of the browser that opened this browser. Will return NULL for non-popup windows. This method can be used in combination with custom handling of modal windows. 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. 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| can be used to have multiple searches running simultaniously. |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 in its own window. If |inspect_element_at| is non- empty the element at the specified (x,y) location will be inspected. Explicitly close the developer tools window if one exists for this browser instance. 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. 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 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. Get the NSTextInputContext implementation for enabling IME on Mac when window rendering is disabled. Handles a keyDown event prior to passing it through the NSTextInputClient machinery. Performs any additional actions after NSTextInputClient handles the event. 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. 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. 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 geolocation permissions requests. If no handler is provided geolocation access will be denied by default. 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 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 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. 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 IO thread after the manager's storage has been initialized. Using this method is equivalent to calling CefRequestContext::GetGlobalContext()->GetDefaultCookieManager(). Creates a new cookie manager. If |path| is empty data will be stored in memory only. Otherwise, data will be stored at the specified |path|. To persist session cookies (cookies without an expiry date or validity interval) set |persist_session_cookies| to true. Session cookies are generally intended to be transient and most Web browsers do not persist them. If |callback| is non-NULL it will be executed asnychronously on the IO thread after the manager's storage has been initialized. Set the schemes supported by this manager. The default schemes ("http", "https", "ws" and "wss") will always be supported. If |callback| is non- NULL it will be executed asnychronously on the IO thread after the change has been applied. Must be called before any cookies are accessed. Visit all cookies on the IO 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 IO 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 IO 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 IO 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. Sets the directory path that will be used for storing cookie data. If |path| is empty data will be stored in memory only. Otherwise, data will be stored at the specified |path|. To persist session cookies (cookies without an expiry date or validity interval) set |persist_session_cookies| to true. Session cookies are generally intended to be transient and most Web browsers do not persist them. If |callback| is non-NULL it will be executed asnychronously on the IO thread after the manager's storage has been initialized. Returns false if cookies cannot be accessed. Flush the backing store (if any) to disk. If |callback| is non-NULL it will be executed asnychronously on the IO 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 IO 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 or -1 if unknown. 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. 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. 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. 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. 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|. 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. Load the specified |url|. Load the contents of |string_val| with the specified dummy |url|. |url| should have a standard scheme (for example, http scheme) or behaviors like link clicks and web security restrictions may not behave as expected. 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. 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. Callback interface used for asynchronous continuation of geolocation permission requests. Call to allow or deny geolocation access. Implement this interface to handle events related to geolocation permission requests. The methods of this class will be called on the browser process UI thread. Called when a page requests permission to access geolocation information. |requesting_url| is the URL requesting permission and |request_id| is the unique ID for the permission request. Return true and call CefGeolocationCallback::Continue() either in this method or at a later time to continue or cancel the request. Return false to cancel the request immediately. Called when a geolocation access request is canceled. |requesting_url| is the URL that originally requested permission and |request_id| is the unique ID for the permission request. Implement this interface to receive geolocation updates. The methods of this class will be called on the browser process UI thread. Called with the 'best available' location information or, if the location update failed, with error information. 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. 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 IO 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. Called after a new browser is created. Called when a modal window is about to display and the modal loop should begin running. Return false to use the default modal loop implementation or true to use a custom implementation. 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 a top-level OS window created by CEF and the user attempts to close the window. This method will be called after the JavaScript 'onunload' event has been fired. It will not be called for browsers after the associated OS window has been destroyed (for those browsers it is no longer possible to cancel the close). If CEF created an OS window for the browser returning false will send an OS close notification to the browser window's top-level owner (e.g. WM_CLOSE on Windows, performClose: on OS-X and "delete_event" on Linux). If no OS window exists (window rendering disabled) returning false will cause the browser object to be destroyed immediately. Return true if the browser is parented to another window and that other window needs to receive close notification via some non-standard technique. If an application provides its own top-level window it should handle OS close notifications by calling CefBrowserHost::CloseBrowser(false) instead of immediately closing (see the example below). This gives CEF an opportunity to process the 'onbeforeunload' event and optionally cancel the close before DoClose() is called. The CefLifeSpanHandler::OnBeforeClose() method will be called immediately before the browser object is destroyed. The application should only exit after OnBeforeClose() has been called for all existing browsers. If the browser represents a modal window and a custom modal loop implementation was provided in CefLifeSpanHandler::RunModal() this callback should be used to restore the opener window to a usable state. By way of example consider what should happen during window close when the browser is parented to an application-provided top-level OS window. 1. User clicks the window close button which sends an OS close notification (e.g. WM_CLOSE on Windows, performClose: on OS-X and "delete_event" on Linux). 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 OS close notification. 8. Application's top-level window receives the OS close notification and allows the window to close based on the flag from #6B. 9. Browser OS window is destroyed. 10. Application's CefLifeSpanHandler::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 after this callback returns. If this is a modal window and a custom modal loop implementation was provided in RunModal() this callback should be used to exit the custom modal loop. 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. Called when the browser begins 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 may not be called for a particular frame if the load request for that frame fails. 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 always be called for all frames irrespective of whether the request completes successfully. Called when the resource load for a navigation fails or is canceled. |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. 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. 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. 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. 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 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. The methods of this class will be called on the browser process UI thread. 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. Returns a writable copy of this object. 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 handle events when window rendering is disabled. The methods of this class will be called on the UI thread. Called to retrieve the root window rectangle in screen coordinates. Return true if the rectangle was provided. Called to retrieve the view rectangle which is relative to screen coordinates. Return true if the rectangle was provided. 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. 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 scroll offset has changed. 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. Called before a browser is destroyed. Return the handler for browser load status events. Called 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. 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. Get the post data. Get the header values. Set the header values. 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 CefWebURLRequest. 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 CefRequestHandler 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 default cookie manager for this object. This will be the global cookie manager if this object is the global request context. Otherwise, this will be the default cookie manager used when this request context does not receive a value via CefRequestContextHandler::GetCookieManager(). 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. 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 IO thread to retrieve the cookie manager. If this method returns NULL the default cookie manager retrievable via CefRequestContext::GetDefaultCookieManager() will be used. 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. 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 IO thread before a resource request is loaded. The |request| object may be modified. 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. To allow the resource to load normally return NULL. To specify a handler for the resource return a CefResourceHandler object. The |request| object should not be modified in this callback. Called on the IO thread when a resource load is redirected. The |request| parameter will contain the old URL and other request-related information. The |new_url| parameter will contain the new URL and can be changed if desired. The |request| object cannot be modified in this callback. Called on the IO thread when a resource response is received. To allow the resource to load normally return false. To redirect or retry the resource modify |request| (url, headers or post body) and return true. The |response| object cannot be modified in this callback. 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() 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 unknown protocol component. 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. 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 |callback| is empty the error cannot be recovered from and the request will be canceled automatically. If CefSettings.ignore_certificate_errors is set all invalid certificates will be accepted without calling this method. Called on the browser process IO thread before a plugin is loaded. Return true to block loading of the plugin. 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. Class used to implement a custom resource bundle interface. The methods of this class may be called on multiple threads. Called to retrieve a localized translation for the string specified by |message_id|. To provide the translation set |string| to the translation string and return true. To use the default translation return false. Supported message IDs are listed in cef_pack_strings.h. Called to retrieve data for the resource specified by |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. Supported resource IDs are listed in cef_pack_resources.h. Class used to implement a custom request handler interface. The methods of this class will always be called on the IO thread. 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. 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. 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. Return true if the specified cookie can be sent with the request or false otherwise. If false is returned for any cookie then no cookies will be sent with the request. Return true if the specified cookie returned with the response can be set or false otherwise. Request processing has been canceled. 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 status code. Get the response status text. Gets or sets the response mime type. Get the value for the specified response header field. Get all response header fields. Set all response header fields. 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 will not contain cookie data. 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. If |is_standard| is true 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 |is_local| is true the scheme will be treated as local (i.e., 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. To allow XMLHttpRequest calls from a local URL to all origins set the CefSettings.universal_access_from_file_urls_allowed value to true. If |is_display_isolated| is true the scheme will be treated as display- isolated. This means that pages cannot display these URLs unless they are from the same scheme. For example, pages in another origin cannot create iframes or hyperlinks to URLs with this scheme. 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.
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 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: CN, O and 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 representing SSL information. 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. 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. Only GET, POST, HEAD, DELETE and PUT request methods are supported. Multiple post data elements are not supported and elements of type PDE_TYPE_FILE are only supported for requests originating from the browser process. Requests originating from the render process will receive the same handling as requests originating from Web content -- 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. In the browser process if |request_context| is empty the global request context will be used. In the render process |request_context| must be empty and the context associated with the current renderer process' browser will be used. 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. 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. Return false to cancel the request. 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. 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. Evaluates the specified JavaScript code using this context's global object. 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. 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. 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 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 function. Returns true if this object is pointing to the same handle as |that| object. Return a bool value. The underlying data will be converted to if necessary. Return an int value. The underlying data will be converted to if necessary. Return an unisgned int value. The underlying data will be converted to if necessary. Return a double value. The underlying data will be converted to if necessary. Return a Date value. The underlying data will be converted to if necessary. Return a string value. The underlying data will be converted to if necessary. 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. 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 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. Margin type for PDF printing. Default margins. No margins. Minimum margins. Custom margins using the |margin_*| values from cef_pdf_print_settings_t. 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). 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. Return value types. Cancel immediately. Continue immediately. Continue asynchronously (usually via a callback). The manner in which a link click should be opened. 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 control characters such as %01. This INCLUDES NULLs. This is used for rare cases such as data: URL decoding where the result is binary data. This flag also unescapes BiDi control characters. DO NOT use CONTROL_CHARS if the URL is going to be displayed in the UI for security reasons. URL queries use "+" for space. This flag controls that replacement. Cursor type values. Print job duplex mode values. "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. 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. Geoposition error codes. 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. INFO logging. WARNING logging. ERROR logging. ERROR_REPORT logging. Completely disable logging. Mouse button types. Print job color mode values. 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. 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. Supported error code values. 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 action such as creating a new browser or using the LoadURL function. This is also the default value for navigations where the actual type is unknown. 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. 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. V8 access control values. V8 property attribute values. Post data elements may represent either bytes or files. Default behavior. If set the cache will be skipped when handling the request. 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 headers sent and received for the request will be recorded. 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. Existing process IDs. 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. Used to interact with the database. Used to interact with the file system. Used for file system operations that block user interactions. Responsiveness of this thread affects users. Used to launch and terminate browser processes. Used to handle slow HTTP cache operations. Used to process IPC and network messages. The main thread in the renderer. Used for all WebKit and V8 interaction. Supported value types. 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. Supported JavaScript dialog types. Supported menu IDs. Non-English translations can be provided for the IDS_MENU_* strings in CefResourceBundleHandler::GetLocalizedString(). Supported event bit flags. Mac OS-X command key. Supported menu item types. 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. 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 media state bit flags. Supported context menu edit state bit flags. DOM document types. DOM event category flags. DOM event processing phases. DOM node types. 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. Process termination status values. Non-zero exit status. SIGKILL or task manager kill. Segmentation fault. 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. 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. Paint element 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. Structure representing geoposition information. The properties of this structure correspond to those of the JavaScript Position object although their types may differ. Latitude in decimal degrees north (WGS84 coordinate frame). Longitude in decimal degrees west (WGS84 coordinate frame). Altitude in meters (above WGS84 datum). Accuracy of horizontal position in meters. Accuracy of altitude in meters. Heading in decimal degrees clockwise from true north. Horizontal component of device velocity in meters per second. Time of position measurement in milliseconds since Epoch in UTC time. This is taken from the host computer's system clock. Error code, see enum above. Human-readable error message. 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 cursor information. |buffer| will be |size.width|*|size.height|*4 bytes in size and represents a BGRA image with an upper-left origin. Request context initialization settings. Specify NULL or 0 to get the recommended default values. The location where cache data will be stored on disk. 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. 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. 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 use a single process for the browser and renderer. This run mode is not officially supported by Chromium and is less stable than the multi-process default. Also configurable using the "single-process" command-line switch. 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. By default the browser process executable is used. See the comments on CefExecuteProcess() for details. Also configurable using the "browser-subprocess-path" command-line switch. 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. 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 cache data will be stored on disk. 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 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. 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, the default name of "debug.log" will be used and the file will be written to the application directory. Also configurable using the "log-file" command-line switch. The log severity. Only messages of this severity level or higher will be logged. Also configurable using the "log-severity" command-line switch with a value of "verbose", "info", "warning", "error", "error-report" or "disable". 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. By default CEF V8 references will be invalidated (the IsValid() method will return false) after the owning context has been released. This reduces the need for external record keeping and avoids crashes due to the use of V8 references after the associated context has been released. CEF currently offers two context safety implementations with different performance characteristics. The default implementation (value of 0) uses a map of hash values and should provide better performance in situations with a small number contexts. The alternate implementation (value of 1) uses a hidden value attached to each context and should provide better performance in situations with a large number of contexts. If you need better performance in the creation of V8 references and you plan to manually track context lifespan you can disable context safety by specifying a value of -1. Also configurable using the "context-safety-implementation" command-line switch. 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. Opaque background color used for accelerated content. By default the background color will be white. Only the RGB compontents of the specified value will be used. The alpha component must greater than 0 to enable use of the background color but will be otherwise ignored. 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. 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. Set to true (1) to enable transparent painting in combination with windowless rendering. When this value is true a transparent background color will be used (RGBA=0x00000000). When this value is false the background will be white and opaque. 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 for opening windows. Also configurable using the "disable-javascript-open-windows" 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 the caret position will be drawn. Also configurable using the "enable-caret-browsing" command-line switch. Controls whether the Java plugin will be loaded. Also configurable using the "disable-java" 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. Opaque background color used for the browser before a document is loaded and when no document color is specified. By default the background color will be the same as CefSettings.background_color. Only the RGB compontents of the specified value will be used. The alpha component must greater than 0 to enable use of the background color but will be otherwise ignored. 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 mouse event information. 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. 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.