Introduction
Installation
Guides
- Engine
- Profile
- Browser
- BrowserView
- Navigation
- Content
- Context menu
- DOM
- JavaScript
- Pop-ups
- Dialogs
- Downloads
- Network
- Cache
- Cookies
- Proxy
- Authentication
- Permissions
- Plugins
- Printing
- Passwords
- User data profiles
- Credit cards
- Media
- Zoom
- Spell checker
- Deployment
- Chromium
Troubleshooting
- Logging
- Common exceptions
- Application does not terminate
- Video does not play
- Cannot sign in to Google account
- User data is not stored
- Color scheme
- Startup failure
- Slow startup on Windows
- Unresponsive .NET Application
- Unexpected Chromium process termination
- Unexpected behavior
- Windows 7/8/8.1 end of support
Migration
Chromium
This guide describes how to work with the Chromium build used by DotNetBrowser.
You do not need to install Chromium or Google Chrome on the target environment to use DotNetBrowser as it uses and deploys its own Chromium build.
Binaries
Chromium binaries for each supported platform are located inside the corresponding DotNetBrowser DLLs:
DotNetBrowser.Chromium.Win-x86.dll
– Chromium binaries for Windows 32-bit.DotNetBrowser.Chromium.Win-x64.dll
– Chromium binaries for Windows 64-bit.DotNetBrowser.Chromium.Win-arm64.dll
– Chromium binaries for Windows ARM64.DotNetBrowser.Chromium.Linux-x64.dll
– Chromium binaries for Linux 64-bit.DotNetBrowser.Chromium.Linux-arm64.dll
– Chromium binaries for Linux ARM64.DotNetBrowser.Chromium.macOS-x64.dll
– Chromium binaries for macOS 64-bit.DotNetBrowser.Chromium.macOS-arm64.dll
– Chromium binaries for macOS ARM64 (Apple Silicon).
To use Chromium, you need to extract its binaries.
Extraction
DotNetBrowser extracts the Chromium binaries for the target platform from the corresponding DLL during the first launch.
On Windows, they are placed in the %LocalAppData%\Temp\dotnetbrowser-chromium
directory.
On macOS and Linux, the binaries are extracted into the user’s temp directory.
DotNetBrowser checks whether the directory contains the required Chromium files. If no files are found, it extracts the binaries from the DLLs referenced in the application.
You can customize the default path to the directory, where the binaries are extracted, or extract the binaries programmatically and tell the library where they are located:
EngineOptions options = new EngineOptions.Builder
{
ChromiumDirectory = @"C:\Users\Me\.DotNetBrowser"
}
.Build();
binariesExtractor = new ChromiumBinariesExtractor();
binariesExtractor.ExtractBinariesIfNecessary(options);
// ...
engine = EngineFactory.Create(options);
Dim options = New EngineOptions.Builder With
{
.ChromiumDirectory = "C:\Users\Me\.DotNetBrowser\chromium"
}.Build()
Dim binariesExtractor = New ChromiumBinariesExtractor()
binariesExtractor.ExtractBinariesIfNecessary(options)
' ...
engine = EngineFactory.Create(options)
Chromium Version
You can obtain the information on Chromium version used by the current version of DotNetBrowser as ChromiumInfo.Version
constant value. This field allows you to return the version of Chromium engine programmatically in your project.
Location
You can specify the path to the Chromium binaries directory using EngineOptions
when constructing the IEngine
as shown in the code sample below:
IEngine engine = EngineFactory.Create(new EngineOptions.Builder
{
ChromiumDirectory = @"C:\Users\Me\.DotNetBrowser\chromium"
}
.Build());
Dim engine As IEngine = EngineFactory.Create(New EngineOptions.Builder With
{
.ChromiumDirectory = "C:\Users\Me\.DotNetBrowser\chromium"
}.Build())
The path can be either relative or absolute.
If the directory already has the required Chromium binaries, the library will not perform the extraction.
If the directory is corrupted and some Chromium files are missing, DotNetBrowser will extract the binaries and overwrite the existing files.
Verification
Each DotNetBrowser version is only compatible with its own Chromium binaries. The binaries for a specific version do not support other DotNetBrowser versions.
To make sure that the Chromium binaries are compatible with the current DotNetBrowser version, the library verifies the binaries.
Switches
Chromium accepts the command line switches that change the behavior of the features, help to debug, or turn the experimental features on.
The list of switches and their description can be found in the documentation provided by Peter Beverloo.
DotNetBrowser does not support all the Chromium switches. Therefore, we recommend configuring Chromium using the Engine Options instead of switches.
Sandbox
Windows
DotNetBrowser supports Chromium Sandbox on Windows. Sandbox is enabled by default, but you can disable it using the code sample below:
engine = EngineFactory.Create(new EngineOptions.Builder
{
SandboxDisabled = true
}
.Build());
engine = EngineFactory.Create(New EngineOptions.Builder With
{
.SandboxDisabled = True
}.Build())
Chrome extensions
DotNetBrowser does not support the extensions designed for the Chrome application.
The library integrates only with the web browser control that renders the web content. Thus, it does not have the Chrome GUI, with elements like tool bar and context menu, required to integrate the extensions.