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 elementio.observe(element);// Stop observing an element// io.unobserve(element);// Disable entire IntersectionObserver// io.disconnect();“使用IntersectionObserver中默認的設置,你的回調函數會在元素部分進入視圖中和完全離開窗口時被調用”,Surma說道。
在最新的穩定發布中,對證書管理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