与 Microsoft Edge WebView2 交互和影响行为的方式之一是传递浏览器标志 (参数,或将) 切换到 WebView2。 这些浏览器标志可用于测试即将推出的功能和诊断问题。
对于生产应用,请勿使用这些标志。 在开发过程中,如果存在标志,则结果为下面指定的行为。
警告
生产中的应用不应使用 WebView2 浏览器标志,因为这些标志可能随时被删除或更改,并且不一定长期受支持。
通常,标志由 Chromium 和 Microsoft Edge 拥有。 Chromium标志不由 Microsoft Edge 拥有或控制,因此Microsoft Edge 无法控制何时或如何删除或更改标志的行为。
可以在本地设备环境中设置浏览器标志,或通过代码以编程方式设置浏览器标志。 下面介绍了这两种方法。
在本地设备环境中设置浏览器标志
若要测试即将推出的功能或诊断问题,我们建议通过设置 WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS 环境变量或通过注册表项在本地设备环境中使用浏览器标志。  有关详细信息,请参阅以下 Win32 API 参考: CreateCoreWebView2EnvironmentWithOptions。
通过代码以编程方式设置浏览器标志
替代方法是通过将浏览器标志作为 AdditionalBrowserArguments 的 属性 CoreWebView2EnvironmentOptions传递,以编程方式设置浏览器标志,而不是在本地设备环境中设置浏览器标志。  如果以编程方式设置浏览器标志,请确保在交付应用之前删除代码中的标志,以避免在生产环境中意外传送标志。
- 
              
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-aggressive-domstorage-flushing | 
启用 DOM 存储的主动刷新,以最大程度地减少数据丢失。 | 
enable-experimental-web-platform-features | 
启用正在开发的 Web 平台功能。 | 
enable-logging | 
在错误级别启用日志记录。 | 
force-color-profile | 
强制将所有监视器视为具有指定颜色配置文件。  有效值: srgb、 generic-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 | 
使通过 SetVirtualHostNameToFolderMapping 或 add_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 | 
设置在网络日志中捕获的事件的粒度。  有效值: Default、 IncludeSensitive、 Everything。 | 
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 | 
“超级杜珀安全模式”状态。  有效值: off、 basic、 balanced、 strict。 | 
SharedArrayBuffer | 
指示 SharedArrayBuffer 存在线程。 | 
SpareRendererForSitePerProcess | 
使 Edge Webview 备用呈现器进程尝试始终为最近请求 BrowserContext的 运行一个热备用呈现器进程。  此功能仅在站点每进程模式下进行参考。 | 
ThirdPartyStoragePartitioning | 
允许按顶级站点对第三方存储(如 IndexedDB 或 CacheStorage)进行分区,以减少指纹。 | 
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 默认值。 | 
另请参阅
- Microsoft Edge WebView2 简介
 - WebView2 API 参考 - 适用于其他平台和语言的 API 参考链接,例如 WinRT/C++ (COM) 。