Carubbi.ExtendedWebBrowser
2.0.0
dotnet add package Carubbi.ExtendedWebBrowser --version 2.0.0
NuGet\Install-Package Carubbi.ExtendedWebBrowser -Version 2.0.0
<PackageReference Include="Carubbi.ExtendedWebBrowser" Version="2.0.0" />
<PackageVersion Include="Carubbi.ExtendedWebBrowser" Version="2.0.0" />
<PackageReference Include="Carubbi.ExtendedWebBrowser" />
paket add Carubbi.ExtendedWebBrowser --version 2.0.0
#r "nuget: Carubbi.ExtendedWebBrowser, 2.0.0"
#:package Carubbi.ExtendedWebBrowser@2.0.0
#addin nuget:?package=Carubbi.ExtendedWebBrowser&version=2.0.0
#tool nuget:?package=Carubbi.ExtendedWebBrowser&version=2.0.0
Carubbi.ExtendedWebBrowser
A multi-tab web browser control for web automation running on Microsoft Edge WebView2 (WinForms).
This is the modernized v2 line: the legacy .NET Framework 4.7.2 implementation built on the
IE WebBrowser control and MSHTML COM (DWebBrowserEvents2, PermissionSet, WndProc sinks)
has been migrated to WebView2 (Microsoft.Web.WebView2). Navigation is now asynchronous and
pop-up handling is driven through CoreWebView2.NewWindowRequested instead of COM event sinks.
Requirements
- .NET 10
- Windows 10/11 with the WebView2 Runtime installed
Projects / packages
| Project | Package | Description |
|---|---|---|
src/Carubbi.ExtendedWebBrowser.Interfaces |
Carubbi.ExtendedWebBrowser.Interfaces |
Abstractions: IWindowManager, IWindowManaged, IBrowserTab, navigation events, BrowserCommands, PopupBlockerFilterLevel, UrlContext |
src/Carubbi.ExtendedWebBrowser |
Carubbi.ExtendedWebBrowser |
WebView2 BrowserControl tab, unified WebView2WindowManager, ScriptErrorManager, BrowserCache |
Usage
Host a tabbed browser on a TabControl:
using Carubbi.ExtendedWebBrowser;
var manager = new WebView2WindowManager(tabControl);
var tab = manager.New("Home");
tab.Navigate("https://example.com");
manager.Open(new Uri("https://example.com/docs"));
manager.ChangeActiveBrowser(0);
manager.Close(manager.LastTabIndex);
Use a single tab directly:
using Carubbi.ExtendedWebBrowser;
using Carubbi.ExtendedWebBrowser.Interfaces;
var browser = new BrowserControl("main")
{
FilterLevel = PopupBlockerFilterLevel.Medium
};
browser.StartNewWindow += (_, e) =>
{
// e.Url, e.NavigationContext; set e.Cancel = true to block.
};
panel.Controls.Add(browser);
browser.Navigate("https://example.com");
React to toolbar state:
manager.CommandStateChanged += (_, e) =>
{
backButton.Enabled = e.BrowserCommands.HasFlag(BrowserCommands.Back);
forwardButton.Enabled = e.BrowserCommands.HasFlag(BrowserCommands.Forward);
};
Breaking change from v1:
ExtendedWebBrowser(IEWebBrowsersubclass),UnsafeNativeMethods,BrowserControlWindowManagerandExtendedWebBrowserWindowManagerwere removed. UseBrowserControl(IBrowserTab) andWebView2WindowManager(IWindowManager) instead.New(navigateHome: true, ...)now navigates toabout:blankinstead of the IE home page.
Building and testing locally
dotnet build Carubbi.ExtendedWebBrowser.slnx -c Release
dotnet run --project tests/Carubbi.ExtendedWebBrowser.Tests -c Release --no-build
Releasing
Push a v* tag (or run the publish workflow manually) to build, pack both library
packages (Carubbi.ExtendedWebBrowser, Carubbi.ExtendedWebBrowser.Interfaces) and push
them to nuget.org via trusted publishing:
git tag v2.0.0
git push origin master v2.0.0
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-windows7.0 is compatible. |
-
net10.0-windows7.0
- Carubbi.ExtendedWebBrowser.Interfaces (>= 2.0.0)
- Carubbi.Web.Utils (>= 2.0.0)
- Carubbi.WindowsAppHelper (>= 2.0.0)
- Microsoft.Web.WebView2 (>= 1.0.3650.58)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.