WebView2 浏览器标志
与 Microsoft Edge WebView2 交互和影响行为的方式之一是传递浏览器标志 (参数,或将) 切换到 WebView2。 这些浏览器标志可用于测试即将推出的功能和诊断问题。
警告
生产中的应用不应使用 WebView2 浏览器标志,因为这些标志可能随时被删除或更改,并且不一定长期受支持。
通常,标志由 Chromium 和 Microsoft Edge 拥有。 Chromium标志不由 Microsoft Edge 拥有或控制,因此Microsoft Edge 无法控制何时或如何删除或更改标志的行为。
可以在本地设备环境中设置浏览器标志,或通过代码以编程方式设置浏览器标志。 下面介绍了这两种方法。
在本地设备环境中设置浏览器标志
若要测试即将推出的功能或诊断问题,我们建议通过设置 WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS
环境变量或通过注册表项在本地设备环境中使用浏览器标志。 有关详细信息,请参阅以下 Win32 API 参考: CreateCoreWebView2EnvironmentWithOptions。
通过代码以编程方式设置浏览器标志
替代方法是通过将浏览器标志作为 AdditionalBrowserArguments
的 属性 CoreWebView2EnvironmentOptions
传递,以编程方式设置浏览器标志,而不是在本地设备环境中设置浏览器标志。 如果以编程方式设置浏览器标志,请确保在交付应用之前删除代码中的标志,以避免在生产环境中意外传送标志。
-
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 |
强制将所有监视器视为具有指定颜色配置文件。 有效值: 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 |
强制 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 |
如果启用,通过 SetVirtualHostNameToFolderMapping 或 add_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 |
如果启用,通过 SetVirtualHostNameToFolderMapping 或 add_WebResourceRequested 加载到 WebView2 应用中的 JavaScript 资源有资格进行字节码缓存,这将加快第三次和后续加载的速度。 此功能还为使用 DevTools 网络拦截机制提供自定义响应的任何其他组件启用字节码缓存。 |
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) 。