50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

Google Chrome 51 与交叉观察者和证书管理等 API 一起更新

  • 2016-06-16
  • 本文字数:1597 字

    阅读完需:约 5 分钟

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 个功能:

  • navigator.credentials.get():获取用户的证书,并初始化一个登录流
  • navigator.credentials.store():在证书管理器中存储证书
  • navigator.credentials.requireUserMediation():禁用自动登录

在“使用证书管理API 简化登录流”的博客中,开发大使 Eiji Kitamura 认为 API 可以使用户只使用一个点击就能够登录、记住用户曾经登录使用过的联合帐户并且在会话过期后负责将用户跳转至登录界面。

在 Chrome 的实现中,证书会被存储在 Chrome 的密码管理器中。如果用户登录了 Chrome,他们就可以在设备间同步用户密码。那些同步的密码还可以和集成了无缝的跨平台体验的 Smart
Lock for Passwords API 的安卓应用共享。

Kitamura 说,在网页中使用证书管理 API 会根据架构而有变化,并且几乎不可能在一个博客文章中解释清楚所有可能的情况,即使他只考虑一个典型的单页应用。此 API 的一个 demo 可以在这里查看,您也可以访问 https://developers.google.com/web/updates/2016/04/credential-management-api 来查看 API 的全部详细信息。

Kitamura 还回答了有关证书管理的 FAQ,如下:

网页上的 JavaScript 有没有可能取回原密码?

不可能。你只可以将密码作为PasswordCredential的一部分取回,它不会通过任何方式暴露。

一个 id 能不能使用证书管理 API 存储三组数字?

现在还不行。您有关这个功能的反馈我们会高度关注的。

我可以在一个 iframe 中使用证书管理 API 吗?

这个 API 限制于最高层面的环境。在一个 iframe 中调用.get().store()将会立即执行而没有影响。

我可以将我自己的密码管理 Chrome 插件和证书管理 API 集成起来吗?

你也许需要重写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 )关注我们。

2016-06-16 19:001961
用户头像

发布了 26 篇内容, 共 78006 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

《函数式编程精粹》(1) 函数式思考

陈皓07

《DDD with TLA+》(2) 系统行为

陈皓07

《A Tour of TLA+》

陈皓07

无利不起早——聊聊学习动机

Justin

心理学 激励 28天写作 游戏设计

Elasticsearch Fetch Phase

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

递归的人生哲学

Nick

数据结构 算法 递归

第8周课后练习-性能优化二

潘涛

架构师训练营 4 期

与前端训练营的日子 -- Week17

SamGo

学习

android程序开发!2021Android精选面试实战总结整理,大厂直通车!

欢喜学安卓

android 程序员 面试 移动开发

《函数式编程精粹》(2) 热身:A STACK BASED CALCULATOR

陈皓07

Wiki.js 配置 LDAP 认证

东风微鸣

wiki

【答疑点评必看】如何从「数据范围」中找到解题「突破口」...

宫水三叶的刷题日记

面试 LeetCode 数据结构与算法

产品训练营 - 作业 5

简小一

《DDD with TLA+》(3) DEBUG & MODELING

陈皓07

这段时间的记录有点太水了

Nydia

join为啥会阻塞主线程?

叫练

join

译文 | 深度剖析 Pulsar Functions

Apache Pulsar

大数据 kafka 开源 pulsar Apache Pulsar

博文推荐 | Apache Pulsar 延迟消息投递解析

Apache Pulsar

kafka 开源 RocketMQ pulsar Apache Pulsar

《函数式编程精粹》(3) Functional Design

陈皓07

架构师进阶之《Your Mouse is a Database》

陈皓07

更新啦!第 59 期《HelloGitHub》开源月刊

HelloGitHub

GitHub 开源

android布局优化!Android屏幕适配很难嘛?其实也就那么回事,内含福利

欢喜学安卓

android 程序员 面试 移动开发

网络故障的排错思路指南

微服务架构设计与最佳实践

万俊峰Kevin

微服务 go-zero Go 语言

架构师进阶之《做踏实的架构》

陈皓07

《DDD with TLA+》(1) 建模思考

陈皓07

架构师训练营第九周作业 - 命题作业

阿德儿

Java 并发系列(一):多线程三大特性

TroyLiu

Java 多线程 原子性 可见性 有序性

如何写好一份解决方案

数列科技杨德华

28天写作

架构师训练营课程纲要

陈皓07

《DDD with TLA+》(4) Transaction Commit

陈皓07

Google Chrome 51与交叉观察者和证书管理等API一起更新_JavaScript_James Chesters_InfoQ精选文章