Google 发布 了Chrome 51,带来了交叉观察者、被动事件监听和证书管理的API,并且修复了很多安全性上的问题。
关于51稳定发布版中新添加的功能,Google的软件工程师 Alexander Surma 简单描述了交叉观察者API, 说道 :“ IntersectionObservers
能使你知道一个观察的元素进入或退出了浏览器窗口。”
对于开发者们来说,这特别地解决了观察的痛点:需要追踪元素,但是传统的调用 getBoundingClientRect()
的方式,用Surma的话来说,“慢得令人痛苦”。
Surma提供了下面的例子来说明:
var io = new IntersectionObserver( entries => { console.log(entries); }, { /* Using default options. Details below */ } ); // Start observing an element io.observe(element); // Stop observing an element // io.unobserve(element); // Disable entire IntersectionObserver // io.disconnect();
“使用 IntersectionObserver
中默认的设置,你的回调函数会在元素部分进入视图中和完全离开窗口时被调用”,Surma说道。
但是,Surma说这往往还不够,所以 阈值 选项允许开发者们定义 intersectionRatio 的阈值。您可以通过访问 https://developers.google.com/web/updates/2016/04/intersectionobserver 网址来查看更多有关 IntersectionObservers
的信息。
在最新的稳定发布中,对 证书管理API 的支持也是新的特性。这允许开发者们存储并取回密码证书和联合证书,其中提供了3个功能:
在“ 使用证书管理API简化登录流 ”的博客中,开发大使 Eiji Kitamura 认为API可以使用户只使用一个点击就能够登录、记住用户曾经登录使用过的联合帐户并且在会话过期后负责将用户跳转至登录界面。
在Chrome的实现中,证书会被存储在Chrome的密码管理器中。如果用户登录了Chrome,他们就可以在设备间同步用户密码。那些同步的密码还可以和集成了无缝的跨平台体验的SmartLock for Passwords API的安卓应用共享。
Kitamura说,在网页中使用证书管理API会根据架构而有变化,并且几乎不可能在一个博客文章中解释清楚所有可能的情况,即使他只考虑一个典型的单页应用。此API的一个demo可以在 这里 查看,您也可以访问 https://developers.google.com/web/updates/2016/04/credential-management-api 来查看API的全部详细信息。
Kitamura还回答了有关证书管理的FAQ,如下:
不可能。你只可以将密码作为 PasswordCredential
的一部分取回,它不会通过任何方式暴露。
现在还不行。您有关 这个功能的反馈 我们会高度关注的。
这个API限制于最高层面的环境。在一个iframe中调用 .get()
或 .store()
将会立即执行而没有影响。
你也许需要重写 navigator.credentials
并且将其与你的Chrome插件连接起来,来 get()
或 store()
证书。
据Google的QA工程师Krishna Govind在 稳定版本更新 中说,Chrome的51发布版还“包含了许多修改和改进”。在42个独立的安全性问题修补中,9个被列为“高”风险,其中包括了绕行连接至 跨源 的安全问题(问题 CVE-2016-1672 至 CVE-2016-1676 )。
Google的开发大使Pete LePage给出了此发布版本的概述,您可以在这里查看: https://youtu.be/LXbtIeHIQJA 。
查看英文原文: Google Chrome 51 Arrives with Intersection Observers, and Credential Management APIs
感谢夏雪对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们。