写点什么

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:001979
用户头像

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

关注

评论

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

Go,一文搞懂 string 实现原理

微客鸟窝

Go 语言 8月日更

程序员必备!5款小众高效的开发神器

Jackpop

万企明道成立八周年,邀你书写留言!

明道云

vue入门:router路由简介与使用

小鲍侃java

8月日更

硬盘空间免费扩容了2TB!!!

Jackpop

MySQL 系列教程之(十)索引原理:B+ 树与索引

若尘

MySQL 数据库 8月日更

ndk-build 脚本

Changing Lin

8月日更

在线HTML5,CSS3,VueJS,jQuery运行测试练习工具

入门小站

工具

白手起家之注册中心zookeeper

卢卡多多

ZooKeeper原理 8月日更

架构训练营第 1 期 模块五作业

高远

管道(Channel)的读取与写入「让我们一起Golang」

Regan Yue

协程 Go 语言 8月日更 管道

【Vue2.x 源码学习】第四十二篇 - 组件部分 - 组件挂载流程简述

Brave

源码 vue2 8月日更

Go字符串拼接最佳实践

Rayjun

Go 语言

博客升级之在线代码编辑器

devpoint

vscode 编辑器 8月日更

elasticsearch7.13.4 ik中文分词器安装

Rubble

8月日更

服务发现机制SPI居然是破坏者!

4ye

Java 源码 后端 sping 8月日更

低品质的勤奋者

箭上有毒

8月日更

为什么要选择filecoin矿机挖矿?为什么不直接购买filecoin?

分布式存储 IPFS Filecoin fil挖矿 fil矿机

腾讯良心了?!!!

Jackpop

帮小姐姐打分系统的模型创建,滚雪球学 Python 第三轮第 11 篇

梦想橡皮擦

8月日更

先「干」,就对了

非著名程序员

个人成长 职场 认知提升 8月日更

【设计模式】访问者模式

Andy阿辉

C# 后端 设计模式 8月日更

手撸二叉树之根据二叉树创建字符串

HelloWorld杰少

数据结构与算法 8月日更

【Flutter 专题】61 图解基本 Button 按钮小结 (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

☕【Java技术指南】「并发原理专题」AQS的技术体系之CLH、MCS锁的原理及实现

码界西柚

AQS 8月日更 MCS锁 CLH锁

从0开始的TypeScriptの十二:装饰器

空城机

JavaScript typescript 大前端 8月日更

缓存函数的简单使用

编程三昧

JavaScript 8月日更

人工智能下的音频还能这样玩!!!!

Python研究者

8月日更

Linux 虚拟文件系统(VFS)分析

赖猫

Linux 文件系统

iOS开发:开发过程中单例模式的使用

三掌柜

8月日更 8月

你可能不知道的css动画性能

云小梦

CSS layout requestAnimationFrame 重排和重绘 will-change

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