Chrome 74可以减少晕车和新的JavaScript功能
谷歌今天推出适用于Windows,Mac,Linux,Android和iOS的Chrome 74。该版本包括对Windows中暗模式的支持,减少运动媒体查询,私有类字段,功能策略改进以及更多开发人员功能。您现在可以使用Chrome的内置更新程序更新到最新版本,也可以直接从google.com/chrome下载。
Chrome拥有超过10亿用户,是浏览器和Web开发人员必须考虑的主要平台。实际上,随着Chrome的定期添加和更改,开发人员通常必须始终掌握所有可用内容 - 以及已弃用或删除的内容- 最值得注意的是,Chrome 74会在页面卸载期间删除弹出窗口。
暗模式
Chrome 73为Mac用户推出了黑暗模式,Chrome 74应该为Windows用户提供相同的功能。无论出于何种原因,即使支持页面是实时的,功能也会逐渐推出。
由于Chrome只是背负每个操作系统的视觉外观,因此没有选项可以打开黑暗模式本身。要在Chrome中获得黑暗模式,您只需在macOS上启用黑暗模式或在Windows上将默认应用模式更改为黑暗。
减少晕动病
浏览器中的晕动病是真实的。Android提供了一个辅助功能选项,可以尽可能减少运动,如上面“删除动画”设置中所示。Chrome现在更进一步,因此当用户查看视差滚动,缩放和其他动作效果时,网站可以限制晕车。
Chrome 74引入了prefers-reduced-motion(媒体查询等级5的一部分),允许网站在操作系统设置为限制动作效果时予以尊重。这可能在今天看起来不是什么大问题,但如果网站开始滥用动作效果,它可能会非常有用。
Android和iOS
适用于Android的Chrome 74在Google Play上推出缓慢。更改日志中只有一个项目符号点:“从菜单中选择翻译即可立即翻译任何网页。”除此之外,版本74还包括稳定性和性能改进,并将数据保护程序重命名为精简模式。在相关新闻中,谷歌还杀掉了Data Saver的扩展。
适用于iOS的Chrome 74也在Apple的App Store上慢慢推出。
安全修复程序
Chrome 74实现了39个安全修复程序。以下是外部研究人员发现的:
[$ 3000] [913320]高CVE-2019-5805:在PDFium中免费使用。Anonymous于2018-12-10报道
[$ 3000] [943087]高CVE-2019-5806:角度中的整数溢出。2019-03-18,佐治亚理工学院SSLab的文旭报道
[$ 3000] [945644]高CVE-2019-5807:V8中的内存损坏。Leviathan Security Group的TimGMichaud报道。在2019-03-26
[$ 3000] [947029]高CVE-2019-5808:在Blink中免费使用。cloudfuzzer于2019-03-28报道
[$ N / A] [941008]高CVE-2019-5809:在Blink中免费使用。由2019-03-12 Google Project Zero的Mark Brand报道
[$ 2000 + $ 1,337] [916838] Medium CVE-2019-5810:Autofill中的用户信息披露。由Mark Amery于2018-12-20报道
[$ 2000] [771815] Medium CVE-2019-5811:Blink中的CORS旁路。Jun Kokatsu(@shhnjk)于2017-10-04报道
[$ 2000] [925598] Medium CVE-2019-5812:iOS上的Omnibox中的URL欺骗。Khalil Zhani在2019-01-26报道
[$ 2000] [942699]中等CVE-2019-5813:在V8中读取超出界限。由Cisco Talos的Aleksandar Nikolic在2019-03-15报道
[$ 1000] [930057] Medium CVE-2019-5814:Blink中的CORS旁路。由@ AaylaSecura1138于2019-02-08报道
[$ 1000] [930663] Medium CVE-2019-5815:Blink中的堆缓冲区溢出。由Agarri于199-02-11报道的NicolasGrégoire报道
[$ 1000] [940245] Medium CVE-2019-5816:在Android上利用持久性扩展。腾讯玄武实验室王永科(xlab.tencent.com)于2019-03-10报道
[$ 1000] [943709] Medium CVE-2019-5817:Windows上的角度缓冲区溢出。2019-03-19,佐治亚理工学院SSLab的文旭报道
[$ 500] [929962] Medium CVE-2019-5818:媒体阅读器中未初始化的值。Adrian Tolbaru在2019-02-08报道
[$ N / A] [919356] Medium CVE-2019-5819:开发人员工具中的转义不正确。由Svyat Mitin于2019-01-06报道
[$ N / A] [919635] Medium CVE-2019-5820:PDFium中的整数溢出。pdknsk在2019-01-07报道
[$ N / A] [919640] Medium CVE-2019-5821:PDFium中的整数溢出。pdknsk在2019-01-07报道
[$ 500] [926105]低CVE-2019-5822:下载管理器中的CORS旁路。Jun Kokatsu报道,微软浏览器漏洞研究2019-01-29
[$ 500] [930154]低CVE-2019-5823:来自服务人员的强制导航。David Erceg于2019-02-08报道
[955186]内部审计,模糊测试和其他举措的各种修复
因此,谷歌在这个版本中至少花费了26,837美元的奖金,或者是上个月花费的两倍。与往常一样,单独的安全修复程序应该足以让您升级。
开发者功能
Chrome 72引入了ECMAScript的公共类字段,通过避免仅仅为了定义实例属性而需要构造函数来简化类语法。Chrome 74允许您将字段标记为私有(只需在字段前加上#),并且该类的任何消费者都无法访问其值。与公共类字段一样,您的属性不需要位于构造函数中。与公共字段不同,私有字段不能在类体外部访问。
Chrome 60引入了功能政策,因此网站可以通过功能政策标头或iframe上的allow属性有选择地启用,禁用和修改API和其他网络功能的行为。Chrome浏览器74增强了JavaScript API的功能的策略,可从document.featurePolicy和frame.featurePolicy,通过三个功能:
allowedFeatures()返回当前域允许的功能列表。
allowsFeature()返回一个布尔值,指示当前域或指定域是否允许特定功能。
getAllowlistForFeature()返回当前页面上允许指定功能使用的域列表。
Chrome 74还将V8 JavaScript引擎更新到7.4版。它包括无JIT的V8,WebAssembly线程/原子,更好的性能,内存改进和新的JavaScript语言功能。查看完整的更新日志以获取更多信息。
此版本中的其他开发人员功能包括:
sampleRateAudioContext构造函数的选项:将“sampleRate”设置为将要创建的AudioContext的特定值。这允许开发人员为Web Audio API中的音频处理设置任意采样率,该采样率与硬件速率不同。使用此方法可降低复杂性(通过使用较低的采样率)或使用固定速率使所有设备的采样率保持一致,并使WebAudio适当地重新采样以获得硬件速率。
Intl.Locale:Chrome现在支持Intl.Locale类,它允许解析和操作语言环境的语言,区域和脚本;在区域设置中读取或写入Unicode扩展标记;以可序列化的标准格式存储此API的用户区域设置首选项(而不是使用语言和选项对象的组合)。
为分销商签署的交换报告:分销商的签名交换报告扩展了网络错误记录,使签名交易所的分销商能够调查签名的交换加载错误,例如证书验证错误。
TextEncoder encodeInto()方法:Chrome现在支持TextEncoder.prototype.encodeInto(),它允许将编码的字符串直接“写入”提供的预分配缓冲区,提供使用encode()生成缓冲区并将其内容复制到现有缓冲区的高效替代方法。
服务工作者:client.postMessage()缓冲直到文档准备就绪。为了防止在目标就绪之前传递消息,client.postMessage()不会在目标上发生以下任一情况之前调度消息:DOMContentLoaded触发事件,onmessage设置或startMessages()调用事件。
CSS过渡事件:该CSS过渡规范要求时的过渡入队过渡事件发送,启动,结束,或也被取消transitionrun,transitionstart,transitionend,和transitioncancel,分别。这些事件反映了CSS动画事件,允许开发人员观察CSS动画。Chrome现在遵循规范。
RTCIceCandidate而RTCIceCandidateInit现在符合规范。该RTCIceCandidate界面描述了WebRTC中的ICE候选者。它在Chrome中可用,但由于缺少某些字段,因此不符合规范。在可空和只读属性以及构造函数抛出的错误方面,还存在一些与规范的偏差。
当指定了无效编码时,XHR回退到UTF-8:当为XMLHttpRequest指定了无效编码(通过overrideMimeType()或响应的MIME类型)时,UTF-8的使用符合规范。以前,使用Latin-1。