APP下载

Chrome72释出Beta版,增加公开类别域、使用者触发查询API

消息来源:baojiabao.com 作者: 发布时间:2024-03-29

报价宝综合消息Chrome72释出Beta版,增加公开类别域、使用者触发查询API

Chrome 72释出Beta版,除了加入新的JavaScript功能外,也为了要阻止网页恶意行为,加入了使用者触发查询(User Activation Query)API,另外,还宣布即将弃用FTP、TLS 1.0和TLS 1.1等协定。

Chrome现在允许在脚本做公开类别域(Public Class Fields)的宣告,而这是JavaScript中类别域宣告的第一个部分,私用类别域(Private Class Fields)的支援则会在之后推出。要实作公开类别域,需要在类别宣告中,以及任何成员函式之外进行宣告,可以预先进行初始化但也并非必要。

官方表示,宣告类别域能让类别定义更加自我文件(Self-documenting)化,不需要额外注记,就能使其他开发者理解程式码意义,而这是因为这些域总是存在,因此能历经较少的转换。

此外,为了阻止扰人的网页行为,Chrome 72将提供使用者触发查询API,以确定网页行为是否有使用者参与,使用的情境包括在requestFullScreen()、autoplay以及window.open(),同时也允许在嵌入的iframes检查postMessage()呼叫,是否发生在使用者触发的上下文中。

新的userActivation属性可以同时在navigator和MessageEvent上使用,支援的属性包括hasBeenActive和isActive。hasBeenActive能指出关联视窗是否在其生命周期中,发生过使用者触发事件,但这个属性不反应当前任务是否由使用者触发,而isActive则能查询当前视窗,是否在其生命周期中存在用户触发行为。

而postMessage()方法现在则在Window、Worker以及MessagePort物件使用选项参数,该物件存在参数并加入includeUserActivation布林属性,用来通知讯息回条是否存在使用者触发行为。

除了公开类别域和使用者触发查询API,Chrome 72也还更新了一系列的功能。当请求会互相覆写时,快取API现在会拒绝addAll(),由于Cache.prototype.addAll() API能够一次将多个项目加入快取中,在过去会违反规范要求,而现在每一个请求和回应,都会避免覆盖同一个呼叫中的另一个项目,Chrome透过存储后面项目,并忽略之前的项目来解决此类冲突。

Chrome现在支援RTCPeerConnection.connectionState,这是根据低层ICE和DTLS传输的对等连接传输状态计算的聚合值,其目的是要提供比只支援基于ICE传输的RTCPeerConnection.iceConnectionState更完整的连接状态概述。另外,在第三阶段ECMAScript提案变更了JSON.stringify(),以防止回传错误格式的Unicode字串,现在也将在Chrome 72中获得更新。

除此之外,Chrome 72将不允许在卸载页面得期间使用window.open()弹出视窗,Chrome弹出视窗阻止程式将禁止该操作,但执行与否取决于弹出阻止程式是否启用。同时,HTTP公钥固定(HTTP-Based Public Key Pinning,HPKP)也会被移除,HTTP公钥固定允许网站发送HTTP标头,该标头固定网站凭证链中存在的多个公钥,但由于采用率低而且存在拒绝服务和恶意固定的风险,因此官方决定移除。

官方还提到,FTP是一种不安全的老旧协定,应该要逐渐弃用,而第一个步骤便是弃用FTP服务器渲染资源,并且直接进行下载动作,Chrome仍会生成目录列表,但任何非目录列表都将被下载,而不会在浏览器中显示。

另外,Chrome 72还会弃用TLS 1.0和TLS 1.1,TLS (Transport Layer Security) 是保护HTTPS一项历史悠久的协定,存在将近二十年的TLS 1.0及其前身SSL都有许多缺陷,支援TLS 1.2是彻底解决之道,在Chrome 72中弃用并预计将在2020年初的Chrome 81彻底淘汰。

2018-12-19 18:34:00

相关文章