Chrome 83稳定版发布了,以下是最主要的更新内容:
可信类型(受信任类型),有助于防止跨站点脚本漏洞
新的表单元素
新的跨域政策
互联网生命计划
检测内存泄漏的新方法
可信类型(可信类型)
基于DOM的跨站点脚本(DOM XSS)是最常见的Web安全漏洞之一。可信类型(可信类型)可以帮助防止这种错误,因为它们会要求您在数据传递给潜在的危险之前实现进行处理。
以innerHTML标准,如果启用了可信类型,那么如果尝试传递一个字符串,导致抛出一个TypeError,因为浏览器不知道它是否可以信任该字符串。
//打开const elem = document的可信类型。getElementById ('myDiv' );
ELEM 。innerHTML = `你好,世界!` ; //将抛出TypeError
相替代地,需要使用诸如textContent之类的安全函数,可以信赖的类型,或者创建该元素并使用appendChild()。
//使用安全函数
elem 。textContent = '' ; // OK 在一个可信任的类型//通行证进口DOMPurify 从“dompurify” ; const str = `Hello,world!` ;
ELEM 。innerHTML = DOMPurify 。清理(str ,{ RETURN_TRUSTED_TYPE :true }); //创建一个元素const img = document 。createElement ('img' );
img
。src = 'xyz.jpg' ;
ELEM 。appendChild (img );
更新表单控件
Chrome和Edge进行了合作,以改善HTML表单控件的外观和功能。下图显示了Chrome中某些控件的新旧版本对比(左旧右新)。
除了新的视觉风格之外,微软还提供了更好的触摸支持和辅助功能,同时改进了键盘支持。
新的跨域政策
一些Web API会增加某种Spectre之类的旁道攻击的风险。为了减轻这种风险,Chrome提供了一个基于选择的隔离环境,称为跨域隔离。这是通过两个新的HTTP标头完成的:跨原始物嵌入政策
和跨原始物开放政策。使用这些标头,网页可以安全地使用特权功能,包括:
Performance.measureMemory()
JS自剖析API
跨域隔离状态还可以防止对document.domain进行修改。
网络生命
有这样的一组共同的信号-“核心网络生命”-对所有网络体验都至关重要。此类核心用户体验需求包括页面内容的加载体验,相互作用性和视觉稳定性,以及这些共同构成了2020 Core Web Vitals的基础。
内容最大的涂料会测量感知的加载速度,并在页面的主要内容可能已加载时标记页面加载时间轴中的点。
First Input Delay可测量响应度,并量化用户在首次尝试与页面进行交互时的体验。
累积布局偏移可调整视觉稳定性,并在可见页面内容的意外布局偏移量。
原产地试验
用measureMemory()测量内存
performance.measureMemory()是一个新的API,可用于测量页面的内存使用情况和检测内存泄漏。
更新原生文件系统API
原生文件系统(Native File System)API在Chrome 83中启动了一个新的源程序试用版,该版本支持可写流,并且可以保存文件句柄。
异步 函数 writeURLToFile (fileHandle , url ){ //创建要写入的FileSystemWritableFileStream。const writable = 等待fileHandle 。createWritable (); //对内容进行HTTP请求。const response = 等待获取(url ); //将响应流式传输到文件中。
等待回应。身体。pipeTo (可写);// pipeTo()自动关闭目标管道。}
可写流使写入文件变得更加容易,并且可以轻松地将响应从一个流传输到另一个流。
将文件句柄保存到IndexedDB允许用户存储状态或记住用户正在处理的文件。例如,保留最近编辑的文件列表,打开用户正在使用的最后一个文件等等。
其他
Chrome现在支持一级检测API,该API提供了检测和解码二级的功能。
新的CSS @supports函数为CSS选择器提供功能检测。
新的ARIA注释支持屏幕阅读器可访问带有语义(某些的语义)的注释,建议和文本高亮。
Preferreds-Color-Scheme媒体查询使作者能够选择自己的深色主题,他们可以完全控制自己建造的体验。
JavaScript现在支持共享工作程序中的模块。
详情可查阅:https : //developers.google.com/web/updates/2020/05/nic83