How cefsharp/cefsharp works
CefSharp embeds Chromium/CEF in .NET applications through managed browser controls and a C++/CLI runtime bridge. The principal path is application configuration and browser creation, followed by navigation/rendering and interaction through a platform-specific control; optional capabilities include JavaScript binding, DevTools, request contexts, cookies, and URL requests. The tree and README establish these product areas, while sampled code confirms cookie forwarding and request-context callbacks. Unsampled internals are represented at subsystem level, so uncertain call wiring is omitted.
Main entry points: ManagedCefBrowserAdapter.cs Core browser API · RequestContext.cs Request contexts · CefBrowserWrapper.cpp CEF browser wrappers · ChromiumWebBrowser.cs WinForms control
Components 20
Browser surfaces
- WinForms control
CefSharp.WinForms/ChromiumWebBrowser.cs - WPF control
CefSharp.Wpf/ChromiumWebBrowser.cs - HwndHost control
CefSharp.Wpf/HwndHost/ChromiumWebBrowser.cs - Off-screen browser
CefSharp.OffScreen/ChromiumWebBrowser.cs - Rendering handlers
CefSharp.OffScreen/DefaultRenderHandler.cs
Managed API
- CEF configuration
CefSharp.Core/Cef.cs - Core browser API
CefSharp.Core/ManagedCefBrowserAdapter.cs - Request contexts
CefSharp.Core/RequestContext.cs
CEF bridge
- Managed-native adapter
CefSharp.Core.Runtime/ManagedCefBrowserAdapter.cpp - CEF browser wrappers
CefSharp.Core.Runtime/Internals/CefBrowserWrapper.cpp
Browser capabilities
- JavaScript binding
CefSharp.BrowserSubprocess.Core/JavascriptRootObjectWrapper.cpp - JS serialization
CefSharp.Core.Runtime/Internals/Serialization/V8Serialization.cpp - DevTools client
CefSharp.Core/DevTools/DevToolsClient.cs - Requests and resources
CefSharp.Core.Runtime/Internals/CefResourceHandlerAdapter.cpp - Cookie manager
CefSharp.Core.Runtime/CookieManager.cpp - URL requests
CefSharp.Core/UrlRequest.cs
Process runtime
- Subprocess executable
CefSharp.BrowserSubprocess/Program.cs - Subprocess app
CefSharp.BrowserSubprocess.Core/SubProcessApp.h
Other components
- .NET application
- CEF / Chromium
Connections 26
- .NET application → CEF configuration: configures
- .NET application → WinForms control: creates browser
- .NET application → WPF control: creates browser
- .NET application → HwndHost control: creates browser
- .NET application → Off-screen browser: creates browser
- CEF configuration → CEF / Chromium: initializes
- WinForms control → Core browser API: browser API
- WPF control → Core browser API: browser API
- HwndHost control → Core browser API: browser API
- Off-screen browser → Core browser API: browser API
- Core browser API → Managed-native adapter: adapts calls
- Managed-native adapter → CEF browser wrappers: wraps CEF
- CEF browser wrappers → CEF / Chromium: forwards operations
- CEF / Chromium → Rendering handlers: supplies frames
- Core browser API → Request contexts: uses context
- Request contexts → Cookie manager: provides manager
- Cookie manager → CEF / Chromium: forwards cookie actions
- Request contexts → Requests and resources: configures handlers
- Requests and resources → CEF / Chromium: handles resources
- Core browser API → URL requests: offers URL requests
- URL requests → CEF / Chromium: issues requests
- Core browser API → DevTools client: exposes protocol client
- CEF browser wrappers → JavaScript binding: supports JS objects
- JavaScript binding → JS serialization: serializes values
- CEF / Chromium → Subprocess executable: starts subprocess
- Subprocess executable → Subprocess app: runs app