Chromium

本指南将介绍如何使用 DotNetBrowser 所使用的 Chromium 构建。

使用 DotNetBrowser 不需要在目标环境中安装 Chromium 或 Google Chrome 浏览器,因为它使用并部署了自己的 Chromium 构建。

二进制文件

每个支持平台的 Chromium 二进制文件都位于相应的 DotNetBrowser 动态链接库中:

  • DotNetBrowser.Chromium.Win-x86.dll – 适用于 Windows 32 位的 Chromium 二进制文件。
  • DotNetBrowser.Chromium.Win-x64.dll – 适用于 Windows 64 位的 Chromium 二进制文件。
  • DotNetBrowser.Chromium.Win-arm64.dll – 适用于 Windows ARM64 的 Chromium 二进制文件。
  • DotNetBrowser.Chromium.Linux-x64.dll – 适用于 Linux 64 位的 Chromium 二进制文件。
  • DotNetBrowser.Chromium.Linux-arm64.dll – 适用于 Linux ARM64 的 Chromium 二进制文件。
  • DotNetBrowser.Chromium.macOS-x64.dll – 适用于 macOS 64 位的 Chromium 二进制文件。
  • DotNetBrowser.Chromium.macOS-arm64.dll – 适用于 macOS ARM64 (Apple Silicon) 的 Chromium 二进制文件。

要使用 Chromium,需要提取其二进制文件。

提取

DotNetBrowser 会在首次启动时从相应的 DLL 中提取目标平台的 Chromium 二进制文件。

在 Windows 中,它们被放置在 %LocalAppData%\Temp\dotnetbrowser-chromium 目录中。

在 macOS 和 Linux 中,二进制文件被提取到用户的临时目录中。

DotNetBrowser 会检查目录中是否包含所需的 Chromium 文件。 如果未找到文件,它会从应用程序中引用的 DLL 中提取二进制文件。

您可以自定义提取二进制文件的默认路径,或者通过编程方式提取二进制文件并告诉库它们的位置:

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 版本

您可以通过 ChromiumInfo.Version 常量值获取当前版本的 DotNetBrowser 使用的 Chromium 版本信息。 该字段允许您以编程方式在您的项目中返回 Chromium 引擎的版本。

位置

您可以在构造 IEngine 时使用 EngineOptions 指定 Chromium 二进制文件目录的路径,如下面的代码示例所示:

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())

路径可以是相对的或绝对的。

如果目录中已经有所需的 Chromium 二进制文件,库将不会执行提取。

如果目录损坏且某些 Chromium 文件丢失,DotNetBrowser 将提取二进制文件并覆盖现有文件。

验证

每个 DotNetBrowser 版本只与它自己的 Chromium 二进制文件兼容。 特定版本的二进制文件不支持其他 DotNetBrowser 版本。

为确保 Chromium 二进制文件与当前 DotNetBrowser 版本兼容,该库会对二进制文件进行验证。

开关

Chromium 可通过命令行 开关改变功能行为、帮助调试或开启实验功能。

开关列表及其说明见 Peter Beverloo 提供的文档

DotNetBrowser 不支持所有 Chromium 开关。 因此,我们建议使用引擎选项而不是开关(switches)来配置 Chromium。

沙盒

Windows

DotNetBrowser 支持 Windows 上的 Chromium Sandbox。 默认情况下沙盒(Sandbox)是启用的,但您可以使用下面的代码示例将其禁用:

engine = EngineFactory.Create(new EngineOptions.Builder 
{
    SandboxDisabled  = true
}
.Build());
engine = EngineFactory.Create(New EngineOptions.Builder With 
{
    .SandboxDisabled = True
}.Build())

Chrome 扩展插件

DotNetBrowser 不支持专为 Chrome 应用程序设计的扩展。

该库仅与渲染网页内容的网页浏览器控件集成。 因此,它没有集成扩展所需的 Chrome GUI,以及工具栏和上下文菜单等元素。

Go Top