EdgeHTML 15
EdgeHTML 15 是 EdgeHTML 引擎的第四个版本。它内置在 Windows 10 版本 1703 所有平台版本,以及 Windows 10 移动版版本 1709 中。
主要新增功能
- CSS 自定义属性
EdgeHTML 15 新增对 CSS 自定义属性(又称 CSS 变量)的支持。CSS 变量允许创建可在整个样式表中重复使用的 CSS 自定义属性,可帮助减少重复数据(如重复的颜色)的使用量和数量。
- Intersection Observer
EdgeHTML 15 引入 Intersection Observer API 规范。它允许你异步查询 DOM 元素相对于其他元素或全局视图的位置和可见性。此 API 通过在视图中创建有效通知元素的方法,消除定制代码的需求。
- 付款请求 API
新增付款请求 API,可以在运行 Windows 10 的 PC 和移动设备上实现更简单的结账及付款。此 API 使得 Microsoft Edge 能够作为商家、消费者和消费者存储在云中的支付方式(如通过信用卡支付)之间的中介。
- TCP Fast Open(TFO)
TCP Fast Open 是一项可减少打开 TCP 连接所需往返次数,从而提高浏览器网络性能的功能。由于不同网络拓扑中的互操作性差异,Microsoft Edge 中默认情况下不启用此功能。若要启用它,请在地址栏中键入 about:flags
,之后在 Networking 部分中勾选 Enable TCP Fast Open 复选框即可。
- WebRTC 和可交互操作的 RTC 视频编解码器支持
EdgeHTML 15 支持 WebRTM 1.0 API 的子集,用于与使用早期版本(约 2015 年)的 W3C WebRTC-PC API 构建的应用程序的互操作性。
若要利用点对点音频和视频通信中的功能,建议使用对象实时通信(Object Real-Time Communication)API。ORTC API 更适合设置语音组音频和视频呼叫,或者直接控制单个传输的发送方和接收方对象的情况。
通过 EdgeHTML 15,使得 Microsoft Edge 支持使用 ORTC 和 WebRTC 1.0 的 H.264/AVC 和 VP8 的视频,并提供列出的功能支持两种编解码器类型:abs-send-time、goog-remb、图像丢失指示和通用 NACK 反馈、RTP 重传。
- WebVR
通过 EdgeHTML 15,使得 Microsoft Edge 支持 WebVR,这是一种连接 Windows 混合现实头戴式显示器和 Microsoft Edge 的实验性 API。此连接使 VR 内容能够在网站中体验,这意味着沉浸式 VR 体验不再只局限于桌面应用。
Microsoft Edge 中的虚拟现实由 WebGL 提供支持,WebGL 是一种用于渲染 3D 和 2D 图形的 JavaScript API,支持使用如 BabylonJS 应用这样的 WebGL 库构建的 WebGL 应用。连接之后,WebVR 会发送与耳机周围的位置和传感器信息相对应的视觉效果。由于 Gamepad API 的扩展,WebVR API 还支持空间控制器。默认情况下,此 API 处于启用状态,因此无需切换标志即可使用。
升级或增强的功能
EdgeHTML 15 中也有自己的升级或增强,以下列出的是其升级或增强的功能。
- 内容安全政策(2 级)(Content Security Policy 2,CSP 2)
内容安全政策 2 级包括了所有内容安全政策 1 级的内容(除了明确不兼容的内容)。原本已经使用 CSP 1 的站点,应继续使用 Microsoft Edge 中的 CSP 2 支持。但在操作上,建议降任何加载工作程序脚本的 frame-src 指令切换到新的 child-src 指令,从而为将来的站点提供支持。
在 CSP 2 中还增加了以下新的指令、功能和支持:
新指令:base-uri、child-src、form-action、frame-ancestors 和 plugin-types
工作程序支持:后台工作程序脚本由其自己的策略管理,与加载它们的文档的策略是分开的。与主机文档一样,你可以在响应标头中为工作程序设置 CSP。CSP 2 中的新功能是 sandbox 指令的 allow-scripts 和 allow-same-origin 标识从此版本引擎开始会影响工作线程的创建。
内联脚本和样式:CSP 2 允许通过提供 nonce 和 hashes 作为白名单机制执行内联脚本和样式块。
Nonce是在每个页面加载时生成的随机base-64值,它们出现在CSP策略和页面中的脚本标记中。在加载时动态生成页面时,服务器会生成一个nonce值,将其插入页面中的NonceToken,并在Content Security Policy HTTP标头中声明它。散列是从<script>或<style>元素的内容生成的静态值(通过sha256,sha384或sha512算法),然后在CSP策略中指定(通过script-src或style-src指令)。
CSP违规报告:现在,在CSP违规时触发了一个新事件SecurityPolicyViolationEvent。report-uri 的早期CSP报告机制继续得到支持。两个公用的违规报告中添加了几个新字段,包括effectiveDirective(违反的策略),statusCode(HTTP响应代码),sourceFile(违规资源的URL),lineNumber和columnNumber。
- Web身份验证
Microsoft Edge对使用Windows Hello生物识别技术的新兴Web身份验证API的支持已通过以下更改进行了更新:
EdgeHTML 14(Windows 10周年更新,版本10240,7 / 2016)中引入的实验性Web身份验证API的初始实现是通过MS前缀API(MSCredentials接口)公开的。虽然EdgeHTML 15中仍然提供这些API,但现在不推荐使用这些API,而是赞成在规范的最新快照中定义的非前缀,基于标准的API和行为,并且随着规范向标准化的发展,这些API可能会继续发生变化。 默认情况下,最新的Microsoft Edge实现处于关闭状态,并在标志后面输入(在地址栏中键入about:flags以打开该功能)。 Microsoft Edge尚不支持USB密钥或蓝牙设备等外部凭据。当前API仅限于存储在TPM中的嵌入式凭据。如果设备上没有TPM,则使用软件回退。 必须将当前登录的Windows用户帐户配置为至少支持PIN,最好是面部或指纹生物识别。这是为了确保Windows可以验证对TPM的访问。 在规范中描述的预定义扩展中,Microsoft Edge目前仅支持FIDO AppId(webauthn_txAuthSimple)。
- WebDriver
EdgeHTML 15带来了少量的WebDriver更新,包括对静默命令行标志和新命令端点的支持:
- 引入多个新API