WebView2 浏览器标志

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

对于生产应用,请勿使用这些标志。 在开发过程中,如果存在标志,则结果为下面指定的行为。

警告

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

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

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

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

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

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

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

可用的 WebView2 浏览器标志

以下 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 将 AutofillAgent 和 FormTracker 中缓存的 Web 元素替换为其呈现器 ID。
autoplay-policy 用于设置自动播放策略的命令行标志名称。
BlockInsecurePrivateNetworkRequests 启用此功能后,将从地址空间中的非安全上下文发起的 public 专用网络请求将被阻止。
block-new-web-contents true采用 或 false 值。 如果 true为 ,则使所有弹出窗口和调用 window.open 失败。 如果 false为 ,则支持弹出窗口和对 的调用 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 强制 InPrivate (Incognito) 模式,即使用户数据目录是使用 --user-data-dir 标志指定的。
isolate-origins 需要一组源的专用进程,指定为逗号分隔列表。 示例:--isolate-origins=https://www.foo.com,https://www.bar.com
js-flags 指定传递给 JS 引擎的标志。 可用标志: scavenger_max_new_space_capacity_mb:指定 V8 JavaScript 引擎中清道夫 (次要) 垃圾回收器的最大 () MB。
较低的清道夫内存限制可减少内存使用量,并增加运行次要垃圾回收器的频率。
更高的清道夫内存限制会增加内存使用量,并减少运行次要垃圾回收器的频率。 示例:--js-flags=--scavenger_max_new_space_capacity_mb=8
lang WebView2 要尝试打开的语言文件。 格式语言[-country],其中语言是来自 ISO-639 的 2 个字母代码。
log-net-log 启用将网络日志事件保存到文件。 如果给定值,该值将用作目录路径和文件名。 如果未提供任何值,则文件名为 netlog.json,并放置在用户数据目录中。
long-animation-frame-timing 提供长动画帧的详细计时,这些帧超过标准 16.67 毫秒持续时间 (60fps) 。 这有助于在调试和性能分析期间识别和优化动画密集型应用程序的性能瓶颈。
msAbydos 启用“手写到文本”体验。
msAbydosGestureSupport 允许用户使用手势 ((如暂存手势) 使用笔删除文本)。 仅当启用标志 msAbydos 时有效。
msAbydosHandwritingAttr 是否为 DOM 级别的输入元素启用“手写到文本”体验。 仅当启用标志 msAbydos 时有效。
msAllowAmbientAuthInPrivateWebView2 此标志与浏览器标志一起使用 msSingleSignOnForInPrivateWebView2 ,以使用默认凭据流或环境身份验证流启用单一登录 (SSO) 。
msEdgeDesignerUI 启用Designer海岸线应用。 Designer Shoreline 应用在 WebView2 中不受支持。
msEdgeHubAppDesigner 启用Designer海岸线应用。 Designer Shoreline 应用在 WebView2 中不受支持。
msEdgeDesignerDriverFix 启用获取内容并自动显示Designer功能。 WebView2 不支持Designer功能。
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 true采用 或 false 值。 如果 true为 ,则启用 Floaty 功能。 如果 false为 ,则禁用 Floaty 功能。 使用此标志可禁用 Floaty 功能,因为 WebView 不支持浏览器保留试验。
msFloatyShouldHonorIndiaHoldout true采用 或 false 值。 如果 true为 ,则为印度坚持组。 如果 false为 ,则禁用在用户属于 India 维持组时启用的 Floaty 功能,因为 WebView 不支持浏览器保留试验。
msOverlayScrollbarWinStyle 用户是否可以在 Fluent 滚动条的覆盖和非覆盖模式之间进行更改。
msPdfEnableAsPreview 此功能使 PDF 查看器能够以最小工具栏和只读预览模式启动。
msSingleSignOnForInPrivateWebView2 此标志为 InPrivate (WebView2 的 Incognito) 会话启用单一登录 (SSO) 流。 在 InPrivate (Incognito) 模式下启用基于浏览器的 SSO。
msSingleSignOnOSForPrimaryAccountIsShared 允许使用主 OS 帐户中的信息,使用任何帐户隐式登录Microsoft网页。
msSmartScreenProtection 使 SmartScreen 保护可用。
msUseSpellCheckCorrectionsCard 导致当用户单击拼写错误的单词时显示更正卡 UI。
msWebView2BrowserHitTransparent 使鼠标和键盘事件通过 WebView2 控件传递到基础应用,以允许应用处理这些事件,而不是处理事件的 WebView2 控件。 如果未启用此标志,WebView2 控件将处理鼠标和键盘事件;事件不会传递到基础应用。 对于应用需要直接处理输入事件的情况,此标志允许测试 WebView2 控件不截获输入事件时应用的行为方式。 此标志不采用值。 此标志可能会导致应用崩溃或冻结。
msWebView2CancelInitialNavigation 取消 WebView2 中的初始导航,以提高启动性能。
msWebView2CodeCache 使通过 SetVirtualHostNameToFolderMappingadd_WebResourceRequested 有资格在 WebView2 应用中加载的 JavaScript 资源进行字节码缓存,这将加快第三次和后续加载的速度。 此功能还为使用 DevTools 网络拦截机制提供自定义响应的任何其他组件启用字节码缓存;请参阅 网络请求的自定义管理
msWebView2EnableDownloadContentInWebResourceResponseReceived 允许在 中 WebResourceResponseReceived提供成为下载的导航响应。
msWebView2TextureStream 允许将捕获或组合的视频帧流式传输到 WebView2 控件,其中 JavaScript 可以通过 W3C 标准 DOM API(包括 视频嵌入元素MediaStream)呈现帧或与之交互。
msWebView2EnableDraggableRegions true采用 或 false 值。 如果 true为 ,则允许 WebView2 中的网页使用 app-region: drag\|nodrag CSS 样式,这会使具有该样式的元素的行为类似于标题栏。 如果 false为 或没有此标志,则 app-region: drag\|nodrag CSS 样式不起作用。
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 默认值。

另请参阅