CefSharp 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 Represents a new V8 extension to be registered. Creates a new CwefExtension instance with a given name. Name of the CefExtension The javascript extension code. Gets the name of the extension. Gets the javascript extension code 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. General mask defining the bits used for the type values. Prompt to overwrite if the user selects an existing file with the Save dialog. Do not display read-only files. Geoposition error codes. Supported JavaScript dialog types. 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 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. 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. 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. Represents a node in the browser's DOM. Represents the tag name and attribute data belonging to a node in the browser's DOM. 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. 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. Representing a draggable region. Creates a new DraggableRegion width height x coordinate y coordinate is draggable? Width Height X coordinate Y coordinate Is this region draggable 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. Structure representing geoposition information. The properties of this structure correspond to those of the JavaScript Position object although their types may differ. Latitude in decimal degrees north (WGS84 coordinate frame). Longitude in decimal degrees west (WGS84 coordinate frame). Altitude in meters (above WGS84 datum). Accuracy of altitude in meters. Heading in decimal degrees clockwise from true north. Horizontal component of device velocity in meters per second. Time of position measurement in miliseconds since Epoch in UTC time. This is taken from the host computer's system clock. Error code, see enum above. Human-readable error message. 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). 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. (Disable javascript) Controls whether JavaScript can be used for opening windows. Also configurable using the "disable-javascript-open-windows" command-line switch. Controls whether JavaScript can be used to close windows that were not opened via JavaScript. JavaScript can still be used to close windows that were opened via JavaScript. Also configurable using the "disable-javascript-close-windows" command-line switch. Controls whether JavaScript can access the clipboard. Also configurable using the "disable-javascript-access-clipboard" command-line switch. Controls whether DOM pasting is supported in the editor via execCommand("paste"). The |javascript_access_clipboard| setting must also be enabled. Also configurable using the "disable-javascript-dom-paste" command-line switch. Controls whether the caret position will be drawn. Also configurable using the "enable-caret-browsing" command-line switch. Controls whether any plugins will be loaded. Also configurable using the "disable-plugins" command-line switch. Controls whether file URLs will have access to all URLs. Also configurable using the "allow-universal-access-from-files" command-line switch. Controls whether file URLs will have access to other file URLs. Also configurable using the "allow-access-from-files" command-line switch. Controls whether web security restrictions (same-origin policy) will be enforced. Disabling this setting is not recommend as it will allow risky security behavior such as cross-site scripting (XSS). Also configurable using the "disable-web-security" command-line switch. Controls whether image URLs will be loaded from the network. A cached image will still be rendered if requested. Also configurable using the "disable-image-loading" command-line switch. Controls whether standalone images will be shrunk to fit the page. Also configurable using the "image-shrink-standalone-to-fit" command-line switch. Controls whether text areas can be resized. Also configurable using the "disable-text-area-resize" command-line switch. Controls whether the tab key can advance focus to links. Also configurable using the "disable-tab-to-links" command-line switch. Controls whether local storage can be used. Also configurable using the "disable-local-storage" command-line switch. Controls whether databases can be used. Also configurable using the "disable-databases" command-line switch. Controls whether the application cache can be used. Also configurable using the "disable-application-cache" command-line switch. Controls whether WebGL can be used. Note that WebGL requires hardware support and may not work on all systems even when enabled. Also configurable using the "disable-webgl" command-line switch. Opaque background color used for the browser before a document is loaded and when no document color is specified. By default the background color will be the same as CefSettings.background_color. Only the RGB compontents of the specified value will be used. The alpha component must greater than 0 to enable use of the background color but will be otherwise ignored. Comma delimited ordered list of language codes without any whitespace that will be used in the "Accept-Language" HTTP header. May be 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. 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 browser 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. 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. Simple helper class used for checking/parsing command line arguments Implement this interface to cancel loading of specific plugins 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 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. 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 on context will be created and as a result this method will not be called. Currently only called for the Main frame 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. 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 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. 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, Cef.OnContextInitialized 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, Cef.OnContextInitialized 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, Cef.OnContextInitialized 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, Cef.OnContextInitialized 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 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 cache path for this object. If empty an "incognito mode" in-memory cache is being used. Called after the ResolveHost request has completed. The result code will be the list of resolved IP addresses or empty if the resolution failed. 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. 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. 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. 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. 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. Default binder - used as a fallback when a specific modelbinder is not available. 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 Bind to the given model type object to be converted into a model Model type to bind to Blacklisted binding property names Bound model Default field name converter Converts camel case to pascal case 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 Initializes a new instance of the class. Converts a field name to a property name Field name Property name Containing extensions for the object. Creates an instance of and cast it to . The type to create an instance of. if a non-public constructor can be used, otherwise . Creates an instance of . The type to create an instance of. if a non-public constructor can be used, otherwise . returns the assembly that the type belongs to The assembly that contains the type Checks if a type is an array or not The type to check. if the type is an array, otherwise . Is the type a collection, array or enumerable source type return if collection, array or enumerable Determines whether the is assignable from taking into account generic definitions Borrowed from: http://tmont.com/blargh/2011/3/determining-if-an-open-generic-type-isassignablefrom-a-type Checks if a type is an collection or not The type to check. if the type is an collection, otherwise . Checks if a type is enumerable or not The type to check. if the type is an enumerable, otherwise . Determines if a type is numeric. Nullable numeric types are considered numeric. Boolean is not considered numeric. Filters our all types not assignable to . The type that all resulting should be assignable to. An of instances that should be filtered. An of instances. Represents an entry in navigation history. NavigationEntry completionTime displayUrl httpStatusCode originalUrl title transitionType url hasPostData isValid is the current entry 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 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. 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 asynchronously. If both and are empty, all cookies will be deleted. 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. A task that represents the delete operation. The value of the TResult parameter contains 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. The cookie URL The cookie A task that represents the cookie set operation. The value of the TResult parameter contains 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. false if a non-empty invalid URL is specified; otherwise, true. 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. Visits all cookies. The returned cookies are sorted by longest path, then by earliest creation date. A task that represents the VisitAllCookies operation. The value of the TResult parameter contains a List of cookies. 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 task that represents the VisitUrlCookies operation. The value of the TResult parameter contains a List of cookies. 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 A task that represents the Flush operation. The value of the TResult parameter contains false if cookies cannot be accessed; otherwise, true. 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 control this popup is related to. 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 control this popup is related to. 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 control this popup is related to. 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 control this popup is related to. args 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. Returns the number of items in this menu. 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. Returns the DER encoded serial number for the X.509 certificate. The value possibly includes a leading 00 byte. Returns the date before which the X.509 certificate is invalid. will return null if no date was specified. Returns the date after which the X.509 certificate is invalid. will return null if no date was specified. Returns the DER encoded data for the X.509 certificate. Returns the PEM encoded data for the X.509 certificate. Class 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. 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. 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. Remove all existing post data elements. Create a new instance Retrieve the post data elements. Returns true if this object is read-only. Gets a value indicating whether the object has been disposed of. 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. Remove all contents from the post data element. Gets or sets the file name. Gets if the object is read-only. Gets the type of this . Gets or sets the bytes of this . Return value types. Cancel immediately. Continue immediately. Continue asynchronously (usually via a callback). Use this static class to configure some CefSharp specific settings like WcfTimeout Set default values for CefSharpSettings WCF is used by JavascriptBinding Disabling effectively disables both of these features. Defaults to true Change the Close timeout for the WCF channel used by the sync JSB binding. The default value is currently 10 seconds. Chaning 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 Represents the state of a setting. Use the default state for the setting. Enable or allow the setting. Disable or disallow the setting. 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. Class used to Represent a cookie the built in .Net Cookie class isn't used as some of it's properties have internal setters 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. Default implementation of it's used internally for the LoadHtml implementation - basically a resource handler is registered for a specific Url. 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. 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 Are there any 's registered? Create a new instance of DefaultResourceHandlerFactory string equality comparer Register handler with the specified Url url handler 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 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 Resource handler thread safe dictionary Are there any 's registered? 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 Navigate backwards. Navigate forwards. 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 true if this object is pointing to the same handle as that object. compare browser instances returns true if the same instance 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 Returns true if the browser can navigate backwards. Returns true if the browser can navigate forwards. Returns true if the browser is currently loading. Returns the globally unique identifier for this browser. 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. 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. 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. 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. 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. A task that represents the asynchronous print operation. The result is true on success or false on failure to generate the Pdf. 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 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. x coordinate - relative to upper-left corner of view y coordinate - relative to upper-left corner of view Mouse ButtonType mouse up click count click modifiers e.g. Ctrl Send a mouse wheel event to the browser. X-Axis coordinate relative to the upper-left corner of the view. Y-Axis coordinate relative to the upper-left corner of the view. Movement delta for X direction. movement delta for Y direction. /// click modifiers e.g. Ctrl 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 x coordinate - relative to upper-left corner of view y coordinate - relative to upper-left corner of view mouse leave click modifiers .e.g Ctrl 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 true if this browser currently has an associated DevTools browser. Must be called on the CEF UI thread. Get/Set Mouse cursor change disabled Returns the request context for this browser. 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. Generic callback interface used for asynchronous continuation. Continue processing. Cancel processing. 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. This interface represents a CefFrame object (i.e. a HTML 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. 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. The timeout after which the Javascript code execution should be aborted. A Task that can be awaited to perform the script execution Create a custom request for use with Initialize the PostData object when creating this request A new instance of the request True if this object is currently attached to a valid frame. Returns true if this is the main (top-level) frame. Returns true if this is the focused frame. Returns the name for this frame. If the frame has an assigned name (for example, set via the iframe "name" attribute) then that value will be returned. Otherwise a unique name will be constructed based on the frame parent hierarchy. The main (top-level) frame will always have an empty name value. Returns the globally unique identifier for this frame. Returns the parent of this frame or NULL if this is the main (top-level) frame. Returns the URL currently loaded in this frame. Returns the browser that this frame belongs to. Gets a value indicating whether the frame has been disposed of. Callback interface used for asynchronous continuation of geolocation permission requests. Call to allow or deny geolocation access. true to allow Gets a value indicating whether the callback has been disposed of. 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. 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. Interface used to break reference cycles in CefSharp.Core C++ code. This will ALWAYS be a ManagedCefBrowserAdapter instance. Cursor type values. 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. Handle events related to browser display state. Called when a frame's address has changed. The control this popup is related to. args Called when the page title changes. The control this popup is related to. 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. Option to modify tooltip is not currently implemented. 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. 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. 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. 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 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. 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. If is true a transparent background color will be used (RGBA=0x00000000). If is false the background will be white and opaque. In order to create windowless browsers the CefSettings.windowless_rendering_enabled value must be set to true. Class representing a mouse event. X coordinate relative to the left side of the view. Y coordinate relative to the top side of the view. Bit flags describing any pressed modifier keys. "Verb" of a drag-and-drop operation as negotiated between the source and destination. Factory class used to generate a BitmapInfo object for OSR rendering (WPF and OffScreen projects) Implement this interface if you wish to render the underlying Bitmap to a custom type e.g. a GDI Bitmap in the WPF Control Create an instance of BitmapInfo based on the params create bitmap info for a popup (typically just a bool flag used internally) DPI scale newly created BitmapInfo Used to represent drag data. 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. Gets the contents of the File as a For a suggested filename check the property the contents of the file 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. 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 Gets a value indicating whether the object has been disposed of. 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. Called when the browser component is requesting focus. 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. 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 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 geolocation permission requests. The methods of this class will be called on the CEF UI thread. Called when a page requests permission to access geolocation information. the browser control the browser object the URL requesting permission the unique ID for the permission request Callback interface used for asynchronous continuation of geolocation permission requests. true to allow the request and false to deny Called when a geolocation access request is canceled. the browser control the browser object the unique ID for the permission request, as seen in Event arguments to the IsBrowserInitializedChanged event handler. Process termination status values. Non-zero exit status. SIGKILL or task manager kill. Segmentation fault. 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 browser control the browser object represents the type of dialog to display 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. Event arguments for the AddressChanged event handler. Creates a new AddressChangedEventArgs event argument. the browser object the address Access to the underlying object The new address 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 suggested file name. Returns the content disposition. Returns the mime type. Supported event bit flags. Mac OS-X command key. 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 Implement this interface to receive string values asynchronously. Method that will be executed. string (result of async execution) 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 Event arguments to the LoadError event handler set up in IWebBrowser. 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 FrameLoadStart event handler set up in IWebBrowser. Creates a new FrameLoadStart event args browser frame The browser object The frame that just started loading. The URL that was loaded. TransitionType provides information about the source of the navigation. 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. 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 Represents a rectangle 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. The result code - on success List of resolved IP addresses or empty if the resolution failed. 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 Default Constructor Initializes a new instance of the class. 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. Location of the file. The file extension. ResourceHandler. Gets the resource from the file path specified. Use the helper method to lookup the mimeType if required. Location of the file. The mimeType if null then text/html is used. ResourceHandler. 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 Gets the resource from a stream. A stream of the resource. Type of MIME. ResourceHandler. Gets the MIME type of the content. The extension. System.String. extension Dispose of resources here Path of the underlying file 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. Specify which type of resource handle represnets 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. Resource is read from a Stream (Default) Resource is read from a file on disk 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. 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 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 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 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 Generic callback interface used for asynchronous completion. Method that will be called once the task is complete. Cookie Visitor implementation that uses a TaskCompletionSource to return a List of cookies 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 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 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. Event arguments to the LoadingStateChanged event handler set up in IWebBrowser. Focus Source The source is explicit navigation via the API (LoadURL(), etc). The source is a system-generated focus event. 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 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. 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 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 Analyse properties for binding This is the root of the objects that get serialized to the child process. This is the root of the objects that get serialized to the child process with cef ipc serialization (wcf not required). 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 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:// Creates a new CefCustomScheme. Method used internally command line arguments list of scheme objects 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. Factory Class that creates instances for handling scheme requests. 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. Event arguments to the ConsoleMessage event handler set up in IWebBrowser. Creates a new ConsoleMessageEventArgs event argument. message source line number The message text of the console message. The source of the console message. The line number that generated the console message. Class used to handle file downloads. The methods of this class will called on the CEF UI thread. Called before a download begins. 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 browser instance Represents the file being downloaded. The callback used to Cancel/Pause/Resume the process 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 browser 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. When leaving the page a Javascript dialog is displayed asking for user confirmation. Returning True allows you to implement a custom dialog or programatically handle. To cancel the unload return True and set allowUnload to False. the browser control the browser object message (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 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 browser control the browser object Called when the default implementation dialog is closed. the browser 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 control this request is for. 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 control this request is for. 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 control this request is for. 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 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 control that is realted to the window is closing. 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 control that is realted to the window is closing. The browser instance For default behaviour return false Called before a CefBrowser window (either the main browser for , or one of its children) The control that is realted to the window is closing. The browser instance 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. Interface implemented by UI control that contains a ManagedCefBrowserAdapter instance. ChromiumWebBrowser implementations implement this interface. Can be cast to the concrete implementation to access UI specific features. 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. Attempts to give focus to the IWpfWebBrowser 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 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 (Only called for the main frame at this stage) 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. 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 requests for permission to use geolocation. The geolocation handler. 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. 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. 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 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. 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. 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 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. 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. 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 that can be awaited to perform the script execution 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). 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 Initialize a new instance of . Make sure to check if the is null before calling otherwise the existing data will be overridden. 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 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. 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 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 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 render process terminates unexpectedly. The ChromiumWebBrowser control the browser object indicates how the process terminated. 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 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. 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 Default logging (currently Info logging) Verbose logging. Info logging Warning logging Error logging Completely disable logging Event arguments to the StatusMessage event handler set up in IWebBrowser. The browser object The value of the status message. 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 Event arguments to the TitleChanged event handler. Creates a new TitleChanged event arg the new title The new title The manner in which a link click should be opened.