WebView2 浏览器标志

与 Microsoft Edge WebView2 交互和影响行为的方式之一是传递浏览器标志 (参数,或将) 切换到 WebView2。 这些浏览器标志可用于测试即将推出的功能和诊断问题。

警告

生产中的应用不应使用 WebView2 浏览器标志,因为这些标志可能随时被删除或更改,并且不一定长期受支持。

通常,标志由 Chromium 和 Microsoft Edge 拥有。 Chromium标志不由 Microsoft Edge 拥有或控制,因此Microsoft Edge 无法控制何时或如何删除或更改标志的行为。

可以在本地设备环境中设置浏览器标志,或通过代码以编程方式设置浏览器标志。 下面介绍了这两种方法。

在本地设备环境中设置浏览器标志

若要测试即将推出的功能或诊断问题,我们建议通过设置 WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS 环境变量或通过注册表项在本地设备环境中使用浏览器标志。 有关详细信息,请参阅以下 Win32 API 参考: CreateCoreWebView2EnvironmentWithOptions

通过代码以编程方式设置浏览器标志

替代方法是通过将浏览器标志作为 AdditionalBrowserArguments 的 属性 CoreWebView2EnvironmentOptions传递,以编程方式设置浏览器标志,而不是在本地设备环境中设置浏览器标志。 如果以编程方式设置浏览器标志,请确保在交付应用之前删除代码中的标志,以避免在生产环境中意外传送标志。

可用的 WebView2 浏览器标志

以下是我们已使用的一些标志。

Flag 说明
accept-lang 指定 Accept-Language 通过 Navigator.language DOM 属性发送到服务器并公开给 JavaScript。 格式为 language[-country],其中 language 是 ISO-639 中的 2 个字母代码。
allow-file-access-from-files 允许从其他 file:// URI 读取 file:// URI。
allow-insecure-localhost 允许忽略 localhost 上的 TLS/SSL 错误,以便不执行间隙操作,也不阻止请求。
allow-run-as-system 默认情况下,如果 Edge WebView 浏览器作为系统启动 (启动为系统,则不建议) 退出。 此标志绕过该检查,因此即使 Edge WebView 浏览器作为系统启动,Edge WebView 浏览器也不会退出。
allow-running-insecure-content 在强制转换 Web 运行时中启用不安全的内容。 此标志取消阻止从 HTTP 源提供内容的 MSP。
auto-open-devtools-for-tabs 使 Edge WebView 自动打开每个选项卡的 DevTools 窗口。供开发人员和自动化使用。
AutofillReplaceCachedWebElementsByRendererIds 如果启用,则用呈现器 ID 替换 AutofillAgent 和 FormTracker 中缓存的 Web 元素。
autoplay-policy 用于设置自动播放策略的命令行标志名称。
BlockInsecurePrivateNetworkRequests 启用此功能后,将从地址空间中的非安全上下文发起的 public 专用网络请求将被阻止。
block-new-web-contents 如果 true为 ,则所有弹出窗口和调用都 window.open 失败。
BreakoutBoxPreferCaptureTimestampInVideoFrames 还原 类的 Timestamp 属性 CoreWebView2Texture 的行为,以匹配 WebView2 运行时版本 124 及更早版本的旧行为。
disable-background-timer-throttling 禁用后台页面中计时器任务的任务限制。
disable-domain-action-user-agent-override 从“域操作”功能中禁用每域用户代理替代。
disable-gpu 禁用 GPU 硬件加速。 如果未安装软件呈现器,则 GPU 进程不会启动。
disable-gpu-driver-bug-workarounds 禁用各种 GPU 驱动程序 bug 的解决方法。
disable-site-isolation-trials 禁用站点隔离。
disable-web-security 禁用跨域策略,但不强制实施同一源策略。 仅用于网站测试。
disk-cache-size 强制磁盘缓存使用的最大磁盘空间(以字节为单位)。
do-not-de-elevate 防止在启动时取消提升 WebView2。 在解除提升后使用,以防止无限循环。
edge-webview-debugging-script 异步运行 PostWebMessage 脚本。
edge-webview-enable-mojo-ipcz 为使用 WebView2 的应用启用 MojoIpcz (mojo-ipcz) 。
edge-webview-foreground-boost-opt-in 选择加入前台提升。
edge-webview-foreground-boost-opt-out 选择退出前台提升。
edge-webview-force-personal-context 强制 Edge WebView 浏览器进程在 WIP 个人上下文中运行。
edge-webview-interactive-dragging 允许在具有 --app-region: drag 属性的元素上发生指针事件和焦点事件。 默认情况下,拖动元素是交互式的。
edge-webview-disable-interactive-dragging 禁止在具有 --app-region: drag 属性的元素上发生指针事件和焦点事件。 如果未设置此标志,则默认情况下,拖动元素是交互式的。
edge-webview-is-background 指示 WebView 正在后台启动。
edge-webview-no-dpi-workaround 禁用“DPI 感知应用兼容性填充码”解决方法,该解决方法通过 shell 启动 Edge WebView 浏览器进程,以便进程不会继承“应用兼容性”填充码。
edge-webview-run-with-package-id 使用桥接桌面应用的包标识 (包 ID) 运行 WebView 进程。
edge-webview-run-without-package-id 为桥接桌面应用运行没有包标识 (包 ID) 的 WebView 进程。
embedded-browser-webview-dpi-awareness 设置服务器端进程的 DPI 感知级别。
enable-experimental-web-platform-features 启用正在开发的 Web 平台功能。
enable-logging 在错误级别启用日志记录。
force-color-profile 强制将所有监视器视为具有指定颜色配置文件。 有效值: srgbgeneric-rgb
force-device-scale-factor 替代 Edge WebView 浏览器 UI 和内容的设备缩放因子。
force-fieldtrials 在本地测试更改时,可用于强制进行现场试验。 参数是名称/值对的列表,用正斜杠分隔。 如果试用名称的前缀为星号,该试用版将开始激活。 例如,以下参数定义了两个试用,并激活了第二个试验: EdgeNow/Enable/*MaterialDesignNTP/Default/。 浏览器进程也可以使用此选项,使用相同的格式将试用版列表发送到非浏览器进程。
force-fieldtrial-params 在本地测试更改时,可用于强制现场试验的参数。 参数是 (键、值) 对的参数列表,以关联的 (试用、组) 对为前缀。 对于多个 (试用,对) 分组,请使用逗号分隔符。
force-renderer-accessibility 是否强制启用呈现器辅助功能,而不是在检测到屏幕阅读器时按需启用呈现器辅助功能。 如果标志存在,则 disable-renderer-accessibility 标志将替代此 disable-renderer-accessibility 标志。
HardwareMediaKeyHandling 启用用于控制媒体的硬件媒体键的处理。
ignore-certificate-errors 忽略与证书相关的错误。
ignore-gpu-blocklist 是否忽略 GPU 阻止列表。
incognito 强制 Incognito 模式,即使使用 --user-data-dir 标志指定了用户数据目录。
isolate-origins 需要一组源的专用进程,指定为逗号分隔列表。 例如:--isolate-origins=https://www.foo.com,https://www.bar.com.
js-flags 指定传递给 JS 引擎的标志。
lang WebView2 要尝试打开的语言文件。 格式语言[-country],其中语言是来自 ISO-639 的 2 个字母代码。
log-net-log 启用将网络日志事件保存到文件。 如果给定值,该值将用作目录路径和文件名。 如果未提供任何值,则文件名为 netlog.json,并放置在用户数据目录中。
msAbydos 启用“手写到文本”体验。
msAbydosGestureSupport 允许用户使用手势 ((如暂存手势) 使用笔删除文本)。 仅当启用标志 msAbydos 时有效。
msAbydosHandwritingAttr 是否为 DOM 级别的输入元素启用“手写到文本”体验。 仅当启用标志 msAbydos 时有效。
msEdgeDesignerUI 使用此标志可禁用Designer Shoreline 应用。 WebView2 不支持此功能。
msEdgeHubAppDesigner 使用此标志可禁用Designer Shoreline 应用。 WebView2 不支持此功能。
msEdgeDesignerDriverFix 使用此标志可禁用获取内容并自动显示Designer功能。 WebView2 不支持此功能。
msEdgeFluentOverlayScrollbar 强制启用 Fluent 覆盖滚动条,覆盖当前可能保留的任何值 kFluentScrollbar
msEdgeDevToolsWdpRemoteDebugging 启用远程调试。 请参阅 远程调试 WebView2 WinUI 2 (UWP) 应用远程调试 Windows 设备
msEdgeWebViewApplyWebResourceRequestedFilterForOOPIFs 如果启用此标志,方法 AddWebResourceRequestedFilter (包括重载) 也将应用于进程外 iframe。
.NET: AddWebResourceRequestedFilter
WinRT: AddWebResourceRequestedFilter
Win32: AddWebResourceRequestedFilterWithRequestSourceKinds
msEnhancedTextContrast 改进文本对比度增强和伽玛更正,以匹配其他本机 Windows 应用程序的质量和清晰度。 使用此标志时,在应用文本对比度增强和伽玛更正时,字体呈现将遵循用户 ClearType Tuner 设置。
msEnhancedTrackingPreventionEnabled 启用本机隐私保护功能,例如阻止驻留在已知跟踪域的域中的 Cookie 和 Web 请求。
msFloatyMode 如果 false为 ,则禁用 Floaty 功能。 使用此标志可禁用 Floaty 功能,因为 WebView 不支持浏览器保留试验。
msFloatyShouldHonorIndiaHoldout 如果 true为 ,则为印度坚持组。 使用此标志(设置为 false)可禁用如果用户是 India 维持组的一部分启用的 Floaty 功能,因为 WebView 不支持浏览器保留试验。
msOverlayScrollbarWinStyle 用户是否可以在 Fluent 滚动条的覆盖和非覆盖模式之间进行更改。
msPdfEnableAsPreview 此功能使 PDF 查看器能够以最小工具栏和只读预览模式启动。
msSingleSignOnOSForPrimaryAccountIsShared 如果启用,则允许隐式登录使用主 OS 帐户中的信息使用任何帐户Microsoft网页。
msSmartScreenProtection 如果启用,SmartScreen 保护将可用。
msUseSpellCheckCorrectionsCard 如果启用,当用户单击拼写错误的单词时,将显示新的更正卡 UI。
msWebView2CancelInitialNavigation 如果启用,则取消 WebView2 中的初始导航以提高启动性能。
msWebView2CodeCache 如果启用,通过 SetVirtualHostNameToFolderMappingadd_WebResourceRequested 加载到 WebView2 应用中的 JavaScript 资源有资格进行字节码缓存,这将加快第三次和后续加载的速度。 此功能还为使用 DevTools 网络拦截机制提供自定义响应的任何其他组件启用字节代码缓存, (请参阅) 网络请求的自定义管理
msWebView2EnableDownloadContentInWebResourceResponseReceived 如果启用,则允许在 中提供成为下载的导航的响应 WebResourceResponseReceived
msWebView2TextureStream 如果启用,则允许将捕获或组合的视频帧流式传输到 WebView2,其中 JavaScript 可以通过 W3C 标准 DOM API(包括 Video 元素和 MediaStream)呈现帧或与之交互。
msWebView2EnableDraggableRegions 如果 true为 ,则允许 WebView2 中的网页使用 app-region: drag\|nodrag CSS 样式,这会使具有该样式的元素的行为类似于标题栏。 如果没有此标志, app-region: drag\|nodrag CSS 样式将不起作用。
msWebView2CodeCache 如果启用,通过 SetVirtualHostNameToFolderMappingadd_WebResourceRequested 加载到 WebView2 应用中的 JavaScript 资源有资格进行字节码缓存,这将加快第三次和后续加载的速度。 此功能还为使用 DevTools 网络拦截机制提供自定义响应的任何其他组件启用字节码缓存。
msWebView2NativeEventDispatch 如果启用,则使用本机 mojo 连接将内部事件(如 Web 消息)调度到呈现器进程。
msWebView2SimulateMemoryPressureWhenInactive 如果启用,则模拟非活动 WebView 的内存压力。
msWebView2TreatAppSuspendAsDeviceSuspend 如果启用,则当所有 WebView 暂停时,WebView2 会将应用视为设备已挂起,并暂停所有延迟的任务和计时器。
no-proxy-server 重写传递的任何其他代理服务器标志。
net-log-capture-mode 设置在网络日志中捕获的事件的粒度。 有效值: DefaultIncludeSensitiveEverything
no-network-profile-warning 如果启用,浏览器会在 UDF 位于网络共享上时发出警告。 此标志仅在 Windows 上受支持;在其他平台上忽略此标志。
no-sandbox 禁用所有通常为沙盒的进程类型的沙盒。 旨在用作浏览器级标志,仅用于测试目的。
no-first-run 跳过 First-Run 任务,无论它是否实际上是“首次运行”,并跳过显示“新增功能”页。 此标志由 kForceFirstRun First-Run 体验 (FRE) ) (和 kForceWhatsNew 用于显示新增功能) 的 (替代。 此标志不会删除“首次运行”sentinel,因此不会阻止下次在没有此标志的情况下启动 Edge WebView 浏览器时发生 First-Run 体验。 此标志不会更新上一个新增功能里程碑,因此不会阻止下次在没有此标志的情况下启动 Edge WebView 浏览器时显示“新增功能”。
PartitionedCookies 启用后,站点可以选择使用 属性将其 Cookie 分区到顶级站点 Partitioned 。 仅当浏览器位于设置 Cookie 时所在的同一顶级站点上时,才会发送分区 Cookie。
proxy-auto-detect 强制代理自动检测。
proxy-bypass-list 绕过代理设置的主机列表;然后,指定的主机将改用直接连接。 除非还指定 ,否则 --proxy-server 忽略此标志。 可以将多个主机作为逗号分隔列表提供。
proxy-server 替代系统设置的代理服务器。 此标志仅影响 HTTP 和 HTTPS 请求。
remote-allow-origins 仅启用来自指定源的 Web 套接字连接。 通 * 配符允许任何源。
remote-debugging-port 在指定端口上启用通过 HTTP 进行远程调试。
RendererAppContainer 启用呈现器 AppContainer
Restart 指示Microsoft Edge WebView2 浏览器进程已 (重新启动,例如在标志更改后) 。 使用此标志在记录 Launch.Mode2 指标时忽略启动。
sdsm-state “超级杜珀安全模式”状态。 有效值: offbasicbalancedstrict
SharedArrayBuffer 如果启用,则指示存在线程 SharedArrayBuffer
SpareRendererForSitePerProcess 如果启用此标志,则 Edge Webview 备用呈现器进程会尝试始终为最近请求 BrowserContext的 运行热备用呈现器进程。 此功能仅在站点每进程模式下进行参考。
ThirdPartyStoragePartitioning 允许按顶级站点对第三方存储(如 IndexedDBCacheStorage)进行分区,以减少指纹。
unsafely-treat-insecure-origin-as-secure 将给定 (不安全) 源视为安全源。 可以将多个源指定为逗号分隔列表。 有关安全上下文的定义,请参阅安全上下文,包括可能可信?部分origin。 例如:--unsafely-treat-insecure-origin-as-secure=http://a.test,http://b.test
use-fake-device-for-media-stream 使用用于媒体Stream的假设备来替换实际的相机和麦克风。
use-fake-ui-for-media-stream 通过为媒体流选择默认设备来绕过媒体流信息栏, (如 WebRTC) 。 适用于 --use-fake-device-for-media-stream。 更倾向于使用 --auto-accept-camera-and-microphone-capture ,它不会与屏幕捕获交互,例如捕获浏览器选项卡。
use-system-proxy-resolver 使用 WinHttp 解析代理,而不是使用 WebView2 的普通代理解析逻辑。 此标志仅在 Windows 中受支持。
user-agent 用于使用自定义用户代理替代默认用户代理的字符串。
user-data-migrated 指示此过程是迁移用户数据后重新启动的产物。
UseBackgroundNativeThreadPool 如果启用此功能,WebView2 ThreadPoolImpl 将使用由本机线程池实现支持的后台 ThreadGroup。
UseNativeThreadPool 如果启用,WebView2 ThreadPoolImpl 将使用由本机线程池实现支持的前景 ThreadGroup
V8Maglev 启用 Maglev 编译器。 这仅在手动重写时设置 V8 标志;否则,它将遵循 V8 默认值。

另请参阅