CefSharp Async extensions for different interfaces Deletes all cookies that matches all the provided parameters asynchronously. If both and are empty, all cookies will be deleted. cookie manager The cookie URL. If an empty string is provided, any URL will be matched. The name of the cookie. If an empty string is provided, any URL will be matched. Returns -1 if a non-empty invalid URL is specified, or if cookies cannot be accessed; otherwise, a task that represents the delete operation. The value of the TResult will be the number of cookies that were deleted or -1 if unknown. 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 will return false without setting cookie manager The cookie URL. If an empty string is provided, any URL will be matched. the cookie to be set returns false if the cookie cannot be set (e.g. if illegal charecters such as ';' are used); otherwise task that represents the set operation. The value of the TResult parameter contains a bool to indicate success. Visits all cookies. The returned cookies are sorted by longest path, then by earliest creation date. cookie manager A task that represents the VisitAllCookies operation. The value of the TResult parameter contains a List of cookies or null if cookies cannot be accessed. Visits a subset of the cookies. The results are filtered by the given url scheme, host, domain and path. If is true, HTTP-only cookies will also be included in the results. The returned cookies are sorted by longest path, then by earliest creation date. cookie manager The URL to use for filtering a subset of the cookies available. A flag that determines whether HTTP-only cookies will be shown in results. A task that represents the VisitUrlCookies operation. The value of the TResult parameter contains a List of cookies. or null if cookies cannot be accessed. Flush the backing store (if any) to disk. cookieManager instance A task that represents the FlushStore operation. Result indicates if the flush completed successfully. Will return false if the cookikes cannot be accessed. Javascript binding options Set of options with the default binding Camel case the javascript names of properties/methods, defaults to true Model binder used for passing complex classes as params to methods Interceptor used for intercepting calls to the target object methods. For instance, can be used for logging calls (from js) to .net methods. Default constructor Callback interface used for asynchronous continuation of authentication requests. Continue the authentication request. requested username requested password Cancel the authentication request. Gets a value indicating whether the callback has been disposed of. Callback interface used to asynchronously continue a download. Call to continue the download. full file path for the download including the file name or leave blank to use the suggested name and the default temp directory Set to true if you do wish to show the default "Save As" dialog Gets a value indicating whether the callback has been disposed of. Generic callback interface used for asynchronous continuation. Continue processing. Cancel processing. Gets a value indicating whether the callback has been disposed of. Generic callback interface used for asynchronous completion. Method that will be called once the task is complete. Gets a value indicating whether the callback has been disposed of. Interface to implement to be notified of asynchronous completion via ICookieManager.DeleteCookies(). It will be executed asnychronously on the CEF IO thread after the cookie has been deleted Method that will be called upon completion. will be the number of cookies that were deleted or -1 if unknown. Gets a value indicating whether the callback has been disposed of. Callback interface used to asynchronously cancel a download. Call to cancel the download. Call to pause the download. Call to resume the download. Gets a value indicating whether the callback has been disposed of. Callback interface for asynchronous continuation of file dialog requests. Continue the file selection. should be the 0-based index of the value selected from the accept filters array passed to should be a single value or a list of values depending on the dialog mode. An empty value is treated the same as calling Cancel(). Cancel the file selection. Gets a value indicating whether the callback has been disposed of. Callback interface used for asynchronous continuation of . Continue the request. Read the resource contents from stream. stream to be used as response. Continue the request data to be used as response Cancel the request. Javascript callback interface Callback Id Execute the javascript callback param array of objects JavascriptResponse Check to see if the underlying resource are still available to execute the callback Gets a value indicating whether the callback has been disposed of. Callback interface used for asynchronous continuation of JavaScript dialog requests. Continue the Javascript dialog request. Set to true if the OK button was pressed. value should be specified for prompt dialogs. Continue the Javascript dialog request. Set to true if the OK button was pressed. Gets a value indicating whether the callback has been disposed of. Callback interface for . The methods of this interface will be called on the CEF UI thread. Method that will be executed when the PDF printing has completed. The output path. Will be true if the printing completed successfully or false otherwise. Gets a value indicating whether the callback has been disposed of. Content Decryption Module (CDM) registration callback used for asynchronous completion. Method that will be called once CDM registration is complete The result of the CDM registration process Gets a value indicating whether the callback has been disposed of. Callback interface used for asynchronous continuation of url requests. Continue the url request. If is true the request will be continued, otherwise, the request will be canceled. Cancel the url request. Gets a value indicating whether the callback has been disposed of. Callback interface for Called after the ResolveHost request has completed. The result code will be the list of resolved IP addresses or empty if the resolution failed. Gets a value indicating whether the callback has been disposed of. Callback interface used for continuation of custom context menu display. Complete context menu display by selecting the specified commandId and eventFlags; the command Id the event flags Cancel context menu display. Gets a value indicating whether the callback has been disposed of. Callback interface for IBrowserHost.RunFileDialog. The methods of this class will be called on the CEF UI thread. Called asynchronously after the file dialog is dismissed. is the 0-based index of the value selected from the accept filters array passed to IBrowserHost.RunFileDialog will be a single value or a list of values depending on the dialog mode. If the selection was cancelled filePaths will be empty Callback interface used to select a client certificate for authentication. Callback interface used to select a client certificate for authentication. selected certificate Gets a value indicating whether the callback has been disposed of. Interface to implement to be notified of asynchronous completion via ICookieManager.SetCookie(). It will be executed asnychronously on the CEF IO thread after the cookie has been set Method that will be called upon completion. success will be true if the cookie was set successfully. Gets a value indicating whether the callback has been disposed of. Provides a callback implementation of . Invalid Number of Cookies Default constructor Task used to await this callback Provides a callback implementation of . Default constructor Task used to await this callback Provides a callback implementation of for use with asynchronous Widevine CDM registration. Default constructor Task used to await this callback Provides a callback implementation of . Default constructor Task used to await this callback Provides a callback implementation of . Task used to await this callback Provides a callback implementation of . Default constructor Task used to await this callback Represents the response to an attempt to register the Widevine Content Decryption Module (CDM) If CDM registration succeeded then value will be , for other values see the enumeration . Contains an error message containing additional information if is not . CdmRegistration error code error message Default implementation of which represents the CefApp class Describes how to interpret the alpha component of a pixel. No transparency. The alpha component is ignored. Transparency with pre-multiplied alpha component. Transparency with post-multiplied alpha component. Value types supported by Invalid type Null Boolean Integer Double String Binary Dictionary List Describes how to interpret the components of a pixel. RGBA with 8 bits per pixel (32bits total). BGRA with 8 bits per pixel (32bits total). Cursor type values. "Verb" of a drag-and-drop operation as negotiated between the source and destination. None Copy Link Generic Private Move Delete Every drag operation. Event arguments for the event The javascript object repository, used to register objects Name of the object Was the object already bound. The default is false for the first js call to CefSharp.BindObjectAsync, and subsiquently true if already bound in a given context. Is the object cached JavascriptBindingCompleteEventArgs javascript object repository object name is the object already bound is the object cached Event arguments for the event The javascript object repository, used to register objects Name of the object Constructor object repository object name Event arguments for the event The javascript object repository, used to register objects Name of the objects bound JavascriptBindingMultipleCompleteEventArgs Javascript object repository object names FileDialog Flags Prompt to overwrite if the user selects an existing file with the Save dialog. Do not display read-only files. Default implementation of . This class provides default implementations of the methods from , therefore providing a convenience base class for any custom request handler. Called when the browser needs credentials from the user. The ChromiumWebBrowser control the browser object The frame object that needs credentials (This will contain the URL that is being requested.) indicates whether the host is a proxy server hostname port number realm scheme Callback interface used for asynchronous continuation of authentication requests. Return true to continue the request and call CefAuthCallback::Continue() when the authentication information is available. Return false to cancel the request. Called on the CEF IO thread to optionally filter resource response content. The ChromiumWebBrowser control the browser object The frame that is being redirected. the request object - cannot be modified in this callback the response object - cannot be modified in this callback Return an IResponseFilter to intercept this response, otherwise return null Called before browser navigation. If the navigation is allowed and will be called. If the navigation is canceled will be called with an ErrorCode value of . the ChromiumWebBrowser control the browser object The frame the request is coming from the request object - cannot be modified in this callback The 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). has the request been redirected Return true to cancel the navigation or false to allow the navigation to proceed. Called before a resource request is loaded. For async processing return and execute or The ChromiumWebBrowser control the browser object The frame object the request object - can be modified in this callback. Callback interface used for asynchronous continuation of url requests. To cancel loading of the resource return or to allow the resource to load normally. For async return Called to handle requests for URLs with an invalid SSL certificate. Return true and call either in this method or at a later time to continue or cancel the request. If CefSettings.IgnoreCertificateErrors is set all invalid certificates will be accepted without calling this method. the ChromiumWebBrowser control the browser object the error code for this invalid certificate the url of the request for the invalid certificate ssl certificate information Callback interface used for asynchronous continuation of url requests. If empty the error cannot be recovered from and the request will be canceled automatically. Return false to cancel the request immediately. Return true and use to execute in an async fashion. 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 ChromiumWebBrowser control the browser object The frame object target url The value indicates where the user intended to navigate the browser based on standard Chromium behaviors (e.g. current tab, new tab, etc). The 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 when a plugin has crashed the ChromiumWebBrowser control the browser object path of the plugin that crashed Called on the UI thread to handle requests for URLs with an unknown protocol component. SECURITY WARNING: YOU SHOULD USE THIS METHOD TO ENFORCE RESTRICTIONS BASED ON SCHEME, HOST OR OTHER URL ANALYSIS BEFORE ALLOWING OS EXECUTION. The ChromiumWebBrowser control the browser object the request url return to true to attempt execution via the registered OS protocol handler, if any. Otherwise return false. Called on the CEF IO thread before sending a network request with a "Cookie" request header. The ChromiumWebBrowser control the browser object The frame object the request object - cannot be modified in this callback Return true to allow cookies to be included in the network request or false to block cookies Called on the CEF IO thread when receiving a network request with a "Set-Cookie" response header value represented by cookie. The ChromiumWebBrowser control the browser object The frame object the request object - cannot be modified in this callback the cookie object Return true to allow the cookie to be stored or false to block the cookie. Called when JavaScript requests a specific storage quota size via the webkitStorageInfo.requestQuota function. For async processing return true and execute at a later time to grant or deny the request or to cancel. The ChromiumWebBrowser control the browser object the origin of the page making the request is the requested quota size in bytes Callback interface used for asynchronous continuation of url requests. Return false to cancel the request immediately. Return true to continue the request and call either in this method or at a later time to grant or deny the request. Called when the render process terminates unexpectedly. The ChromiumWebBrowser control the browser object indicates how the process terminated. Called on the CEF UI thread when the render view associated with browser is ready to receive/handle IPC messages in the render process. The ChromiumWebBrowser control the browser object Called on the CEF IO thread when a resource load has completed. The ChromiumWebBrowser control the browser object The frame that is being redirected. the request object - cannot be modified in this callback the response object - cannot be modified in this callback indicates the load completion status is the number of response bytes actually read. Called on the IO thread when a resource load is redirected. The parameter will contain the old URL and other request-related information. The ChromiumWebBrowser control the browser object The frame that is being redirected. the request object - cannot be modified in this callback the response object the new URL and can be changed if desired Called on the CEF 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. The ChromiumWebBrowser control the browser object The frame that is being redirected. the request object the response object - cannot be modified in this callback 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. Called when the browser needs user to select Client Certificate for authentication requests (eg. PKI authentication). The ChromiumWebBrowser control the browser object indicates whether the host is a proxy server hostname port number List of Client certificates for selection Callback interface used for asynchronous continuation of client certificate selection for authentication requests. Return true to continue the request and call ISelectClientCertificateCallback.Select() with the selected certificate for authentication. Return false to use the default behavior where the browser selects the first certificate from the list. Flags used to customize the behavior of CefURLRequest. 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 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. Implement this interface to receive accessibility notification when accessibility events have been registered. It's important to note that the methods of this interface are called on a CEF UI thread, which by default is not the same as your application UI thread. Called after renderer process sends accessibility location changes to the browser process. Updated location info. Called after renderer process sends accessibility tree changes to the browser process. Updated tree info. Implement this interface to handle events related to browser extensions. The methods of this class will be called on the CEF UI thread. See for information about extension loading. Called if the request fails. error code Called if the request succeeds. is the loaded extension. Called after the IExtension.Unload request has completed. is the unloaded extension Called when an extension needs a browser to host a background script specified via the "background" manifest key. The browser will have no visible window and cannot be displayed. To allow creation of the browser optionally modify newBrowser and settings and return false. To cancel creation of the browser (and consequently cancel load of the background script) return true. Successful creation will be indicated by a call to ILifeSpanHandler.OnAfterCreated, and IBrowserHost.IsBackgroundHost will return true for the resulting browser. See https://developer.chrome.com/extensions/event_pages for more information about extension background script usage. is the extension that is loading the background script is an internally generated reference to an HTML page that will be used to load the background script via a script src attribute browser settings To cancel creation of the browser (and consequently cancel load of the background script) return true, otherwise return false. Called when an extension API (e.g. chrome.tabs.create) requests creation of a new browser. Successful creation will be indicated by a call to . the source of the API call the source of the API call may optionally be specified via the windowId property or returned via the GetActiveBrowser() callback and provides the default for the new browser is the position value optionally specified via the index property is the URL that will be loaded in the browser is true if the new browser should be active when opened optionally modify if you are going to allow creation of the browser optionally modify browser settings To cancel creation of the browser return true. To allow creation return false and optionally modify windowInfo and settings Called when no tabId is specified to an extension API call that accepts a tabId parameter (e.g. chrome.tabs.*). extension the call originates from browser the call originates from Incognito browsers should not be considered unless the source extension has incognito access enabled, inwhich case this will be true Return the browser that will be acted on by the API call or return null to act on . The returned browser must share the same IRequestContext as Called when the tabId associated with is specified to an extension API call that accepts a tabId parameter (e.g. chrome.tabs.*). extension the call originates from browser the call originates from Access to incognito browsers should not be allowed unless the source extension has incognito access enabled, in which case this will be true. Return true to allow access of false to deny access. Called to retrieve an extension resource that would normally be loaded from disk (e.g. if a file parameter is specified to chrome.tabs.executeScript). Localization substitutions will not be applied to resources handled via this method. extension the call originates from browser the call originates from is the requested relative file path. callback used to handle custom resource requests To handle the resource request return true and execute either synchronously or asynchronously. For the default behavior which reads the resource from the extension directory on disk return false Implement this interface to provide handler implementations. Methods will be called by the process and/or thread indicated. Return the handler for functionality specific to the browser process. This method is called on multiple threads. Provides an opportunity to register custom schemes. Do not keep a reference to the object. This method is called on the main thread for each process and the registered schemes should be the same across all processes. scheme registra Object representing an extension. Methods may be called on any thread unless otherwise indicated. Returns the unique extension identifier. This is calculated based on the extension public key, if available, or on the extension path. See https://developer.chrome.com/extensions/manifest/key for details. Returns the absolute path to the extension directory on disk. This value will be prefixed with PK_DIR_RESOURCES if a relative path was passed to IRequestContext.LoadExtension. Returns the extension manifest contents as a CefDictionaryValue object. See https://developer.chrome.com/extensions/manifest for details. Returns true if this object is the same extension as that object. Extensions are considered the same if identifier, path and loader context match. extension to compare return true if the same extension Returns the request context that loaded this extension. Will return NULL for internal extensions or if the extension has been unloaded. See the CefRequestContext::LoadExtension documentation for more information about loader contexts. Must be called on the CEF UI thread. Returns true if this extension is currently loaded. Must be called on the CEF UI thread. Unload this extension if it is not an internal extension and is currently loaded. Will result in a call to IExtensionHandler.OnExtensionUnloaded on success. 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 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. This function may be called on any thread. It should only be called once per unique value. If is already registered or if an error occurs this method will return false.
scheme name, e.g. custom is this a standard scheme, see above for details If true the scheme will be treated with the same security rules as those applied to "file" URLs. Normal pages cannot link to or access local URLs. Also, by default, local URLs can only perform XMLHttpRequest calls to the same URL (origin + path) that originated the request. To allow XMLHttpRequest calls from a local URL to other URLs with the same origin set the CefSettings.file_access_from_file_urls_allowed value to true. To allow XMLHttpRequest calls from a local URL to all origins set the CefSettings.UniversalAccessFromFileUrlsAllowed value to true. If true the scheme can only be displayed from other content hosted with the same scheme. For example, pages in other origins cannot create iframes or hyperlinks to URLs with the scheme. For schemes that must be accessible from other schemes set this value to false, set to true, and use CORS "Access-Control-Allow-Origin" headers to further restrict access. If true the scheme will be treated with the same security rules as those applied to "https" URLs. For example, loading this scheme from other secure schemes will not trigger mixed content warnings. If true the scheme can be sent CORS requests. This value should be true in most cases where is true. If true the scheme can bypass Content-Security-Policy (CSP) checks. This value should be false in most cases where is true.
Interface representing CefValue. Returns the underlying value type. Returns the underlying value type. Returns the underlying value as type bool. Returns the underlying value as type bool. Returns the underlying value as type double. Returns the underlying value as type double. Returns the underlying value as type int. Returns the underlying value as type int. Returns the underlying value as type string. Returns the underlying value as type string. Returns the underlying value as type dictionary. Returns the underlying value as type dictionary. Returns the underlying value as type list. Returns the underlying value as type list. Returns the underlying value converted to a managed object. Returns the underlying value converted to a managed object. Container for a single image represented at different scale factors. All image representations should be the same size in density independent pixel (DIP) units. For example, if the image at scale factor 1.0 is 100x100 pixels then the image at scale factor 2.0 should be 200x200 pixels -- both images will display with a DIP size of 100x100 units. The methods of this class must be called on the browser process UI thread. Returns the bitmap representation that most closely matches scaleFactor. scale factor color type alpha type pixel width pixel height A stream represending the bitmap or null. Returns the JPEG representation that most closely matches scaleFactor. scale factor image quality pixel width pixel height A stream representing the JPEG or null. Returns the PNG representation that most closely matches scaleFactor. scale factor is the PNG transparent pixel width pixel height A stream represending the PNG or null. Returns information for the representation that most closely matches scaleFactor. scale factor actual scale factor pixel width pixel height return if information found for scale factor Returns the image height in density independent pixel(DIP) units. Returns true if this image contains a representation for scaleFactor. Returns true if this Image is empty. Returns true if this Image and that Image share the same underlying storage. image to compare returns true if share same underlying storage Removes the representation for scaleFactor. true for success Returns the image width in density independent pixel(DIP) units. Javascript object repository, object are registered for binding One repository per ChromiumWebBrowser instance Register an object for binding in Javascript. You can either register an object in advance or as part of the event that will be called if no object matching object is found in the registry. Objects binding is now initiated in Javascript through the CefSharp.BindObjectAsync function (returns a Promose). For more detailed examples see https://github.com/cefsharp/CefSharp/issues/2246 The equivilient to RegisterJsObject is isAsync = false The equivilient RegisterAsyncJsObject is isAsync = true object name the object that will be bound in javascript if true the object will be registered for async communication, only methods will be exposed and when called from javascript will return a Promise to be awaited. This method is newer and recommended for everyone starting out as it is faster and more reliable. If false then methods and properties will be registered, this method relies on a WCF service to communicate. binding options, by default method/property names are camelCased, you can control this and other advanced options though this class. UnRegister all the currently bound objects from the repository. If you unregister an object that is currently bound in JavaScript then the method/property calls will fail. UnRegister a bound object from the repository. If you unregister an object that is currently bound in JavaScript then the method/property calls will fail. object name returns true if the object was successfully unbound otherwise false. Has bound objects Is object bound name true if object with matching name bound Event handler is called when an object with a given name is requested for binding and is not yet registered with the repository. Use to register objects (using Event handler is triggered when a object has been successfully bound in javascript Event handler is triggered when multiple objects has been successfully bound in javascript, this event only contains the names of objects successfully bound. ByteArrayResourceHandler is used as a placeholder class which uses native CEF implementations. CefStreamReader::CreateForData(); reads the byte array that is passed to a new instance of CefStreamResourceHandler TODO: Move this class into Handler namespace Underlying byte array that represents the data Gets or sets the Mime Type. Initializes a new instance of the class. mimeType byte array Mapping to/from CefTime Converts a cef year month day hour minute second millisecond DateTime Returns epoch (different from 01/01/1970) datetime epoch IRenderWebBrowser is an internal interface used by CefSharp for the WPF/Offscreen implementation The ChromiumWebBrowser instances implement this interface Implement to handle events related to accessibility. The accessibility handler. Called to allow the client to return a ScreenInfo object with appropriate values. If null is returned then the rectangle from GetViewRect will be used. If the rectangle is still empty or invalid popups may not be drawn correctly. Return null if no screenInfo structure is provided. Called to retrieve the view rectangle which is relative to screen coordinates. Return a ViewRect strict containing the rectangle or null. If the rectangle is still empty or invalid popups may not be drawn correctly. Called to retrieve the translation from view coordinates to actual screen coordinates. x y screen x screen y Return true if the screen coordinates were provided. Called when an element has been rendered to the shared texture handle. This method is only called when is set to true indicates whether the element is the view or the popup widget. contains the set of rectangles in pixel coordinates that need to be repainted is the handle for a D3D11 Texture2D that can be accessed via ID3D11Device using the OpenSharedResource method. Called when an element should be painted. Pixel values passed to this method are scaled relative to view coordinates based on the value of returned from . Called on the CEF UI Thread indicates whether the element is the view or the popup widget. contains the set of rectangles in pixel coordinates that need to be repainted The bitmap will be will be width * height *4 bytes in size and represents a BGRA image with an upper-left origin width height Called when the browser's cursor has changed. . If type is Custom then customCursorInfo will be populated with the custom cursor information cursor type custom cursor Information Called when the user starts dragging content in the web view. Contextual information about the dragged content is supplied by dragData. (|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 IBrowserHost::DragSourceEndedAt and DragSourceSystemDragEnded either synchronously or asynchronously to inform the web view that the drag operation has ended. drag data operation mask x coordinate y coordinate Return false to abort the drag operation. Called when the web view wants to update the mouse cursor during a drag & drop operation. describes the allowed operation (none, move, copy, link). 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. contains the new location and size in view coordinates. Called when the IME composition range has changed. is the range of characters that have been selected is the bounds of each character in view coordinates. Simple helper class used for checking/parsing command line arguments Interface used to break reference cycles in CefSharp.Core C++ code. This will ALWAYS be a ManagedCefBrowserAdapter instance. Interface to convert a JavascriptCallback dto to a callable implementation. Do an unchecked conversion from IntPtr to int so overflow exceptions don't get thrown. the IntPtr to cast a 32-bit signed integer Class to store TaskCompletionSources indexed by a unique id. The type of the result produced by the tasks held. Creates a new pending task with a timeout. The maximum running time of the task. The unique id of the newly created pending task and the newly created . Gets and removed pending task by id. Unique id of the pending task. The associated with the given id. TaskExtension based on the following https://github.com/ChadBurggraf/parallel-extensions-extras/blob/master/Extensions/TaskExtrasExtensions.cs https://github.com/ChadBurggraf/parallel-extensions-extras/blob/ec803e58eee28c698e44f55f49c5ad6671b1aa58/Extensions/TaskCompletionSourceExtensions.cs Creates a new Task that mirrors the supplied task but that will be canceled after the specified timeout. Specifies the type of data contained in the task. The task. The timeout. The new Task that may time out. Attempts to transfer the result of a Task to the TaskCompletionSource. Specifies the type of the result. The TaskCompletionSource. The task whose completion results should be transfered. Whether the transfer could be completed. Attempts to transfer the result of a Task to the TaskCompletionSource. Specifies the type of the result. The TaskCompletionSource. The task whose completion results should be transfered. Whether the transfer could be completed. Set the TaskCompletionSource in an async fashion. This prevents the Task Continuation being executed sync on the same thread This is required otherwise contintinuations will happen on CEF UI threads Generic param tcs result Gets or sets a delegate which is used to invoke the method if the member is a method. Identifies the for BrowserProcess to RenderProcess communication Gets or sets the name of the managed property. Gets or sets the name of the property in the JavaScript runtime. Params this method expects Number of Params this function exepects This maps the registered objects in the browser process to the reflection data necessary to update the objects, and mapping information to how the object/method/proprerty will be exposed to JavaScript. Identifies the for BrowserProcess to RenderProcess communication Indicate if this object bound as async Indicate if JavascriptName is camel case or not Gets the methods of the . Gets the properties of the . Gets or sets the value. This class manages the registration of objects in the browser process to be exposed to JavaScript in the renderer process. Registration performs method, parameter, property type analysis of the registered objects into meta-data tied to reflection data for later use. This class also is the adaptation layer between the BrowserProcessService and the registered objects. This means when the renderer wants to call an exposed method, get a property of an object, or set a property of an object in the browser process, that this class does deals with the previously created meta-data and invokes the correct behavior via reflection APIs. All of the registered objects are tracked via meta-data for the objects expressed starting with the JavaScriptObject type. A hash from assigned object ids to the objects, this is done to speed up finding the object in O(1) time instead of traversing the JavaScriptRootObject tree. Has the browser this repository is associated with been initilized (set in OnAfterCreated) Analyse the object and generate metadata which will be used by the browser subprocess to interact with Cef. Method is called recursively Javascript object Analyse methods for inclusion in metadata model Analyse properties for inclusion in metadata model When analysis is done on a property, if true then get it's value for transmission over WCF camel case the javascript names of properties/methods Gets or sets a delegate which is used to set the property / field value in the managed object. Gets or sets a delegate which is used to get the property / field value from the managed object. Identifies the for BrowserProcess to RenderProcess communication Gets or sets the name of the managed property. Gets or sets the name of the property in the JavaScript runtime. Gets or sets if this property represents a complex type Gets or sets if this property is read-only Gets or sets the property value Only primative types can be stored in this property Interface implemented by UI control that contains a ManagedCefBrowserAdapter instance. FileResourceHandler is used as a placeholder class which uses native CEF implementations. CefStreamReader::CreateForFile is used to create a CefStreamReader instance which is passed to a new instance of CefStreamResourceHandler (Was previously ResourceHandlerType::File to differentiate, going for a more flexible approach now) TODO: Move this class into Handler namespace Path of the underlying file Gets or sets the Mime Type. Initializes a new instance of the class. mimeType filePath Load an extension from the given directory. To load a crx file you must unzip it first. For further details see request context absolute path to the directory that contains the extension to be loaded. handle events related to browser extensions Load extension(s) from the given directory. This methods obtains all the sub directories of and calls if manifest.json is found in the sub folder. To load crx file(s) you must unzip them first. For further details see request context absolute path to the directory that contains the extension(s) to be loaded. handle events related to browser extensions Represents a new V8 extension to be registered. Gets the name of the extension. Gets the javascript extension code Creates a new CwefExtension instance with a given name. Name of the CefExtension The javascript extension code. CefLibraryHandle is a SafeHandle that Loads libcef.dll and relesases it when disposed/finalized Calls LoadLibraryEx with LoadLibraryFlags.LOAD_WITH_ALTERED_SEARCH_PATH Make sure to set settings.BrowserSubprocessPath and settings.LocalesDirPath Adapted from http://www.pinvoke.net/default.aspx/kernel32.loadlibraryex In general not a fan of having inline classes/enums In this case it's not something that I'd like to see exposed as it's just a helper and outside the scope of the project Javascript exception Message Stack trace in javascript frames Javascript binding extension methods Make sure an object is bound in javascript. Executes against the main frame browser object names List of objects that were bound Represents an IME composition underline. Underline character range. Text color. 32-bit ARGB color value, not premultiplied. The color components are always in a known order. Equivalent to the SkColor type. Background color. 32-bit ARGB color value, not premultiplied. The color components are always in a known order. Equivalent to the SkColor type. true for thickunderline Struct representing cursor information. Cursor buffer Hotspot Image scale factor Size CursorInfo buffer hotspot image scale factor size Class representing a point. X coordinate Y coordinate Point x coordinate y coordinate Structure representing a size. Width Height Size width height Represents a range From To Range from to Represents a rectangle X coordinate Y coordinate Width Height Rect x coordinate y coordinate width height Class representing the virtual screen information for use when window rendering is disabled. See also Chrome Source 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 AvailableRect 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 AvailableRect properties are used to determine the available surface for rendering popup views. Represents a node in the browser's DOM. Representing a draggable region. Width Height X coordinate Y coordinate Is this region draggable Creates a new DraggableRegion width height x coordinate y coordinate is draggable? Lists the errors that can be reported during Widevine Content Decryption Module (CDM) registration. No error. Registration completed successfully. Required files or manifest contents are missing. The CDM is incompatible with the current Chromium version. CDM registration is not supported at this time. Lists some of the error codes that can be reported by CEF. For a complete up-to-date list, see the CEF source code (cef_errorcode_t in include/internal/cef_types.h) and the Chromium source code (net/base/net_error_list.h). No error occurred. An asynchronous IO operation is not yet complete. This usually does not indicate a fatal error. Typically this error will be generated as a notification to wait for some external notification that the IO operation finally completed. A generic failure occurred. A request was aborted, possibly by the user. An argument to the function is incorrect. The handle or file descriptor is invalid. The file or directory cannot be found. An operation timed out. The file is too large. An unexpected error. This may be caused by a programming mistake or an invalid assumption Permission to access a resource, other than the network, was denied. The operation failed because of unimplemented functionality. There were not enough resources to complete the operation. Memory allocation failed. The file upload failed because the file's modification time was different from the expectation. The socket is not connected. The file already exists. The path or file name is too long. Not enough room left on the disk. The file has a virus. The client chose to block the request. The network changed. The request was blocked by the URL blacklist configured by the domain administrator. The socket is already connected. The request was blocked because the forced reenrollment check is still pending. This error can only occur on ChromeOS. The error can be emitted by code in chrome/browser/policy/policy_helpers.cc. A connection was closed (corresponding to a TCP FIN). A connection was reset (corresponding to a TCP RST). A connection attempt was refused. A connection timed out as a result of not receiving an ACK for data sent. This can include a FIN packet that did not get ACK'd. A connection attempt failed. The host name could not be resolved. The Internet connection has been lost. An SSL protocol error occurred. The IP address or port number is invalid (e.g., cannot connect to the IP address 0 or the port 0). The IP address is unreachable. This usually means that there is no route to the specified host or network. The server requested a client certificate for SSL client authentication. A tunnel connection through the proxy could not be established. No SSL protocol versions are enabled. The client and server don't support a common SSL protocol version or cipher suite. The server requested a renegotiation (rehandshake). The proxy requested authentication (for tunnel establishment) with an unsupported method. During SSL renegotiation (rehandshake), the server sent a certificate with an error. Note: this error is not in the -2xx range so that it won't be handled as a certificate error. The SSL handshake failed because of a bad or missing client certificate. A connection attempt timed out. There are too many pending DNS resolves, so a request in the queue was aborted. Failed establishing a connection to the SOCKS proxy server for a target host. The SOCKS proxy server failed establishing connection to the target host because that host is unreachable. The request to negotiate an alternate protocol failed. The peer sent an SSL no_renegotiation alert message. Winsock sometimes reports more data written than passed. This is probably due to a broken LSP. An SSL peer sent us a fatal decompression_failure alert. This typically occurs when a peer selects DEFLATE compression in the mistaken belief that it supports it. An SSL peer sent us a fatal bad_record_mac alert. This has been observed from servers with buggy DEFLATE support. The proxy requested authentication (for tunnel establishment). A known TLS strict server didn't offer the renegotiation extension. The SSL server attempted to use a weak ephemeral Diffie-Hellman key. Could not create a connection to the proxy server. An error occurred either in resolving its name, or in connecting a socket to it. Note that this does NOT include failures during the actual "CONNECT" method of an HTTP proxy. A mandatory proxy configuration could not be used. Currently this means that a mandatory PAC script could not be fetched, parsed or executed. We've hit the max socket limit for the socket pool while preconnecting. We don't bother trying to preconnect more sockets. The permission to use the SSL client certificate's private key was denied. The SSL client certificate has no private key. The certificate presented by the HTTPS Proxy was invalid. An error occurred when trying to do a name resolution (DNS). Permission to access the network was denied. This is used to distinguish errors that were most likely caused by a firewall from other access denied errors. See also ERR_ACCESS_DENIED. The request throttler module cancelled this request to avoid DDOS. A request to create an SSL tunnel connection through the HTTPS proxy received a non-200 (OK) and non-407 (Proxy Auth) response. The response body might include a description of why the request failed. We were unable to sign the CertificateVerify data of an SSL client auth handshake with the client certificate's private key. Possible causes for this include the user implicitly or explicitly denying access to the private key, the private key may not be valid for signing, the key may be relying on a cached handle which is no longer valid, or the CSP won't allow arbitrary data to be signed. The message was too large for the transport. (for example a UDP message which exceeds size threshold). A SPDY session already exists, and should be used instead of this connection. Websocket protocol error. Indicates that we are terminating the connection due to a malformed frame or other protocol violation. Connection was aborted for switching to another ptotocol. WebSocket abort SocketStream connection when alternate protocol is found. Returned when attempting to bind an address that is already in use. An operation failed because the SSL handshake has not completed. SSL peer's public key is invalid. The certificate didn't match the built-in public key pins for the host name. The pins are set in net/http/transport_security_state.cc and require that one of a set of public keys exist on the path from the leaf to the root. Server request for client certificate did not contain any types we support. Server requested one type of cert, then requested a different type while the first was still being generated. An SSL peer sent us a fatal decrypt_error alert. This typically occurs when a peer could not correctly verify a signature (in CertificateVerify or ServerKeyExchange) or validate a Finished message. There are too many pending WebSocketJob instances, so the new job was not pushed to the queue. There are too many active SocketStream instances, so the new connect request was rejected. The SSL server certificate changed in a renegotiation. The SSL server indicated that an unnecessary TLS version fallback was performed. Certificate Transparency: All Signed Certificate Timestamps failed to verify. The SSL server sent us a fatal unrecognized_name alert. Failed to set the socket's receive buffer size as requested. Failed to set the socket's send buffer size as requested. Failed to set the socket's receive buffer size as requested, despite success return code from setsockopt. Failed to set the socket's send buffer size as requested, despite success return code from setsockopt. Failed to import a client certificate from the platform store into the SSL library. The server responded with a certificate whose common name did not match the host name. This could mean: 1. An attacker has redirected our traffic to his server and is presenting a certificate for which he knows the private key. 2. The server is misconfigured and responding with the wrong cert. 3. The user is on a wireless network and is being redirected to the network's login page. 4. The OS has used a DNS search suffix and the server doesn't have a certificate for the abbreviated name in the address bar. The server responded with a certificate that, by our clock, appears to either not yet be valid or to have expired. This could mean: 1. An attacker is presenting an old certificate for which he has managed to obtain the private key 2. The server is misconfigured and is not presenting a valid cert. 3. Our clock is wrong. The server responded with a certificate that is signed by an authority we don't trust. The could mean: 1. An attacker has substituted the real certificate for a cert that contains his public key and is signed by his cousin. 2. The server operator has a legitimate certificate from a CA we don't know about, but should trust. 3. The server is presenting a self-signed certificate, providing no defense against active attackers (but foiling passive attackers). The server responded with a certificate that contains errors. This error is not recoverable. MSDN describes this error as follows: "The SSL certificate contains errors." NOTE: It's unclear how this differs from ERR_CERT_INVALID. For consistency, use that code instead of this one from now on. The certificate has no mechanism for determining if it is revoked. In effect, this certificate cannot be revoked. Revocation information for the security certificate for this site is not available. This could mean: 1. An attacker has compromised the private key in the certificate and is blocking our attempt to find out that the cert was revoked. 2. The certificate is unrevoked, but the revocation server is busy or unavailable. The server responded with a certificate has been revoked. We have the capability to ignore this error, but it is probably not the thing to do. The server responded with a certificate that is invalid. This error is not recoverable. The server responded with a certificate that is signed using a weak signature algorithm. The host name specified in the certificate is not unique. The server responded with a certificate that contains a weak key (e.g. a too-small RSA key). The certificate claimed DNS names that are in violation of name constraints. Add new certificate error codes here. Update the value of CERT_END whenever you add a new certificate error code. The value immediately past the last certificate error code. The URL is invalid. The scheme of the URL is disallowed. The scheme of the URL is unknown. Attempting to load an URL resulted in too many redirects. Attempting to load an URL resulted in an unsafe redirect (e.g., a redirect to file:// is considered unsafe). Attempting to load an URL with an unsafe port number. These are port numbers that correspond to services, which are not robust to spurious input that may be constructed as a result of an allowed web construct (e.g., HTTP looks a lot like SMTP, so form submission to port 25 is denied). The server's response was invalid. Error in chunked transfer encoding. The server did not support the request method. The response was 407 (Proxy Authentication Required), yet we did not send the request to a proxy. The server closed the connection without sending any data. The headers section of the response is too large. The PAC requested by HTTP did not have a valid status code (non-200). The evaluation of the PAC script failed. The response was 416 (Requested range not satisfiable) and the server cannot satisfy the range requested. The identity used for authentication is invalid. Content decoding of the response body failed. An operation could not be completed because all network IO is suspended. FLIP data received without receiving a SYN_REPLY on the stream. Converting the response to target encoding failed. The server sent an FTP directory listing in a format we do not understand. Attempted use of an unknown SPDY stream id. There are no supported proxies in the provided list. There is a SPDY protocol error. Credentials could not be established during HTTP Authentication. An HTTP Authentication scheme was tried which is not supported on this machine. Detecting the encoding of the response failed. (GSSAPI) No Kerberos credentials were available during HTTP Authentication. An unexpected, but documented, SSPI or GSSAPI status code was returned. The environment was not set up correctly for authentication (for example, no KDC could be found or the principal is unknown. An undocumented SSPI or GSSAPI status code was returned. The HTTP response was too big to drain. The HTTP response contained multiple distinct Content-Length headers. SPDY Headers have been received, but not all of them - status or version headers are missing, so we're expecting additional frames to complete them. No PAC URL configuration could be retrieved from DHCP. This can indicate either a failure to retrieve the DHCP configuration, or that there was no PAC URL configured in DHCP. The HTTP response contained multiple Content-Disposition headers. The HTTP response contained multiple Location headers. SPDY server refused the stream. Client should retry. This should never be a user-visible error. SPDY server didn't respond to the PING message. The HTTP response body transferred fewer bytes than were advertised by the Content-Length header when the connection is closed. The HTTP response body is transferred with Chunked-Encoding, but the terminating zero-length chunk was never sent when the connection is closed. There is a QUIC protocol error. The HTTP headers were truncated by an EOF. The QUIC crytpo handshake failed. This means that the server was unable to read any requests sent, so they may be resent. An https resource was requested over an insecure QUIC connection. Transport security is inadequate for the SPDY version. The peer violated SPDY flow control. The peer sent an improperly sized SPDY frame. Decoding or encoding of compressed SPDY headers failed. Proxy Auth Requested without a valid Client Socket Handle. The cache does not have the requested entry. Unable to read from the disk cache. Unable to write to the disk cache. The operation is not supported for this entry. The disk cache is unable to open this entry. The disk cache is unable to create this entry. Multiple transactions are racing to create disk cache entries. This is an internal error returned from the HttpCache to the HttpCacheTransaction that tells the transaction to restart the entry-creation logic because the state of the cache has changed. The cache was unable to read a checksum record on an entry. This can be returned from attempts to read from the cache. It is an internal error, returned by the SimpleCache backend, but not by any URLRequest methods or members. The cache found an entry with an invalid checksum. This can be returned from attempts to read from the cache. It is an internal error, returned by the SimpleCache backend, but not by any URLRequest methods or members. Internal error code for the HTTP cache. The cache lock timeout has fired. The server's response was insecure (e.g. there was a cert error). The server responded to a <keygen> with a generated client cert that we don't have the matching private key for. An error adding to the OS certificate database (e.g. OS X Keychain). A generic error for failed FTP control connection command. If possible, please use or add a more specific error code. The server cannot fulfill the request at this point. This is a temporary error. FTP response code 421. The server has aborted the transfer. FTP response code 426. The file is busy, or some other temporary error condition on opening the file. FTP response code 450. Server rejected our command because of syntax errors. FTP response codes 500, 501. Server does not support the command we issued. FTP response codes 502, 504. Server rejected our command because we didn't issue the commands in right order. FTP response code 503. PKCS #12 import failed due to incorrect password. PKCS #12 import failed due to other error. CA import failed - not a CA cert. Import failed - certificate already exists in database. Note it's a little weird this is an error but reimporting a PKCS12 is ok (no-op). That's how Mozilla does it, though. CA import failed due to some other error. Server certificate import failed due to some internal error. PKCS #12 import failed due to invalid MAC. PKCS #12 import failed due to invalid/corrupt file. PKCS #12 import failed due to unsupported features. Key generation failed. Server-bound certificate generation failed. Failure to export private key. Self-signed certificate generation failed. The certificate database changed in some way. Failure to import Channel ID. DNS resolver received a malformed response. DNS server requires TCP DNS server failed. This error is returned for all of the following error conditions: 1 - Format error - The name server was unable to interpret the query. 2 - Server failure - The name server was unable to process this query due to a problem with the name server. 4 - Not Implemented - The name server does not support the requested kind of query. 5 - Refused - The name server refuses to perform the specified operation for policy reasons. DNS transaction timed out. The entry was not found in cache, for cache-only lookups. Suffix search list rules prevent resolution of the given host name. Failed to sort addresses according to RFC3484. Supported event bit flags. Mac OS-X command key. CefFileDialogMode (Based on cef_file_dialog_mode_t) 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. Focus Source The source is explicit navigation via the API (LoadURL(), etc). The source is a system-generated focus event. Supported JavaScript dialog types. Custom menu items originating from the renderer process. For example, plugin placeholder menu items or Flash menu items. This is the first entry Custom menu items originating from the renderer process. For example, plugin placeholder menu items or Flash menu items. This is the last entry Margin type for PDF printing. Default margins. No margins. Minimum margins Custom margins. Return value types. Cancel immediately. Continue immediately. Continue asynchronously (usually via a callback). Represents the state of a setting. Use the default state for the setting. Enable or allow the setting. Disable or disallow the setting. Process termination status values. Non-zero exit status. SIGKILL or task manager kill. Segmentation fault. Out of memory. Some platforms may use ProcessCrashed instead. Managed enum for cef_thread_id_t/CefThreadId The CEF UI thread in the browser. In CefSharp this is ALWAYS separate from the application's main thread (and thus the main WinForm UI thread). 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 certificate status code values. See net\cert\cert_status_flags.h for more information. CERT_STATUS_NONE is new in CEF because we use an enum while cert_status_flags.h uses a typedef and static const variables. Supported context menu edit state bit flags. Supported context menu media state bit flags. Supported context menu media types. No special node is in context. An image node is selected. A video node is selected. An audio node is selected. A file node is selected. A plugin node is selected. ContextMenuType 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. Return values for IResponseFilter Some or all of the pre-filter data was read successfully but more data is needed in order to continue filtering (filtered output is pending). Some or all of the pre-filter data was read successfully and all available filtered output has been written. An error occurred during filtering. 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. Default logging (currently Info logging) Verbose logging. Info logging Warning logging Error logging Completely disable logging Paint element types. Plugin policies supported by IPluginHandler.OnBeforePluginLoad. Allow the content Allow important content and block unimportant content based on heuristics. The user can manually load blocked content. Block the content. The user can manually load blocked content. Disable the content. The user cannot load disabled content. Post data elements may represent either bytes or files. Always send the complete Referrer value. Use the default policy. This is OriginWhenCrossOrigin when the `--reduced-referrer-granularity` command-line flag is specified and NoReferrerWhenDowngrade otherwise. When navigating from HTTPS to HTTP do not send the Referrer value. Otherwise, send the complete Referrer value. Never send the Referrer value. Only send the origin component of the Referrer value. When navigating cross-origin only send the origin component of the Referrer value. Otherwise, send the complete Referrer value. Resource type for a request. Top level page. Frame or iframe. CSS stylesheet. External script. Image (jpg/gif/png/etc). Font. Some other subresource. This is the default type if the actual type is unknown. Object (or embed) tag for a plugin, or a resource that a plugin requested. Media resource. Main resource of a dedicated worker. Main resource of a shared worker. Explicitly requested prefetch. Favicon. XMLHttpRequest. A request for a ping Main resource of a service worker. A report of Content Security Policy violations. A resource that a plugin requested. Supported SSL content status flags. See content/public/common/ssl_status.h for more information. Supported SSL version values. See net/ssl/ssl_connection_status_flags.h for more information. 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. Flags that represent CefURLRequest status. 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. The manner in which a link click should be opened. Event arguments for the AddressChanged event handler. Access to the underlying object The new address Creates a new AddressChangedEventArgs event argument. the browser object the address Event arguments for the ConsoleMessage event handler set up in IWebBrowser. Creates a new ConsoleMessageEventArgs event argument. level message source line number Log level The message text of the console message. The source of the console message. The line number that generated the console message. Event arguments to the FrameLoadEnd event handler set up in IWebBrowser. Creates a new FrameLoadEnd event args browser frame http statusCode The browser that contains the frame that finished loading. The frame that finished loading. The URL that was loaded. Http Status Code Event arguments to the FrameLoadStart event handler set up in IWebBrowser. Creates a new FrameLoadStart event args browser frame provides information about the source of the navigation and an accurate value is only available in the browser process The browser object The frame that just started loading. The URL that was loaded. TransitionType provides information about the source of the navigation. Event arguments for the IsBrowserInitializedChanged event handler. TODO: Remove this event args, we don't actually use it (event is only fired once) Is browser initialized Default constructor bool Event arguments to the LoadError event handler set up in IWebBrowser. LoadErrorEventArgs browser frame error code error text failed url The browser object The frame that failed to load. The URL that failed to load. The error code. The error text. Event arguments to the LoadingStateChanged event handler set up in IWebBrowser. Returns true if the browser can navigate forwards. Returns true if the browser can navigate backwards. Returns true if the browser can reload. Returns true if the browser is loading. Access to the underlying object LoadingStateChangedEventArgs browser can go back can go forward is loading Event arguments to the StatusMessage event handler set up in IWebBrowser. StatusMessageEventArgs browser status message value The browser object The value of the status message. Event arguments to the TitleChanged event handler. The new title Creates a new TitleChanged event arg the new title Implement this interface to handle events related to browser process callbacks. The methods of this class will be called on the CEF UI thread unless otherwise indicated. . Called on the CEF UI thread immediately after the CEF context has been initialized. You can now access the Global RequestContext through Cef.GetGlobalRequestContext() - this is the first place you can set Preferences (e.g. proxy settings, spell check dictionaries). Called from any thread when work has been scheduled for the browser process main (UI) thread. This callback is used in combination with CefSettings. ExternalMessagePump and Cef.DoMessageLoopWork() in cases where the CEF message loop must be integrated into an existing application message loop (see additional comments and warnings on Cef.DoMessageLoopWork). This callback should schedule a Cef.DoMessageLoopWork() call to happen on the main (UI) thread. is the requested delay in milliseconds. If delay is less than or equal to 0 then the call should happen reasonably soon. If delay is greater than 0 then the call should be scheduled to happen after the specified delay and any currently pending scheduled call should be cancelled. Implement this interface to handle context menu events. Called before a context menu is displayed. The model can be cleared to show no context menu or modified to show a custom menu. the ChromiumWebBrowser control the browser object The frame the request is coming from provides information about the context menu state initially contains the default context menu Called to execute a command selected from the context menu. 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 ChromiumWebBrowser control the browser object The frame the request is coming from will have the same values as what was passed to menu command id event flags Return true if the command was handled or false for the default implementation. Called when the context menu is dismissed irregardless of whether the menu was empty or a command was selected. the ChromiumWebBrowser control the browser object The frame the request is coming from Called to allow custom display of the context menu. For custom display return true and execute callback either synchronously or asynchronously with the selected command Id. For default display return false. Do not keep references to parameters or model outside of this callback. the ChromiumWebBrowser control the browser object The frame the request is coming from provides information about the context menu state contains the context menu model resulting from OnBeforeContextMenu the callback to execute for custom display For custom display return true and execute callback either synchronously or asynchronously with the selected command ID. Implement this interface to handle dialog events. The methods of this class will be called on the CEF UI thread. Runs a file chooser dialog. To test assign something like TempFileDialogHandler (from CefSharp.Example) to DialogHandler e.g. browser.DialogHandler = new TempFileDialogHandler(); Example URL to use for file browsing http://www.cs.tut.fi/~jkorpela/forms/file.html#example Simply click browse, the space next to the browse button should be populated with a randomly generated filename. the ChromiumWebBrowser control the browser object represents the type of dialog to display further specifies behavior dialog should exhibit the title to be used for the dialog. It may be empty to show the default title ("Open" or "Save" depending on the mode). is the path with optional directory and/or file name component that should be initially selected in the dialog. 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"), (c) combined description and file extension delimited using "|" and ";" (e.g. "Image Types|.png;.gif;.jpg"). is the 0-based index of the filter that should be selected by default. Callback interface for asynchronous continuation of file dialog requests. To display a custom dialog return true. To display the default dialog return false. Handle events related to browser display state. Called when a frame's address has changed. the ChromiumWebBrowser control args Called when auto-resize is enabled via IBrowserHost.SetAutoResizeEnabled and the contents have auto-resized. the ChromiumWebBrowser control the browser object will be the desired size in view coordinates Return true if the resize was handled or false for default handling. Called when the page title changes. the ChromiumWebBrowser control args Called when the page icon changes. the ChromiumWebBrowser control the browser object list of urls where the favicons can be downloaded Called when web content in the page has toggled fullscreen mode. The client is responsible for resizing the browser if desired. The ChromiumWebBrowser control the browser object If true the content will automatically be sized to fill the browser content area. If false the content will automatically return to its original size and position. Called when the browser is about to display a tooltip. text contains the text that will be displayed in the tooltip. 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. The ChromiumWebBrowser control the text that will be displayed in the tooltip To handle the display of the tooltip yourself return true otherwise return false to allow the browser to display the tooltip. Only called when using Off-screen rendering (WPF and OffScreen) Called when the browser receives a status message. The control this popup is related to. args Called to display a console message. The ChromiumWebBrowser control args Return true to stop the message from being output to the console. Class used to handle file downloads. The methods of this class will called on the CEF UI thread. Called before a download begins. the ChromiumWebBrowser control The browser instance Represents the file being downloaded. Callback interface used to asynchronously continue a download. Called when a download's status or progress information has been updated. This may be called multiple times before and after . the ChromiumWebBrowser control The browser instance Represents the file being downloaded. The callback used to Cancel/Pause/Resume the process 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. the ChromiumWebBrowser control the browser object contains the drag event data 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 IList. the ChromiumWebBrowser control the browser object List of objects or null if last region was removed. Implement this interface to handle events related to find results. The methods of this class will be called on the CEF UI thread. Called to report find results returned by the ChromiumWebBrowser control the browser object is the identifier passed to Find() is the number of matches currently identified is the location of where the match was found (in window coordinates) is the current position in the search results 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 CEF UI thread. Called when the browser component has received focus. the ChromiumWebBrowser control the browser object Called when the browser component is requesting focus. the ChromiumWebBrowser control the browser object, do not keep a reference to this object outside of this method 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 is about to lose focus. For instance, if focus was on the last HTML element and the user pressed the TAB key. the ChromiumWebBrowser control the browser object 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. Implement this interface to handle events related to JavaScript dialogs. The methods of this class will be called on the CEF UI thread. Called to run a JavaScript dialog. the ChromiumWebBrowser control the browser object originating url Dialog Type Message Text value will be specified for prompt dialogs only Callback can be executed inline or in an async fashion Set suppressMessage 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 suppressMessage 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 once the custom dialog is dismissed. the ChromiumWebBrowser control the browser object message text (optional) indicates a page reload Callback can be executed inline or in an async fashion Return false to use the default dialog implementation otherwise return true to handle with your own custom implementation. 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. the ChromiumWebBrowser control the browser object Called when the default implementation dialog is closed. the ChromiumWebBrowser control the browser object Implement this interface to handle events related to keyboard input. Called before a keyboard event is sent to the renderer. Return true if the event was handled or false otherwise. If the event will be handled in as a keyboard shortcut set isKeyboardShortcut to true and return false. the ChromiumWebBrowser control The browser instance. Whether this was a key up/down/raw/etc... 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 native key code. On Windows this appears to be in the format of WM_KEYDOWN/WM_KEYUP/etc... lParam data. What other modifier keys are currently down: Shift/Control/Alt/OS X Command/etc... Indicates whether the event is considered a "system key" event (see http://msdn.microsoft.com/en-us/library/ms646286(VS.85).aspx for details). See the summary for an explanation of when to set this to true. Returns true if the event was handled or false otherwise. Called after the renderer and JavaScript in the page has had a chance to handle the event. Return true if the keyboard event was handled or false otherwise. the ChromiumWebBrowser control The browser instance. Whether this was a key up/down/raw/etc... 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 native key code. On Windows this appears to be in the format of WM_KEYDOWN/WM_KEYUP/etc... lParam data. What other modifier keys are currently down: Shift/Control/Alt/OS X Command/etc... Indicates whether the event is considered a "system key" event (see http://msdn.microsoft.com/en-us/library/ms646286(VS.85).aspx for details). 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 CEF UI thread unless otherwise indicated. Called before a popup window is created. the ChromiumWebBrowser control The browser instance that launched this popup. The HTML frame that launched this popup. The URL of the popup content. (This may be empty/null) The name of the popup. (This may be empty/null) The value indicates where the user intended to open the popup (e.g. current tab, new tab, etc) The 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). structure contains additional information about the requested popup window window information browser settings, defaults to source browsers value indicates whether the new browser window should be scriptable and in the same process as the source browser. EXPERIMENTAL - A newly created browser that will host the popup. Set to null for default behaviour. To cancel creation of the popup window return true otherwise return false. CEF documentation: Called on the IO thread before a new popup window is created. The |browser| and |frame| parameters represent the source of the popup request. The |target_url| and |target_frame_name| values may be empty if none were specified with the request. The |popupFeatures| structure contains information about the requested popup window. To allow creation of the popup window optionally modify |windowInfo|, |client|, |settings| and |no_javascript_access| and return false. To cancel creation of the popup window return true. The |client| and |settings| values will default to the source browser's values. The |no_javascript_access| value indicates whether the new browser window should be scriptable and in the same process as the source browser. Called after a new browser is created. the ChromiumWebBrowser control The browser instance 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. the ChromiumWebBrowser control The browser instance - check if IsDisposed as it's possible when the browser is disposing For default behaviour return false Called before a CefBrowser window (either the main browser for , or one of its children) the ChromiumWebBrowser control The browser instance Implement this interface to handle events related to browser load status. The methods of this interface will be called on the CEF UI thread. Blocking in these methods will likely cause your UI to become unresponsive and/or hang. 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. This method will be called on the CEF UI thread. Blocking this thread will likely cause your UI to become unresponsive and/or hang. the ChromiumWebBrowser control args Called when the browser begins loading a frame. The value will never be empty Check the method to see 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 instead. This method will be called on the CEF UI thread. Blocking this thread will likely cause your UI to become unresponsive and/or hang. the ChromiumWebBrowser control args Whilst thist may seem like a logical place to execute js, it's called before the DOM has been loaded, implement as it's called when the underlying V8Context is created (Only called for the main frame at this stage) Called when the browser is done loading a frame. The value will never be empty Check the method to see 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. This method will be called on the CEF UI thread. Blocking this thread will likely cause your UI to become unresponsive and/or hang. the ChromiumWebBrowser control args Called when the resource load for a navigation fails or is canceled. is the error code number, is the error text and is the URL that failed to load. See net\base\net_error_list.h for complete descriptions of the error codes. This method will be called on the CEF UI thread. Blocking this thread will likely cause your UI to become unresponsive and/or hang. the ChromiumWebBrowser control args Messages sent by the render process can be handled by implementing this interface. OnContextCreated is called in the Render process immediately after a CefV8Context is created. An IPC message is immediately sent to notify the context has been created (should be safe to execute javascript). If the page has no javascript then no V8Context will be created and as a result this method will not be called. Called for every V8Context. To determine if V8Context is from Main frame check The ChromiumWebBrowser control The browser object The frame. OnContextReleased is called in the Render process immediately before the CefV8Context is released. An IPC message is immediately sent to notify the context has been released (cannot execute javascript this point). If the page had no javascript then the context would not have been created and as a result this method will not be called. Called for every V8Context. To determine if V8Context is from Main frame check The ChromiumWebBrowser control The browser object The frame. Invoked when an element in the UI gains focus (or possibly no element gains focus; i.e. an element lost focus). The ChromiumWebBrowser control The browser object The frame object An object with information about the node (if any) that has focus. OnUncaughtException is called for global uncaught exceptions in a frame. Execution of this callback is disabled by default. To enable set CefSettings.UncaughtExceptionStackSize > 0. The ChromiumWebBrowser control The browser object The frame The exception object with the message and stacktrace. Implement this interface to provide handler implementations. The handler instance will not be released until all objects related to the context have been destroyed. Implement this interface to cancel loading of specific plugins Called on the browser process IO thread to retrieve the cookie manager. If this method returns NULL the default cookie manager retrievable via IRequestContext.GetDefaultCookieManager() will be used. If this method returns null the default cookie manager retrievable via IRequestContext.GetDefaultCookieManager() will be used.. Called on the CEF IO thread before a plugin instance is loaded. The default plugin policy can be set at runtime using the `--plugin-policy=[allow|detect|block]` command-line flag. is the mime type of the plugin that will be loaded is the content URL that the plugin will load and may be empty will be true if the plugin is being loaded in the main (top-level) frame is the URL for the top-level frame that contains the plugin includes additional information about the plugin that will be loaded Modify and return true to change the policy. Return false to use the recommended policy. Modify and return true to change the policy. Called immediately after the request context has been initialized. It's important to note this event is fired on a CEF UI thread, which by default is not the same as your application UI thread. the request context Implement this interface to handle events related to browser requests. The methods of this class will be called on the thread indicated. Called before browser navigation. If the navigation is allowed and will be called. If the navigation is canceled will be called with an ErrorCode value of . the ChromiumWebBrowser control the browser object The frame the request is coming from the request object - cannot be modified in this callback The 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). has the request been redirected Return true to cancel the navigation or false to allow the navigation to proceed. 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 ChromiumWebBrowser control the browser object The frame object target url The value indicates where the user intended to navigate the browser based on standard Chromium behaviors (e.g. current tab, new tab, etc). The 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 to handle requests for URLs with an invalid SSL certificate. Return true and call either in this method or at a later time to continue or cancel the request. If CefSettings.IgnoreCertificateErrors is set all invalid certificates will be accepted without calling this method. the ChromiumWebBrowser control the browser object the error code for this invalid certificate the url of the request for the invalid certificate ssl certificate information Callback interface used for asynchronous continuation of url requests. If empty the error cannot be recovered from and the request will be canceled automatically. Return false to cancel the request immediately. Return true and use to execute in an async fashion. Called when a plugin has crashed the ChromiumWebBrowser control the browser object path of the plugin that crashed Called before a resource request is loaded. For async processing return and execute or The ChromiumWebBrowser control the browser object The frame object the request object - can be modified in this callback. Callback interface used for asynchronous continuation of url requests. To cancel loading of the resource return or to allow the resource to load normally. For async return Called when the browser needs credentials from the user. The ChromiumWebBrowser control the browser object The frame object that needs credentials (This will contain the URL that is being requested.) indicates whether the host is a proxy server hostname port number realm scheme Callback interface used for asynchronous continuation of authentication requests. Return true to continue the request and call CefAuthCallback::Continue() when the authentication information is available. Return false to cancel the request. Called when the browser needs user to select Client Certificate for authentication requests (eg. PKI authentication). The ChromiumWebBrowser control the browser object indicates whether the host is a proxy server hostname port number List of Client certificates for selection Callback interface used for asynchronous continuation of client certificate selection for authentication requests. Return true to continue the request and call ISelectClientCertificateCallback.Select() with the selected certificate for authentication. Return false to use the default behavior where the browser selects the first certificate from the list. Called when the render process terminates unexpectedly. The ChromiumWebBrowser control the browser object indicates how the process terminated. Called on the CEF IO thread before sending a network request with a "Cookie" request header. The ChromiumWebBrowser control the browser object The frame object the request object - cannot be modified in this callback Return true to allow cookies to be included in the network request or false to block cookies Called on the CEF IO thread when receiving a network request with a "Set-Cookie" response header value represented by cookie. The ChromiumWebBrowser control the browser object The frame object the request object - cannot be modified in this callback the cookie object Return true to allow the cookie to be stored or false to block the cookie. Called when JavaScript requests a specific storage quota size via the webkitStorageInfo.requestQuota function. For async processing return true and execute at a later time to grant or deny the request or to cancel. The ChromiumWebBrowser control the browser object the origin of the page making the request is the requested quota size in bytes Callback interface used for asynchronous continuation of url requests. Return false to cancel the request immediately. Return true to continue the request and call either in this method or at a later time to grant or deny the request. Called on the IO thread when a resource load is redirected. The parameter will contain the old URL and other request-related information. The ChromiumWebBrowser control the browser object The frame that is being redirected. the request object - cannot be modified in this callback the response object the new URL and can be changed if desired Called on the UI thread to handle requests for URLs with an unknown protocol component. SECURITY WARNING: YOU SHOULD USE THIS METHOD TO ENFORCE RESTRICTIONS BASED ON SCHEME, HOST OR OTHER URL ANALYSIS BEFORE ALLOWING OS EXECUTION. The ChromiumWebBrowser control the browser object the request url return to true to attempt execution via the registered OS protocol handler, if any. Otherwise return false. Called on the CEF UI thread when the render view associated with browser is ready to receive/handle IPC messages in the render process. The ChromiumWebBrowser control the browser object Called on the CEF 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. The ChromiumWebBrowser control the browser object The frame that is being redirected. the request object the response object - cannot be modified in this callback 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. Called on the CEF IO thread to optionally filter resource response content. The ChromiumWebBrowser control the browser object The frame that is being redirected. the request object - cannot be modified in this callback the response object - cannot be modified in this callback Return an IResponseFilter to intercept this response, otherwise return null Called on the CEF IO thread when a resource load has completed. The ChromiumWebBrowser control the browser object The frame that is being redirected. the request object - cannot be modified in this callback the response object - cannot be modified in this callback indicates the load completion status is the number of response bytes actually read. Class used to implement a custom resource handler. The methods of this class will always be called on the CEF IO thread. Blocking the CEF IO thread will adversely affect browser performance. We suggest you execute your code in a Task (or similar). To implement async handling, spawn a new Task (or similar), keep a reference to the callback. When you have a fully populated stream, execute the callback. Once the callback Executes, GetResponseHeaders will be called where you can modify the response including headers, or even redirect to a new Url. Set your responseLength and headers Populate the dataOut stream in ReadResponse. For those looking for a sample implementation or upgrading from a previous version . For those upgrading, inherit from ResourceHandler instead of IResourceHandler add the override keywoard to existing methods e.g. ProcessRequestAsync. Begin processing the request. The request object. The callback used to Continue or Cancel the request (async). To handle the request return true and call once the response header information is available 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 responseLength to -1 and ReadResponse() will be called until it returns false. If the response length is known set responseLength to a positive value and ReadResponse() will be called until it returns false or the specified number of bytes have been read. If an error occured while setting up the request you can set to indicate the error condition. Use the response object to set the mime type, http status code and other optional header values. If the response length is not known set responseLength to -1 To redirect the request to a new URL set redirectUrl to the new Url. Read response data. If data is available immediately copy to dataOut, set bytesRead to the number of bytes copied, and return true. To read the data at a later time set bytesRead to 0, return true and call ICallback.Continue() when the data is available. To indicate response completion return false. Stream to write to Number of bytes copied to the stream The callback used to Continue or Cancel the request (async). If data is available immediately copy to dataOut, set bytesRead to the number of bytes copied, and return true.To indicate response completion return false. Depending on this size of your response this method may be called multiple times 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. cookie 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. cookie Return true if the specified cookie returned with the response can be set or false otherwise. Request processing has been canceled. Interface representing browser initialization settings. StandardFontFamily FixedFontFamily SerifFontFamily SansSerifFontFamily CursiveFontFamily FantasyFontFamily DefaultFontSize DefaultFixedFontSize MinimumFontSize MinimumLogicalFontSize 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. (Used to Enable/Disable javascript) Also configurable using the "disable-javascript" command-line switch. Controls whether JavaScript can be used to close windows that were not opened via JavaScript. JavaScript can still be used to close windows that were opened via JavaScript. Also configurable using the "disable-javascript-close-windows" command-line switch. Controls whether JavaScript can access the clipboard. Also configurable using the "disable-javascript-access-clipboard" command-line switch. Controls whether DOM pasting is supported in the editor via execCommand("paste"). The |javascript_access_clipboard| setting must also be enabled. Also configurable using the "disable-javascript-dom-paste" command-line switch. Controls whether any plugins will be loaded. Also configurable using the "disable-plugins" command-line switch. Controls whether file URLs will have access to all URLs. Also configurable using the "allow-universal-access-from-files" command-line switch. Controls whether file URLs will have access to other file URLs. Also configurable using the "allow-access-from-files" command-line switch. Controls whether web security restrictions (same-origin policy) will be enforced. Disabling this setting is not recommend as it will allow risky security behavior such as cross-site scripting (XSS). Also configurable using the "disable-web-security" command-line switch. Controls whether image URLs will be loaded from the network. A cached image will still be rendered if requested. Also configurable using the "disable-image-loading" command-line switch. Controls whether standalone images will be shrunk to fit the page. Also configurable using the "image-shrink-standalone-to-fit" command-line switch. Controls whether text areas can be resized. Also configurable using the "disable-text-area-resize" command-line switch. Controls whether the tab key can advance focus to links. Also configurable using the "disable-tab-to-links" command-line switch. Controls whether local storage can be used. Also configurable using the "disable-local-storage" command-line switch. Controls whether databases can be used. Also configurable using the "disable-databases" command-line switch. Controls whether the application cache can be used. Also configurable using the "disable-application-cache" command-line switch. Controls whether WebGL can be used. Note that WebGL requires hardware support and may not work on all systems even when enabled. Also configurable using the "disable-webgl" command-line switch. 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.BackgroundColor. 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.AcceptLanguageList value. If both values are empty then "en-US,en" will be used. Can be overridden for individual RequestContext instances via the RequestContextSettings.AcceptLanguageList value. 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 IBrowserHost.SetWindowlessFrameRate. Gets a value indicating if the browser settings has been disposed. Represents the tag name and attribute data belonging to a node in the browser's DOM. Get the value of an attribute. The name of the attribute value to get. The attribute value if the name exists in the DomNode's attributes. Null if the name does not exist. The name of the HTML element. Get a read only list of the attribute names. Determine if the DomNode has the requested attribute. The name of the attribute value. True if the attribute exists in the DomNode, false if it does not. Class representing popup window features. 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 by setting the property (Passing in via the constructor for the OffScreen control is preferred). 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. Returns true if this object is pointing to the same context object. context to compare Returns true if the same Returns true if this object is sharing the same storage as the specified context. context to compare Returns true if same storage 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 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 IRequestContextHandler.GetCookieManager(). If callback is non-NULL it will be executed asnychronously on the CEF IO thread after the manager's storage has been initialized. Returns the default cookie manager for this object Register a scheme handler factory for the specified schemeName and optional domainName. An empty domainName value for a standard scheme will cause the factory to match all domain names. The domainName value will be ignored for non-standard schemes. If schemeName is a built-in scheme and no handler is returned by factory then the built-in scheme handler factory will be called. If schemeName 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 schemeName and optional domainName. Scheme Name Optional domain name Scheme handler factory Returns false if an error occurs. Clear all registered scheme handler factories. Returns false on error. Returns the cache path for this object. If empty an "incognito mode" in-memory cache is being used. Tells all renderer processes associated with this context to throw away their plugin list cache. If reloadPages is true they will also reload all pages with plugins. RequestContextHandler.OnBeforePluginLoad may be called to rebuild the plugin list cache. reload any pages with pluginst Returns true if a preference with the specified name exists. This method must be called on the CEF UI thread. name of preference bool if the preference exists Use Cef.UIThreadTaskFactory to execute this method if required, and ChromiumWebBrowser.IsBrowserInitializedChanged are both executed on the CEF UI thread, so can be called directly. When CefSettings.MultiThreadedMessageLoop == false (the default is true) then the main application thread will be the CEF UI thread. Returns the value for the preference with the specified name. Returns NULL if the preference does not exist. The returned object contains a copy of the underlying preference value and modifications to the returned object will not modify the underlying preference value. This method must be called on the CEF UI thread. preference name Returns the value for the preference with the specified name Use Cef.UIThreadTaskFactory to execute this method if required, and ChromiumWebBrowser.IsBrowserInitializedChanged are both executed on the CEF UI thread, so can be called directly. When CefSettings.MultiThreadedMessageLoop == false (the default is true) then the main application thread will be the CEF UI thread. Returns all preferences as a dictionary. The returned object contains a copy of the underlying preference values and modifications to the returned object will not modify the underlying preference values. This method must be called on the browser process UI thread. If true then preferences currently at their default value will be included. Preferences (dictionary can have sub dictionaries) Returns true if the preference with the specified name can be modified using SetPreference. As one example preferences set via the command-line usually cannot be modified. This method must be called on the CEF UI thread. preference key Returns true if the preference with the specified name can be modified using SetPreference Use Cef.UIThreadTaskFactory to execute this method if required, and ChromiumWebBrowser.IsBrowserInitializedChanged are both executed on the CEF UI thread, so can be called directly. When CefSettings.MultiThreadedMessageLoop == false (the default is true) then the main application thread will be the CEF UI thread. Set the value associated with preference name. If value is null the preference will be restored to its default value. If setting the preference fails then error will be populated with a detailed description of the problem. This method must be called on the CEF UI thread. Preferences set via the command-line usually cannot be modified. preference key preference value out error Returns true if the value is set successfully and false otherwise. Use Cef.UIThreadTaskFactory to execute this method if required, and ChromiumWebBrowser.IsBrowserInitializedChanged are both executed on the CEF UI thread, so can be called directly. When CefSettings.MultiThreadedMessageLoop == false (the default is true) then the main application thread will be the CEF UI thread. Clears all certificate exceptions that were added as part of handling . If you call this it is recommended that you also call or you risk not being prompted again for server certificates if you reconnect quickly. If is non-NULL it will be executed on the CEF UI thread after completion. This param is optional Clears all active and idle connections that Chromium currently has. This is only recommended if you have released all other CEF objects but don't yet want to call Cef.Shutdown(). If is non-NULL it will be executed on the CEF UI thread after completion. This param is optional Attempts to resolve origin to a list of associated IP addresses. host name to resolve A task that represents the Resoolve Host operation. The value of the TResult parameter contains ResolveCallbackResult. Attempts to resolve origin to a list of associated IP addresses using cached data. This method must be called on the CEF IO thread. Use Cef.IOThreadTaskFactory to execute on that thread. host name to resolve list of resolved IP addresses or empty list if no cached data is available. Returns on success Returns true if this context was used to load the extension identified by extensionId. Other contexts sharing the same storage will also have access to the extension (see HasExtension). This method must be called on the CEF UI thread. Returns true if this context was used to load the extension identified by extensionId Returns the extension matching extensionId or null if no matching extension is accessible in this context (see HasExtension). This method must be called on the CEF UI thread. extension Id Returns the extension matching extensionId or null if no matching extension is accessible in this context Retrieve the list of all extensions that this context has access to (see HasExtension). will be populated with the list of extension ID values. This method must be called on the CEF UI thread. output a list of extensions Ids returns true on success otherwise false Returns true if this context has access to the extension identified by extensionId. This may not be the context that was used to load the extension (see DidLoadExtension). This method must be called on the CEF UI thread. extension id Returns true if this context has access to the extension identified by extensionId Load an extension. If extension resources will be read from disk using the default load implementation then rootDirectoy should be the absolute path to the extension resources directory and manifestJson should be null. If extension resources will be provided by the client (e.g. via IRequestHandler and/or IExtensionHandler) then rootDirectory should be a path component unique to the extension (if not absolute this will be internally prefixed with the PK_DIR_RESOURCES path) and manifestJson should contain the contents that would otherwise be read from the "manifest.json" file on disk. The loaded extension will be accessible in all contexts sharing the same storage (HasExtension returns true). However, only the context on which this method was called is considered the loader (DidLoadExtension returns true) and only the loader will receive IRequestContextHandler callbacks for the extension. will be called on load success or will be called on load failure. If the extension specifies a background script via the "background" manifest key then will be called to create the background browser. See that method for additional information about background scripts. For visible extension views the client application should evaluate the manifest to determine the correct extension URL to load and then load the extension URL in a ChromiumWebBrowser instance after the extension has loaded. For example, the client can look for the "browser_action" manifest key as documented at https://developer.chrome.com/extensions/browserAction. Extension URLs take the form "chrome-extension://<extension_id>/<path>" Browsers that host extensions differ from normal browsers as follows: - Can access chrome.* JavaScript APIs if allowed by the manifest. Visit chrome://extensions-support for the list of extension APIs currently supported by CEF. - Main frame navigation to non-extension content is blocked. - Pinch-zooming is disabled. - returns the hosted extension. - CefBrowserHost::IsBackgroundHost returns true for background hosts. See https://developer.chrome.com/extensions for extension implementation and usage documentation. If extension resources will be read from disk using the default load implementation then rootDirectoy should be the absolute path to the extension resources directory and manifestJson should be null If extension resources will be provided by the client then rootDirectory should be a path component unique to the extension and manifestJson should contain the contents that would otherwise be read from the manifest.json file on disk handle events related to browser extensions For extensions that load a popup you are required to query the Manifest, build a Url in the format chrome-extension://{extension.Identifier}/{default_popup} with default_popup url coming from the mainfest. With the extension url you then need to open a new Form/Window/Tab and create a new ChromiumWebBrowser instance to host the extension popup. To load a crx file you must first unzip them to a folder and pass the path containing the extension as . It in theory should be possible to load a crx file in memory, passing it's manifest.json file content as then fulfilling the resource rquests made to . Implement this interface to filter resource response content. The methods of this class will be called on the CEF IO thread. Initialize the response filter. Will only be called a single time. The filter will not be installed if this method returns false. The filter will not be installed if this method returns false. Called to filter a chunk of data. This method will be called repeatedly until there is no more data to filter (resource response is complete), dataInRead matches dataIn.Length (all available pre-filter bytes have been read), and the method returns FilterStatus.Done or FilterStatus.Error. is a Stream wrapping the underlying input buffer containing pre-filter data. Can be null. Set to the number of bytes that were read from dataIn is a Stream wrapping the underlying output buffer that can accept filtered output data. Check dataOut.Length for maximum buffer size Set to the number of bytes that were written into dataOut If some or all of the pre-filter data was read successfully but more data is needed in order to continue filtering (filtered output is pending) return FilterStatus.NeedMoreData. If some or all of the pre-filter data was read successfully and all available filtered output has been written return FilterStatus.Done. If an error occurs during filtering return FilterStatus.Error. Do not keep a reference to the buffers(Streams) passed to this method. Model binding context object Binding destination type The generic type of a collection is only used when DestinationType is a enumerable. The current model object (or null for body deserialization) DestinationType properties that are not black listed The incoming data fields Represents a bindable member of a type, which can be a property or a field. Gets a reference to the MemberInfo that this BindingMemberInfo represents. This can be a property or a field. Gets the name of the property or field represented by this BindingMemberInfo. Gets the data type of the property or field represented by this BindingMemberInfo. Constructs a BindingMemberInfo instance for a property. The bindable property to represent. Constructs a BindingMemberInfo instance for a field. The bindable field to represent. Sets the value from a specified object associated with the property or field represented by this BindingMemberInfo. The object whose property or field should be assigned. The value to assign in the specified object to this BindingMemberInfo's property or field. Compares two BindingMemberInfo's with eachother on their respective values rather then their reference the other BindingMemberInfo true when they are equal and false otherwise Returns an enumerable sequence of bindable properties for the specified type. The type to enumerate. Bindable properties. Returns an enumerable sequence of bindable properties for the specified type. The type to enumerate. Bindable properties. Default binder - used as a fallback when a specific modelbinder is not available. List of property names to be ignored DefaultBinder constructor used to convert field names to property names Bind to the given model type object to be converted into a model Model type to bind to Bound model CreateBindingContext - Can be overriden to change some binding context features object model type generic type binding context BindValue model property object context Get binding members model type generic type collection of binding member informations Create model based on type model type generic type a new instance of the object type Gets the value for the property name property name context value or null Gets the value based on the index, used to accessing objects in a collection. binding context index element or null Default field name converter Converts camel case to pascal case Initializes a new instance of the class. Converts a field name to a property name Field name Property name Provides the capability intercept Net method calls made from javascript as part of the JavascriptBinding (JSB) implementation. One example use case is logging method calls. Called before the method is invokved. You are now responsible for evaluating the function and returning the result. A Func that represents the method to be called Name of the method to be called The method result object IMethodInterceptor.Intercept(Func<object> method, string methodName) { object result = method(); Debug.WriteLine("Called " + methodName); return result; } Binds incoming request data to a model type Bind to the given model type object to be converted into a model Model type to bind to Bound model Provides the capability to supply a convention to convert form field names to property names if required. Converts a field name to a property name Field name Property name Containing extensions for the object. Checks if a type is an array or not The type to check. if the type is an array, otherwise . Checks if a type is an collection or not The type to check. if the type is a collection, otherwise . Checks if a type is enumerable or not The type to check. if the type is an enumerable, otherwise . Represents an entry in navigation history. Returns the time for the last known successful navigation completion. Returns a display-friendly version of the URL. Returns the HTTP status code for the last known successful navigation response. Returns the original URL that was entered by the user before any redirects. Returns the title set by the page. Returns the transition type which indicates what the user did to move to this page from the previous page. Returns the actual URL of the page. Returns true if this navigation includes post data. Returns true if this object is valid. If true if this entry is the currently loaded navigation entry Returns the SSL information for this navigation entry. NavigationEntry completionTime displayUrl httpStatusCode originalUrl title transitionType url hasPostData isValid is the current entry the ssl status Print to Pdf Settings Page title to display in the header. Only used if is set to true. URL to display in the footer. Only used if is set to true. Output page size in microns. If either of these values is less than or equal to zero then the default paper size (A4) will be used. Output page size in microns. If either of these values is less than or equal to zero then the default paper size (A4) will be used. Margin in millimeters. Only used if MarginType is set to Custom. Margin in millimeters. Only used if MarginType is set to Custom. Margin in millimeters. Only used if MarginType is set to Custom. Margin in millimeters. Only used if MarginType is set to Custom. Margin type. Scale the PDF by the specified amount, defaults to 100%. Set to true to print headers and footers or false to not print headers and footers. Set to true to print the selection only or false to print all. Set to true for landscape mode or false for portrait mode. Set to true to print background graphics or false to not print background graphics. Used for managing cookies. The methods may be called on any thread unless otherwise indicated. Deletes all cookies that matches all the provided parameters. If both and are empty, all cookies will be deleted. Cookies can alternately be deleted using the Visit*Cookies() methods. This method will be executed on the CEF IO thread in an async fashion, to be notified upon completion implement and pass in as The cookie URL. If an empty string is provided, any URL will be matched. The name of the cookie. If an empty string is provided, any URL will be matched. If non-NULL it will be executed asnychronously on the CEF IO thread after the cookies have been deleted. Returns false if a non-empty invalid URL is specified, or if cookies cannot be accessed; otherwise, true. 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 will return false without setting the cookie if such characters are found. This method will be executed on the CEF IO thread in an async fashion, to be notified upon completion implement and pass in as The cookie URL The cookie If non-NULL it will be executed asnychronously on the CEF IO thread after the cookie has been set. returns false if the cookie cannot be set (e.g. if illegal charecters such as ';' are used); otherwise true. Sets the directory path that will be used for storing cookie data. If 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 to true. Session cookies are generally intended to be transient and most Web browsers do not persist them. The file path to write cookies to. A flag that determines whether session cookies will be persisted or not. If non-NULL it will be executed asnychronously on the CEF IO thread after the manager's storage has been initialized Returns false if cookies cannot be accessed Set the schemes supported by this manager. By default only "http" and "https" schemes are supported. Must be called before any cookies are accessed. The list of supported schemes. If non-NULL it will be executed asnychronously on the CEF IO thread after the change has been applied. Visits all cookies using the provided Cookie Visitor. The returned cookies are sorted by longest path, then by earliest creation date. A user-provided Cookie Visitor implementation. Returns false if cookies cannot be accessed; otherwise, true. Visits a subset of the cookies. The results are filtered by the given url scheme, host, domain and path. If is true, HTTP-only cookies will also be included in the results. The returned cookies are sorted by longest path, then by earliest creation date. The URL to use for filtering a subset of the cookies available. A flag that determines whether HTTP-only cookies will be shown in results. A user-provided Cookie Visitor implementation. Returns false if cookies cannot be accessed; otherwise, true. Flush the backing store (if any) to disk This method will be executed on the CEF IO thread in an async fashion, to be notified upon completion implement and pass in as If non-NULL it will be executed asnychronously on the CEF IO thread after the flush is complete. Returns false if cookies cannot be accessed. Returns true if disposed Supports creation and modification of menus. See for the command ids that have default implementations. All user-defined command ids should be between and . The methods of this class can only be accessed on the CEF UI thread, which by default is not the same as your application UI thread. Returns the number of items in this menu. Remove all menu items. Can be used to disable the context menu. Returns true on success. Returns true on success Returns the label at the specified index or empty if not found due to invalid range or the index being a separator. specified index Label or empty if not found due to invalid range or the index being a separator. Returns the command id at the specified index or -1 if not found due to invalid range or the index being a separator. the index Command or -1 if not found due to invalid range or the index being a separator. Removes the item with the specified commandId. the command Id Returns true on success Add an item to the menu. the command Id the label of the item Returns true on success. Add a separator to the menu. Returns true on success. Add a check item to the menu. the command Id the label of the item Returns true on success. Add a radio item to the menu. Only a single item with the specified groupId can be checked at a time. the command Id the label of the item the group id Returns true on success. Add a sub-menu to the menu. The new sub-menu is returned. the command Id the label of the item Returns the newly created . Insert a separator in the menu at the specified index. index Returns true on success. Insert an item in the menu at the specified index. index the command Id the label of the item Returns true on success. Insert a check item in the menu at the specified index. index the command Id the label of the item Returns true on success. Insert a radio item in the menu at the specified index. Only a single item with the specified groupId can be checked at a time. index the command Id the label of the item the group id Returns true on success. Insert a sub-menu in the menu at the specified index. index the command Id the label of the item Returns the newly created . Removes the item at the specified index. 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. the command Id Returns the index associated with the specified commandId or -1 if not found due to the command id not existing in the menu. Sets the command id at the specified index. index the command Id Returns true on success. Returns the label for the specified commandId or empty if not found. the command Id Returns the label for the specified commandId or empty if not found. Sets the label for the specified commandId. the command Id the label Returns true on success. Set the label at the specified index. index the label Returns true on success. Returns the item type for the specified commandId. the command Id Returns the item type for the specified commandId. Returns the item type at the specified index. index Returns the item type at the specified index. Returns the group id for the specified commandId or -1 if invalid. the command Id Returns the group id for the specified commandId or -1 if invalid. Returns the group id at the specified index or -1 if invalid. index Returns the group id at the specified index or -1 if invalid. Sets the group id for the specified commandId. the command Id the group id Returns true on success. Sets the group id at the specified index. index the group id Returns true on success. Returns the for the specified commandId or null if invalid. the command Id Returns the for the specified commandId or null if invalid. Returns the at the specified index or empty if invalid. index Returns the for the specified commandId or null if invalid. Returns true if the specified commandId is visible. the command Id Returns true if the specified commandId is visible. Returns true if the specified index is visible. index Returns true if the specified index is visible. Change the visibility of the specified commandId. the command Id visible Returns true on success. Change the visibility at the specified index. index visible Returns true on success. Returns true if the specified commandId is enabled. the command Id Returns true if the specified commandId is enabled. Returns true if the specified index is enabled. index Returns true if the specified index is enabled. Change the enabled status of the specified commandId. the command Id is enabled Returns true on success. Change the enabled status at the specified index. index is enabled Returns true on success. Returns true if the specified commandId is checked. Only applies to check and radio items. the command Id 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. index 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. the command Id set checked Returns true on success. Check the specified index. Only applies to check and radio items. index set checked Returns true on success. Returns true if the specified commandId has a keyboard accelerator assigned. the command Id Returns true if the specified commandId has a keyboard accelerator assigned. Returns true if the specified index has a keyboard accelerator assigned. index Returns true if the specified index has a keyboard accelerator assigned. Set the keyboard accelerator for the specified commandId. the command Id keyCode can be any key or character value. shift key pressed ctrl key pressed alt key pressed Returns true on success. Set the keyboard accelerator at the specified index. keyCode can be any key or character value. index keyCode can be any key or character value. shift key pressed ctrl key pressed alt key pressed Returns true on success. Remove the keyboard accelerator for the specified commandId. the command Id Returns true on success. Remove the keyboard accelerator at the specified index. index Returns true on success. Retrieves the keyboard accelerator for the specified commandId. the command Id keyCode can be any key or character value. shift key pressed ctrl key pressed alt key pressed Returns true on success. Retrieves the keyboard accelerator for the specified index. index keyCode can be any key or character value. shift key pressed ctrl key pressed alt key pressed Returns true on success. Proxy options The IP address for the proxy The port for the proxy The username for authentication The password for authentication The list of domains that shouldn't be affected by the proxy, Format: example.com;example2.com Checks if username and password is set Returns true if both username and password is set, otherwise false The IP address for the proxy The port for the proxy The username required for authentication The password required for authentication The list of domains that shouldn't be affected by the proxy, Format: example.com;example2.com Data Mime Type Whether or not the handler should be used once (true) or until manually unregistered (false) DefaultResourceHandlerFactoryItem constructor The data in byte[] format that will be used for the response mime type Whether or not the handler should be used once (true) or until manually unregistered (false) Class representing SSL information. Returns a bitmask containing any and all problems verifying the server certificate. Returns the X.509 certificate. Class representing a a keyboard event. 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. 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. Class used to represent post data for a web request. The methods of this class may be called on any thread. Add the specified . element to be added. Returns true if the add succeeds. Remove the specified . element to be removed. Returns true if the add succeeds. Retrieve the post data elements. Returns true if this object is read-only. Remove all existing post data elements. Gets a value indicating whether the object has been disposed of. Create a new instance Returns true if the underlying POST data includes elements that are not represented by this IPostData object (for example, multi-part file upload data). Modifying IPostData objects with excluded elements may result in the request failing. Class used to represent a single element in the request post data. The methods of this class may be called on any thread. Gets or sets the file name. Gets if the object is read-only. Remove all contents from the post data element. Gets the type of this . Gets or sets the bytes of this . Use this static class to configure some CefSharp specific settings like WcfTimeout Set default values for CefSharpSettings Objects registered using RegisterJsObject and RegisterAsyncJsObject will be automatically bound in the first render process that's created for a ChromiumWebBrowser instance. If you perform a cross-site navigation a process switch will occur and bound objects will no longer be automatically avaliable. For those upgrading from version 57 or below that do no perform cross-site navigation (e.g. Single Page applications or applications that only refer to a single domain) can set this property to true and use the old behaviour.Defaults to false NOTE: Set this before your first call to RegisterJsObject or RegisterAsyncJsObject Javascript binding in CefSharp version 57 and below used the --process-per-tab Process Model to limit the number of render processes to 1 per ChromiumWebBrowser instance, this allowed us to communicate bound javascript objects when the process was initially created (OnRenderViewReady is only called for the first process creation or after a crash), subsiquently all bound objects were registered in ever V8Context in OnContextCreated (executed in the render process). Chromium has made changes and --process-per-tab is not currently working. Performing a cross-site navigation (from one domain to a different domain) will cause a new render process to be created, subsiquent render processes won't have access to the bound object information by default. WCF is used by RegisterJsObject feature for Javascript Binding It's reccomended that anyone developing a new application use the RegisterAsyncJsObject version which communicates using native Chromium IPC. Change the Close timeout for the WCF channel used by the sync JSB binding. The default value is currently 2 seconds. Changing this to will result on Abort() being called on the WCF Channel Host For the WinForms and WPF instances of ChromiumWebBrowser the relevant Application Exit event is hooked and Cef.Shutdown() called by default. Set this to false to disable this behaviour. This value needs to be set before the first instance of ChromiumWebBrowser is created as the event handlers are hooked in the static constructor for the ChromiumWebBrowser class CefSharp.BrowserSubprocess will monitor the parent process and exit if the parent process closes before the subprocess. This currently defaults to false. See https://github.com/cefsharp/CefSharp/issues/2359 for more information. The proxy options that will be used for all connections If set before the call to Cef.Initialize, command line arguments will be set for you If a username and password is provided and the IPs match authentication is done automatically NOTE: GetAuthCredentials won't be called for a proxy server that matches the IP NOTE: It isn't possble to change the proxy after the call to Cef.Initialize This influences the behavior of RegisterAsyncJsObject and how method calls are made. By default the executes Tasks in a sync fashion. Setting this property to true will allocate new Tasks on TaskScheduler.Default for execution. If true a message will be sent from the render subprocess to the browser when a DOM node (or no node) gets focus. The default is false. Class used to Represent a cookie the built in .Net Cookie class isn't used as some of it's properties have internal setters The cookie name The cookie value. If domain is empty a host cookie will be created instead of a domain cookie. Domain cookies are stored with a leading "." and are visible to sub-domains whereas host cookies are not. Ss non-empty only URLs at or below the path will get the cookie value. If true the cookie will only be sent for HTTPS requests. Ss true the cookie will only be sent for HTTP requests. Expires or null of no expiry The cookie creation date. This is automatically populated by the system on cookie creation. The cookie last access date. This is automatically populated by the system on access. Default implementation of it's used internally for the LoadHtml implementation - basically a resource handler is registered for a specific Url. Resource handler thread safe dictionary Create a new instance of DefaultResourceHandlerFactory string equality comparer Register a handler for the specified Url url The data in byte[] format that will be used for the response mime type Whether or not the handler should be used once (true) or until manually unregistered (false) returns true if the Url was successfully parsed into a Uri otherwise false Unregister a handler for the specified Url Url returns true if successfully removed Are there any 's registered? Called before a resource is loaded. To specify a handler for the resource return a object The browser UI control the browser object the frame object the request object - cannot be modified in this callback To allow the resource to load normally return NULL otherwise return an instance of ResourceHandler with a valid stream DependencyChecker provides a known list of Cef/CefSharp dependencies and provides helper methods to check for their existance. en-US Locales pak file location List of Cef Dependencies List of Cef Resources (pack files) List of CefSharp Dependencies List of CefSharp.BrowserSubprocess.exe dependencies. CheckDependencies iterates through the list of Cef and CefSharp dependencines relative to the path provided and returns a list of missing ones check to see if optional dependencies are present Is loading of pack files disabled? path to check for dependencies The path to the resources directory, if empty the Executing Assembly path is used. The path to a separate executable that will be launched for sub-processes. The locale pack file e.g. List of missing dependencies, if all present an empty List will be returned Loop through dependencies and add to the returned missing dependency list if not found. The directory of the dependencies, or the current directory if null. The dependencies to check. List of missing dependencies, if all present an empty List will be returned Checks if all Cef and CefSharp dependencies were found relative to the Executing Assembly. Shortcut method that calls , throws an Exception if not files are missing. The locale, if empty then en-US will be used. The path to the locales directory, if empty locales\ will be used. The path to the resources directory, if empty the Executing Assembly path is used. Is loading of pack files disabled? The path to a separate executable that will be launched for sub-processes. Throw when not all dependencies are present CefSharp interface for CefBrowser. Returns the browser host object. This method can only be called in the browser process. the browser host object 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. Request that the browser close. The JavaScript 'onbeforeunload' event will be fired. If |forceClose| 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. Reload the current page. true a reload is performed ignoring browser cache; false a reload is performed using files from the browser cache, if available. 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. compare browser instances returns true if the same instance 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. identifier frame or null Returns the frame with the specified name, or NULL if not found. name of frame frame or null Returns the number of frames that currently exist. the number of frames Returns the identifiers of all existing frames. list of frame identifiers Returns the names of all existing frames. frame names Gets a value indicating whether the browser has been disposed of. Interface used to represent the browser process aspects of a browser window. They may be called on any thread in that process unless otherwise indicated in the comments. Add the specified word to the spelling dictionary. Request that the browser close. The JavaScript 'onbeforeunload' event will be fired. If forceClose is false the event handler, if any, will be allowed to prompt the user and the user can optionally cancel the close. If forceClose is true the prompt will not be displayed and the close will proceed. Results in a call to if the event handler allows the close or if forceClose is true See documentation for additional usage information. Explicitly close the developer tools window if one exists for this browser instance. Returns true if this browser currently has an associated DevTools browser. Must be called on the CEF UI thread. Call this method when the user drags the mouse into the web view (before calling //). Call this method each time the mouse is moved across the web view during a drag operation (after calling and before calling /). 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 ). The object being dropped is , given as an argument to the previous call. This method is only used when window rendering is disabled. Call this method when the drag operation started by a call has ended either in a drop or by being cancelled. If the web view is both the drag source and the drag target then all DragTarget* methods should be called before DragSource* methods. This method is only used when window rendering is disabled. x mouse coordinate relative to the upper-left corner of the view. y mouse coordinate relative to the upper-left corner of the view. Drag Operations mask Call this method when the user drags the mouse out of the web view (after calling ). This method is only used when window rendering is disabled. Call this method when the drag operation started by a 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. Search for text can be used to have multiple searches running simultaniously text to search for indicates whether to search forward or backward within the page indicates whether the search should be case-sensitive indicates whether this is the first request or a follow-up The IFindHandler instance, if any, will be called to report find results. Returns the extension hosted in this browser or null if no extension is hosted. See for details. Retrieve the window handle of the browser that opened this browser. The handler Retrieve the window handle for this browser. The handler Get the current zoom level. The default zoom level is 0.0. This method can only be called on the CEF UI thread. a that when executed returns the zoom level as a double. Invalidate the view. The browser will call CefRenderHandler::OnPaint asynchronously. This method is only used when window rendering is disabled (OSR). indicates which surface to re-paint either View or Popup. Returns true if this browser is hosting an extension background script. Background hosts do not have a window and are not displayable. See for details. Returns true if this browser is hosting an extension background script. Begins a new composition or updates the existing composition. Blink has a special node (a composition node) that allows the input method to change text without affecting other DOM nodes. This method may be called multiple times as the composition changes. When the client is done making changes the composition should either be canceled or completed. To cancel the composition call ImeCancelComposition. To complete the composition call either ImeCommitText or ImeFinishComposingText. Completion is usually signaled when: The client receives a WM_IME_COMPOSITION message with a GCS_RESULTSTR flag (on Windows). This method is only used when window rendering is disabled. (WPF and OffScreen) is the optional text that will be inserted into the composition node is an optional set of ranges that will be underlined in the resulting text. is an optional range of the existing text that will be replaced. (MAC OSX ONLY) is an optional range of the resulting text that will be selected after insertion or replacement. Completes the existing composition by optionally inserting the specified text into the composition node. This method is only used when window rendering is disabled. (WPF and OffScreen) text that will be committed is an optional range of the existing text that will be replaced. (MAC OSX ONLY) is where the cursor will be positioned relative to the current cursor position. (MAC OSX ONLY) Completes the existing composition by applying the current composition node contents. See comments on ImeSetComposition for usage. This method is only used when window rendering is disabled. (WPF and OffScreen) If keepSelection is false the current selection, if any, will be discarded. Cancels the existing composition and discards the composition node contents without applying them. See comments on ImeSetComposition for usage. This method is only used when window rendering is disabled. (WPF and OffScreen) Get/Set Mouse cursor change disabled Notify the browser that the window hosting it is about to be moved or resized. 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. Print the current browser contents. Asynchronously prints the current browser contents to the Pdf file specified. The caller is responsible for deleting the file when done. Output file location. Print Settings, can be null Callback executed when printing complete If a misspelled word is currently selected in an editable node calling this method will replace it with the specified word. word to be replaced Call to run a file chooser dialog. Only a single file chooser dialog may be pending at any given time. The dialog will be initiated asynchronously on the CEF UI thread. represents the type of dialog to display 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) is the path with optional directory and/or file name component that will be initially selected in the dialog 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") is the 0-based index of the filter that will be selected by default will be executed after the dialog is dismissed or immediately if another dialog is already pending. Returns the request context for this browser. Issue a BeginFrame request to Chromium. Only valid when is set to true. Send a capture lost event to the browser. Send a focus event to the browser. . (Used for OSR Rendering e.g. WPF or OffScreen) set focus Send a key event to the browser. represents keyboard event Send key event to browser based on operating system message message wParam lParam Send a mouse click event to the browser. mouse event - x, y and modifiers Mouse ButtonType mouse up click count Send a mouse wheel event to the browser. mouse event - x, y and modifiers Movement delta for X direction. movement delta for Y direction. Set accessibility state for all frames. If accessibilityState is Default then accessibility will be disabled by default and the state may be further controlled with the "force-renderer-accessibility" and "disable-renderer-accessibility" command-line switches. If accessibilityState is STATE_ENABLED then accessibility will be enabled. If accessibilityState is STATE_DISABLED then accessibility will be completely disabled. For windowed browsers accessibility will be enabled in Complete mode (which corresponds to kAccessibilityModeComplete in Chromium). In this mode all platform accessibility objects will be created and managed by Chromium's internal implementation. The client needs only to detect the screen reader and call this method appropriately. For example, on Windows the client can handle WM_GETOBJECT with OBJID_CLIENT to detect accessibility readers. For windowless browsers accessibility will be enabled in TreeOnly mode (which corresponds to kAccessibilityModeWebContentsOnly in Chromium). In this mode renderer accessibility is enabled, the full tree is computed, and events are passed to IAccessibiltyHandler, but platform accessibility objects are not created. The client may implement platform accessibility objects using IAccessibiltyHandler callbacks if desired. may be default, enabled or disabled. Enable notifications of auto resize via IDisplayHandler.OnAutoResize. Notifications are disabled by default. enable auto resize minimum size maximum size Set whether the browser is focused. (Used for Normal Rendering e.g. WinForms) set focus Change the zoom level to the specified value. Specify 0.0 to reset the zoom level. If called on the CEF UI thread the change will be applied immediately. Otherwise, the change will be applied asynchronously on the UI thread. zoom level Open developer tools in its own window. If inspectElementAtX and/or inspectElementAtY are specified then the element at the specified (x,y) location will be inspected. window info used for showing dev tools x coordinate (used for inspectElement) y coordinate (used for inspectElement) Download the file at url using IDownloadHandler. url to download Cancel all searches that are currently going on. clear the selection Send a mouse move event to the browser, coordinates, mouse information, x and y values are relative to upper-left corner of view mouse leave Notify the browser that it has been hidden or shown. Layouting and rendering notification will stop when the browser is hidden. This method is only used when window rendering is disabled (WPF/OffScreen). 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. Retrieve a snapshot of current navigation entries as values sent to the specified visitor. visitor If true only the current navigation entry will be sent, otherwise all navigation entries will be sent. Returns the current visible navigation entry for this browser. This method can only be called on the CEF UI thread. the current navigation entry Gets/sets 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. Can also be set at browser creation via BrowserSettings.WindowlessFrameRate. Returns true if window rendering is disabled. Gets a value indicating whether the browserHost has been disposed of. This interface represents a CefFrame object (i.e. a HTML frame) 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. a that when executed returns this frame's HTML source as a string. Retrieve this frame's HTML source as a string sent to the specified visitor. Use the method for a Task based async wrapper visitor will recieve string values asynchronously Retrieve this frame's display text as a string sent to the specified visitor. a that when executed returns the frame's display text as a string. Retrieve this frame's display text as a string sent to the specified visitor. Use the method for a Task based async wrapper visitor will recieve string values asynchronously Load the custom request. LoadRequest can only be used if a renderer process already exists. In newer versions initially loading about:blank no longer creates a renderer process. You can load a Data Uri initially then call this method. https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs request to be loaded in the frame Load the specified url. url to be loaded in the frame Load the contents of html with the specified dummy url. html to be loaded 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. Javascript to execute 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. is the base line number to use for error reporting. Execute some Javascript code in the context of this WebBrowser, and return the result of the evaluation in an Async fashion The Javascript code that should be executed. is the URL where the script in question can be found, if any. is the base line number to use for error reporting. The timeout after which the Javascript code execution should be aborted. A Task that can be awaited to perform the script execution Returns true if this is the main (top-level) frame. Returns true if this is the focused frame. Returns the name for this frame. If the frame has an assigned name (for example, set via the iframe "name" attribute) then that value will be returned. Otherwise a unique name will be constructed based on the frame parent hierarchy. The main (top-level) frame will always have an empty name value. Returns the globally unique identifier for this frame or < 0 if the underlying frame does not yet exist. Returns the parent of this frame or NULL if this is the main (top-level) frame. Returns the URL currently loaded in this frame. Returns the browser that this frame belongs to. Gets a value indicating whether the frame has been disposed of. Create a custom request for use with Initialize the PostData object when creating this request A new instance of the request Class that creates instances for handling custom requests. The methods of this class will always be called on the CEF IO thread. This interface maps to the CefRequestHandler::GetResourceHandler method. It was split out to allow for the implementation that provides support for the LoadHtml extension method. Are there any 's registered? Called before a resource is loaded. To specify a handler for the resource return a object The browser UI control the browser object the frame object the request object - cannot be modified in this callback To allow the resource to load normally return NULL otherwise return an instance of ResourceHandler with a valid stream Class used to represent a web response. The methods of this class may be called on any thread. MimeType Response Headers Returns true if this object is read-only. Get/set the response error code. The status code of the response. Unless set, the default value used is 200 (corresponding to HTTP status OK). Status Text Class representing window information. X coordinate Y coordinate Width Height Window style Ex window style Parent window handle Set to true to create the browser using windowless (off-screen) rendering. No window will be created for the browser and all rendering will occur via the IRenderHandler interface. The value will be used to identify monitor info and to act as the parent window for dialogs, context menus, etc. If | 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.WindowlessRenderingEnabled value must be set to true. Transparent painting is enabled by default but can be disabled by setting to an opaque value. Set to true to enable shared textures for windowless rendering. Only valid if is also set to true. Currently only supported on Windows (D3D11). This feature is experimental and has many bugs at the moment. Set to true to enable the ability to issue BeginFrame requests from the client application by calling . Handle for the new browser window. Only used with windowed rendering. Create the browser as a child window. Calls GetClientRect(Hwnd) to obtain the window bounds parent handle Create the browser as a child window. parent handle left top right bottom Create the browser as a popup window. parent handle window name 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. This window will automatically be transparent unless a colored backgrond is set in the browser settings. Value will be used to identify monitor info and to act as the parent window for dialogs, context menus, etc. If 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. Struct representing a mouse event. x coordinate - relative to upper-left corner of view y coordinate - relative to upper-left corner of view Bit flags describing any pressed modifier keys. Mouse Event x coordinate relative to the upper-left corner of the view. y coordinate relative to the upper-left corner of the view. modifiers Used to represent drag data. Gets a copy of the current drag data Returns true if this object is read-only. Return the name of the file being dragged out of the browser window. Retrieve the list of file names that are being dragged into the browser window Return the base URL that the fragment came from. This value is used for resolving relative URLs and may be empty. Return the text/html fragment that is being dragged. Return the plain text fragment that is being dragged. Returns true if an image representation of drag data is available. Get the image representation of drag data. May return NULL if no image representation is available. Get the image hotspot (drag start location relative to image dimensions). Return the metadata, if any, associated with the link being dragged. Return the title associated with the link being dragged. Return the link URL that is being dragged. Returns true if the drag data is a file. Returns true if the drag data is a text or html fragment. Returns true if the drag data is a link Add a file that is being dragged into the webview. File Path Optional Display Name 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. Write the contents of the file being dragged out of the web view into the provided For a suggested filename check the property Stream data is to be written to. If null this method will return the size of the file contents in bytes. Returns the number of bytes written to the stream Gets a value indicating whether the object has been disposed of. 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 URL as it was before any redirects. Returns the suggested file name. Returns the content disposition. Returns the mime type. Wrapper for the CefContextMenuParams Returns the Y coordinate of the mouse where the context menu was invoked. Coords are relative to the associated RenderView's origin. Returns the X 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 a list of strings from the spell check service for the misspelled word if there is one. Returns true if the context menu was invoked on an editable node. Returns true if the context menu was invoked on an editable node where spell-check is enabled. Returns flags representing the actions supported by the editable node, if any, that the context menu was invoked on. Returns ContextMenuEditState as flags Returns true if the context menu contains items specified by the renderer process (for example, plugin placeholder or pepper plugin menu items). Returns true if the context menu was invoked from a pepper plugin. Gets a value indicating whether the object has been disposed of. JavascriptIgnoreAttribute - Methods and Properties marked with this attribute will be excluded from Javascript Binding Javascript Response Error message Was the javascript executed successfully Javascript response Post Data extension methods - Makes accessing post data easier A convenience extension method that extracts the Character set from the content-type header. Can be used in conjuncation with the request character set e.g. UTF-8 Converts the property into a string using the specified charset (Encoding) or if unable to parse then uses the post data character set encoded string Add a new that represents the specified file post data instance file name Add a new that represents the key and value The data is encoded using Post Data Data to be encoded for the post data element Specified Encoding. If null then will be used Add a new that represents the key and value Post Data byte array that represents the post data IP Address solution callback result The result code - on success List of resolved IP addresses or empty if the resolution failed. ResolveCallbackResult result list of ip addresses Default implementation of . This latest implementation provides some simplification, at a minimum you only need to override ProcessRequestAsync. See the project source on GitHub for working examples. used to implement a custom request handler interface. The methods of this class will always be called on the IO thread. Static helper methods are included like FromStream and FromString that make dealing with fixed resources easy. MimeType to be used if none provided Gets or sets the Mime Type. Gets or sets the resource stream. Gets or sets the http status code. Gets or sets the status text. Gets or sets ResponseLength, when you know the size of your Stream (Response) set this property. This is optional. If you use a MemoryStream and don't provide a value here then it will be cast and it's size used Gets or sets the headers. The headers. When true the Stream will be Disposed when this instance is Disposed. The default value for this property is false. If the ErrorCode is set then the response will be ignored and the errorCode returned. Initializes a new instance of the class. Optional mimeType defaults to Optional Stream - must be set at some point to provide a valid response When true the Stream will be disposed when this instance is Diposed, you will be unable to use this ResourceHandler after the Stream has been disposed Begin processing the request. If you have the data in memory you can execute the callback immediately and return true. For Async processing you would typically spawn a Task to perform processing, then return true. When the processing is complete execute callback.Continue(); In your processing Task, simply set the StatusCode, StatusText, MimeType, ResponseLength and Stream The request object. The callback used to Continue or Cancel the request (async). To handle the request return true and call once the response header information is available can also be called from inside this method if header information is available immediately). To cancel the request return false. Populate the response stream, response length. When this method is called the response should be fully populated with data. It is possible to redirect to another url at this point in time. NOTE: It's no longer manditory to implement this method, you can simply populate the properties of this instance and they will be set by the default implementation. The response object used to set Headers, StatusCode, etc length of the response If set the request will be redirect to specified Url The response stream Called if the request is cancelled Gets the resource from the file path specified. Use the helper method to lookup the mimeType if required. Uses CefStreamResourceHandler for reading the data Location of the file. The mimeType if null then text/html is used. Dispose of the stream when finished with (you will only be able to serve one request). IResourceHandler. Creates a IResourceHandler that represents a Byte[], uses CefStreamResourceHandler for reading the data data mimeType IResourceHandler Gets the resource from the string. The text. The file extension. ResourceHandler. Gets a that represents a string. Without a Preamble, Cef will use BrowserSettings.DefaultEncoding to load the html. The html string Character Encoding Include encoding preamble Mime Type ResourceHandler Generates a ResourceHandler that has it's StatusCode set Body the response to be displayed StatusCode ResourceHandler Gets the resource from a stream. A stream of the resource. Type of MIME. Dispose of the stream when finished with (you will only be able to serve one request). ResourceHandler. Gets a MemoryStream from the given string using the provided encoding string to be converted to a stream encoding if true a BOM will be written to the beginning of the stream A memory stream from the given string Gets a byteArray from the given string using the provided encoding string to be converted to a stream encoding if true a BOM will be written to the beginning of the stream A memory stream from the given string Gets the MIME type of the content. The extension. System.String. extension Dispose of resources here FolderSchemeHandlerFactory is a very simple scheme handler that allows you to map requests for urls to a folder on your file system. For example creating a setting the rootFolder to c:\projects\CefSharp\CefSharp.Example\Resources registering the scheme handler Initialize a new instance of FolderSchemeHandlerFactory Root Folder where all your files exist, requests cannot be made outside of this folder if not null then schemeName checking will be implemented if not null then hostName checking will be implemented default page if no page specified, defaults to index.html file share mode used to open resources, defaults to FileShare.Read If the file requested is within the rootFolder then a IResourceHandler reference to the file requested will be returned otherwise a 404 ResourceHandler will be returned. the browser window that originated the request or null if the request did not originate from a browser window (for example, if the request came from CefURLRequest). frame 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 scheme name The request. (will not contain cookie data) A IResourceHandler Class that creates instances for handling scheme requests. The methods of this class will always be called on the CEF IO thread. Return a new instance to handle the request or an empty reference to allow default handling of the request. the browser window that originated the request or null if the request did not originate from a browser window (for example, if the request came from CefURLRequest). frame 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 scheme name The request. (will not contain cookie data) Return a new instance to handle the request or an empty reference to allow default handling of the request Class representing the SSL information for a navigation entry. Returns true if the status is related to a secure SSL/TLS connection. Returns a bitmask containing any and all problems verifying the server certificate. Returns the SSL version used for the SSL connection. Returns a bitmask containing the page security content status. Returns the X.509 certificate. SslStatus is secure cert status ssl version content status certificate Used in conjunction with CefSettings.RegisterScheme to register a scheme. You can register your own custom scheme e.g. custom:// or use an existing scheme e.g. http:// Schema Name e.g. custom Optional Domain Name. An empty 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 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 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 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. If true the scheme will be treated with the same security rules as those applied to "https" URLs. For example, loading this scheme from other secure schemes will not trigger mixed content warnings. If true the scheme can be sent CORS requests. This value should be true in most cases where IsStandard is true. If true the scheme can bypass Content-Security-Policy(CSP) checks. This value should be false in most cases where IsStandard is true. Factory Class that creates instances for handling scheme requests. Leave this null if you wish to manually register the scheme handler with the relevant RequestContext. Creates a new CefCustomScheme. Method used internally command line arguments list of scheme objects Interface to implement for visiting cookie values. The methods of this class will always be called on the IO thread. If there are no cookies then Visit will never be called, you must implement Dispose to handle this scenario. Method that will be called once for each cookie. This method may never be called if no cookies are found. cookie is the 0-based index for the current cookie. is the total number of cookies. Set to true to delete the cookie currently being visited. Return false to stop visiting cookies otherwise true Callback interface for IBrowserHost.GetNavigationEntries. The methods of this class will be called on the CEF UI thread. Method that will be executed. if the navigationEntry will be invalid then is true if this entry is the currently loaded navigation entry is the 0-based index of this entry is the total number of entries. Return true to continue visiting entries or false to stop. Implement this interface to receive string values asynchronously. Method that will be executed. string (result of async execution) Interface to implement for visiting web plugin information. The methods of this class will be called on the CEF UI thread, which by default is not the same as your application UI Method that will be called once for each plugin. This method may never be called if no plugins are found. plugin information is the 0-based index for the current plugin total is the total number of plugins. Return false to stop visiting plugins otherwise true Cookie Visitor implementation that uses a TaskCompletionSource to return a List of cookies Default constructor Task that can be awaited for the result to be retrieved async A that uses a TaskCompletionSource to simplify things Default constructor Task that can be awaited for the result to be retrieved async Provides a visitor implementation of Default constructor Task that can be awaited for the result to be retrieved async A that uses a TaskCompletionSource to simplify things Default constructor Method that will be executed. string (result of async execution) Task that can be awaited for the result to be retrieved async WebBrowser extensions - These methods make performing common tasks easier. Returns the main (top-level) frame for the browser window. Frame Returns the focused frame for the browser window. Frame Execute Undo on the focused frame The ChromiumWebBrowser instance this method extends Execute Redo on the focused frame The ChromiumWebBrowser instance this method extends Execute Cut on the focused frame The ChromiumWebBrowser instance this method extends Execute Copy on the focused frame The ChromiumWebBrowser instance this method extends Execute Paste on the focused frame The ChromiumWebBrowser instance this method extends Execute Delete on the focused frame The ChromiumWebBrowser instance this method extends Execute SelectAll on the focused frame The ChromiumWebBrowser instance this method extends Opens up a new program window (using the default text editor) where the source code of the currently displayed web page is shown. The ChromiumWebBrowser instance this method extends Retrieve the main frame's HTML source using a . The ChromiumWebBrowser instance this method extends that when executed returns the frame source as a string Retrieve the main frame's display text using a . The ChromiumWebBrowser instance this method extends that when executed returns the frame display text as a string. Execute some Javascript code in the context of this WebBrowser. As the method name implies, the script will be executed asynchronously, and the method therefore returns before the script has actually been executed. This simple helper extension will encapsulate params in single quotes (unless int, uint, etc) The ChromiumWebBrowser instance this method extends The javascript method name to execute the arguments to be passed as params to the method. Args are encoded using , you can provide a custom implementation if you require a custom implementation Execute some Javascript code in the context of this WebBrowser. As the method name implies, the script will be executed asynchronously, and the method therefore returns before the script has actually been executed. The ChromiumWebBrowser instance this method extends The Javascript code that should be executed. Execute Javascript code in the context of this WebBrowser. This extension method uses the LoadingStateChanged event. As the method name implies, the script will be executed asynchronously, and the method therefore returns before the script has actually been executed. The ChromiumWebBrowser instance this method extends The Javascript code that should be executed. The script will only be executed on first page load, subsiquent page loads will be ignored Best effort is made to make sure the script is executed, there are likely a few edge cases where the script won't be executed, if you suspect your script isn't being executed, then try executing in the LoadingStateChanged event handler to confirm that it does indeed get executed. Creates a new instance of IRequest with the specified Url and Method = POST and then calls . can only be used if a renderer process already exists. In newer versions initially loading about:blank no longer creates a renderer process. You can load a Data Uri initially then call this method. https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs This is an extension method Load the string contents with the specified dummy url. Web security restrictions may not behave as expected. The ChromiumWebBrowser instance this method extends html string to load the url should have a standard scheme (for example, http scheme) or behaviors like link clicks Registers and loads a that represents the HTML content. `Cef` Native `LoadHtml` is unpredictable and only works sometimes, this method wraps the provided HTML in a and loads the provided url using the method. Defaults to using for character encoding The url must start with a valid schema, other uri's such as about:blank are invalid A valid example looks like http://test/page The ChromiumWebBrowser instance this method extends The HTML content. The URL that will be treated as the address of the content. returns false if the Url was not successfully parsed into a Uri Loads html as Data Uri See https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs for details If base64Encode is false then html will be Uri encoded The ChromiumWebBrowser instance this method extends Html to load as data uri. if true the html string will be base64 encoded using UTF8 encoding. Loads html as Data Uri See https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs for details If base64Encode is false then html will be Uri encoded The instance this method extends Html to load as data uri. if true the html string will be base64 encoded using UTF8 encoding. Registers and loads a that represents the HTML content. `Cef` Native `LoadHtml` is unpredictable and only works sometimes, this method wraps the provided HTML in a and loads the provided url using the method. The ChromiumWebBrowser instance this method extends The HTML content. The URL that will be treated as the address of the content. Character Encoding Whether or not the handler should be used once (true) or until manually unregistered (false) returns false if the Url was not successfully parsed into a Uri Register a ResourceHandler. Can only be used when browser.ResourceHandlerFactory is an instance of DefaultResourceHandlerFactory The ChromiumWebBrowser instance this method extends the url of the resource to unregister Stream to be registered, the stream should not be shared with any other instances of DefaultResourceHandlerFactory the mimeType Whether or not the handler should be used once (true) or until manually unregistered (false). If true the Stream will be Diposed of when finished. Unregister a ResourceHandler. Can only be used when browser.ResourceHandlerFactory is an instance of DefaultResourceHandlerFactory The ChromiumWebBrowser instance this method extends the url of the resource to unregister Stops loading the current page. Navigates back, must check before calling this method. Navigates forward, must check before calling this method. Reloads the page being displayed. This method will use data from the browser's cache, if available. Reloads the page being displayed, optionally ignoring the cache (which means the whole page including all .css, .js etc. resources will be re-fetched). The ChromiumWebBrowser instance this method extends true A reload is performed ignoring browser cache; false A reload is performed using files from the browser cache, if available. Gets the default cookie manager associated with the IWebBrowser The ChromiumWebBrowser instance this method extends If not null it will be executed asnychronously on the CEF IO thread after the manager's storage has been initialized. Cookie Manager Asynchronously gets the current Zoom Level. Asynchronously gets the current Zoom Level. Change the ZoomLevel to the specified value. Can be set to 0.0 to clear the zoom level. If called on the CEF UI thread the change will be applied immediately. Otherwise, the change will be applied asynchronously on the CEF UI thread. The CEF UI thread is different to the WPF/WinForms UI Thread The ChromiumWebBrowser instance this method extends zoom level Change the ZoomLevel to the specified value. Can be set to 0.0 to clear the zoom level. If called on the CEF UI thread the change will be applied immediately. Otherwise, the change will be applied asynchronously on the CEF UI thread. The CEF UI thread is different to the WPF/WinForms UI Thread The ChromiumWebBrowser instance this method extends zoom level Search for text within the current page. The ChromiumWebBrowser instance this method extends Can be used in can conjunction with searchText to have multiple searches running simultaneously. search text indicates whether to search forward or backward within the page. indicates whether the search should be case-sensitive. indicates whether this is the first request or a follow-up. Search for text within the current page. The ChromiumWebBrowser instance this method extends Can be used in can conjunction with searchText to have multiple searches running simultaneously. search text indicates whether to search forward or backward within the page. indicates whether the search should be case-sensitive. indicates whether this is the first request or a follow-up. Cancel all searches that are currently going on. The ChromiumWebBrowser instance this method extends clear the current search selection Cancel all searches that are currently going on. The ChromiumWebBrowser instance this method extends clear the current search selection Opens a Print Dialog which if used (can be user cancelled) will print the browser contents. The ChromiumWebBrowser instance this method extends Asynchronously prints the current browser contents to the PDF file specified. The caller is responsible for deleting the file when done. The object this method extends. Output file location. Print Settings. A task that represents the asynchronous print operation. The result is true on success or false on failure to generate the Pdf. Opens a Print Dialog which if used (can be user cancelled) will print the browser contents. The ChromiumWebBrowser instance this method extends Asynchronously prints the current browser contents to the PDF file specified. The caller is responsible for deleting the file when done. The ChromiumWebBrowser instance this method extends Output file location. Print Settings. A task that represents the asynchronous print operation. The result is true on success or false on failure to generate the Pdf. Open developer tools in its own window. The ChromiumWebBrowser instance this method extends Open developer tools in its own window. The ChromiumWebBrowser instance this method extends Explicitly close the developer tools window if one exists for this browser instance. The ChromiumWebBrowser instance this method extends Explicitly close the developer tools window if one exists for this browser instance. The ChromiumWebBrowser instance this method extends If a misspelled word is currently selected in an editable node calling this method will replace it with the specified word. The ChromiumWebBrowser instance this method extends The new word that will replace the currently selected word. If a misspelled word is currently selected in an editable node calling this method will replace it with the specified word. The ChromiumWebBrowser instance this method extends The new word that will replace the currently selected word. Add the specified word to the spelling dictionary. The ChromiumWebBrowser instance this method extends The new word that will be added to the dictionary. Shortcut method to get the browser IBrowserHost The ChromiumWebBrowser instance this method extends browserHost or null Add the specified word to the spelling dictionary. The ChromiumWebBrowser instance this method extends The new word that will be added to the dictionary. Evaluate some Javascript code in the context of this WebBrowser. The script will be executed asynchronously and the method returns a Task encapsulating the response from the Javascript This simple helper extension will encapsulate params in single quotes (unless int, uint, etc) The ChromiumWebBrowser instance this method extends The javascript method name to execute the arguments to be passed as params to the method that can be awaited to perform the script execution Evaluate some Javascript code in the context of this WebBrowser using the specified timeout. The script will be executed asynchronously and the method returns a Task encapsulating the response from the Javascript This simple helper extension will encapsulate params in single quotes (unless int, uint, etc). The ChromiumWebBrowser instance this method extends The timeout after which the Javascript code execution should be aborted. The javascript method name to execute the arguments to be passed as params to the method. Args are encoded using , you can provide a custom implementation if you require a custom implementation that can be awaited to perform the script execution Function used to encode the params passed to , and Provide your own custom function to perform custom encoding. You can use your choice of JSON encoder here if you should so choose. Checks if the given object is a numerical object The object to check True if numeric, otherwise false Transforms the methodName and arguments into valid Javascript code. Will encapsulate params in single quotes (unless int, uint, etc) The javascript method name to execute the arguments to be passed as params to the method The Javascript code Information about a specific web plugin. Gets or sets the plugin name (i.e. Flash). Gets or sets tge description of the plugin from the version information. Gets or sets the plugin file path (DLL/bundle/library). Gets or sets the version of the plugin (may be OS-specific). WebPluginInfo name description path version Class used to represent a web request. The methods of this class may be called on any thread. Get/Set request flags, can be used to control caching policy Request Url Returns the globally unique identifier for this request or 0 if not specified. Can be used by implementations in the browser process to track a single request across multiple callbacks. Request Method GET/POST etc Set the referrer URL and policy. If non-empty the referrer URL must be fully qualified with an HTTP or HTTPS scheme component. Any username, password or ref component will be removed. the referrer url referrer policy Get the referrer URL. Get the resource type for this request. Get the referrer policy. Header Collection NOTE: This collection is a copy of the underlying type, to make changes, take a reference to the collection, make your changes, then reassign the collection. At some point this will be replaced with a proper wrapper. Post data Get the transition type for this request. Applies to requests that represent a main frame or sub-frame navigation. Gets a value indicating whether the request has been disposed of. Returns true if this object is read-only. Initialize a new instance of . Make sure to check if the is null before calling otherwise the existing data will be overridden. ChromiumWebBrowser implementations implement this interface. Can be cast to the concrete implementation to access UI specific features. Event handler for receiving Javascript console messages being sent from web pages. It's important to note this event is fired on a CEF UI thread, which by default is not the same as your application UI thread. It is unwise to block on this thread for any length of time as your browser will become unresponsive and/or hang.. To access UI elements you'll need to Invoke/Dispatch onto the UI Thread. (The exception to this is when your running with settings.MultiThreadedMessageLoop = false, then they'll be the same thread). Event handler for changes to the status message. It's important to note this event is fired on a CEF UI thread, which by default is not the same as your application UI thread. It is unwise to block on this thread for any length of time as your browser will become unresponsive and/or hang. To access UI elements you'll need to Invoke/Dispatch onto the UI Thread. (The exception to this is when your running with settings.MultiThreadedMessageLoop = false, then they'll be the same thread). Event handler that will get called when the browser begins loading a 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. It's important to note this event is fired on a CEF UI thread, which by default is not the same as your application UI thread. It is unwise to block on this thread for any length of time as your browser will become unresponsive and/or hang.. To access UI elements you'll need to Invoke/Dispatch onto the UI Thread. Whilst this may seem like a logical place to execute js, it's called before the DOM has been loaded, implement as it's called when the underlying V8Context is created Event handler that will get called when the browser is done loading a 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. It's important to note this event is fired on a CEF UI thread, which by default is not the same as your application UI thread. It is unwise to block on this thread for any length of time as your browser will become unresponsive and/or hang.. To access UI elements you'll need to Invoke/Dispatch onto the UI Thread. Event handler that will get called when the resource load for a navigation fails or is canceled. It's important to note this event is fired on a CEF UI thread, which by default is not the same as your application UI thread. It is unwise to block on this thread for any length of time as your browser will become unresponsive and/or hang.. To access UI elements you'll need to Invoke/Dispatch onto the UI Thread. Event handler that will get called when the Loading state has changed. This event will be fired twice. Once when loading is initiated either programmatically or by user action, and once when loading is terminated due to completion, cancellation of failure. It's important to note this event is fired on a CEF UI thread, which by default is not the same as your application UI thread. It is unwise to block on this thread for any length of time as your browser will become unresponsive and/or hang.. To access UI elements you'll need to Invoke/Dispatch onto the UI Thread. Loads the specified URL. The URL to be loaded. Registers a Javascript object in this specific browser instance. The name of the object. (e.g. "foo", if you want the object to be accessible as window.foo). The object to be made accessible to Javascript. binding options - camelCaseJavascriptNames default to true Asynchronously registers a Javascript object in this specific browser instance. Only methods of the object will be available. The name of the object. (e.g. "foo", if you want the object to be accessible as window.foo). The object to be made accessible to Javascript. binding options - camelCaseJavascriptNames default to true The registered methods can only be called in an async way, they will all return immeditaly and the resulting object will be a standard javascript Promise object which is usable to wait for completion or failure. The javascript object repository, one repository per ChromiumWebBrowser instance. Implement and assign to handle dialog events. The dialog handler. Implement and assign to handle events related to browser requests. The request handler. Implement and assign to handle events related to browser display state. The display handler. Implement and assign to handle events related to browser load status. The load handler. Implement and assign to handle events related to popups. The life span handler. Implement and assign to handle events related to key press. The keyboard handler. Implement and assign to handle events related to JavaScript Dialogs. The js dialog handler. Implement and assign to handle events related to dragging. The drag handler. Implement and assign to handle events related to downloading files. The download handler. Implement and assign to handle events related to the browser context menu The menu handler. Implement and assign to handle events related to the browser component's focus The focus handler. Implement and control the loading of resources The resource handler factory. Implement and assign to handle messages from the render process. The render process message handler. Implement to handle events related to find results. The find handler. A flag that indicates whether the WebBrowser is initialized (true) or not (false). true if this instance is browser initialized; otherwise, false. In the WPF control, this property is implemented as a Dependency Property and fully supports data binding. A flag that indicates whether the control is currently loading one or more web pages (true) or not (false). true if this instance is loading; otherwise, false. In the WPF control, this property is implemented as a Dependency Property and fully supports data binding. A flag that indicates whether the state of the control current supports the GoBack action (true) or not (false). true if this instance can go back; otherwise, false. In the WPF control, this property is implemented as a Dependency Property and fully supports data binding. A flag that indicates whether the state of the control currently supports the GoForward action (true) or not (false). true if this instance can go forward; otherwise, false. In the WPF control, this property is implemented as a Dependency Property and fully supports data binding. The address (URL) which the browser control is currently displaying. Will automatically be updated as the user navigates to another page (e.g. by clicking on a link). The address. In the WPF control, this property is implemented as a Dependency Property and fully supports data binding. The text that will be displayed as a ToolTip The tooltip text. A flag that indicates if you can execute javascript in the main frame. Flag is set to true in IRenderProcessMessageHandler.OnContextCreated. and false in IRenderProcessMessageHandler.OnContextReleased Gets the custom request context assigned to this browser instance If no instance was assigned this will be null and the global request context will have been used for this browser. You can access the global request context through Cef.GetGlobalRequestContext() Attempts to give focus to the IWebBrowser control. true if keyboard focus and logical focus were set to this element; false if only logical focus was set to this element, or if the call to this method did not force the focus to change. Returns the current CEF Browser Instance browser instance or null