什麼是 Blink 意圖?

工程師想變更 Blink 算繪引擎時,會在 blink-dev 郵寄清單上發布貼文,取得核准後再繼續。這些郵寄清單貼文稱為「Blink Intents」

Chromium 架構的網路瀏覽器會使用 Blink 算繪引擎,將程式碼和資源轉換為可供檢視及互動的網頁。

blink-dev 郵寄清單

瞭解 Blink Intents 的運作方式、重要性,以及新功能如何進入 Blink。

Chromium 是開放原始碼瀏覽器專案,Chrome 和其他一些瀏覽器與架構都是以這個專案為基礎建構而成。Blink 是 Chromium 使用的轉譯引擎。

新功能必須通過 Chromium 專案的開放開發程序,才能納入 Blink。「新功能」是指對瀏覽器程式碼或架構所做的任何變更或新增項目。可能是新的 JavaScript API、Blink 程式碼的重大效能提升,或是瀏覽器外觀或運作方式的其他變更。

開放式協作程序

Chromium 是龐大複雜的專案,有數千名協作者。Chromium 發生變更時,每個里程碑都是邀請更廣泛的網路生態系統,針對設計和實作提供意見的機會。

盡可能讓新功能在網頁平台之間互通,而非僅在單一瀏覽器上實作。網頁開發人員不希望遇到意外狀況:瀏覽器運作方式與預期不同,或是必須為不同瀏覽器和平台編寫不同程式碼。Blink Intents 有助於建構及控管變更程序,讓變更更可預測,減少意外情況,這對網頁開發人員來說是一大優點。

對使用者而言,瀏覽器供應商必須謹慎,確保變更不會導致網站停止運作。網站擁有者經常會停止維護網站。有些網站甚至幾十年都沒更新!瀏覽器供應商進行可能導致中斷的變更時,必須考量到這一點。

從構想變成提案

網頁平台變更和更新提案來自研究:諮詢使用者、商家、瀏覽器工程師、網頁開發人員和其他利害關係人。這項研究可協助 Chrome 團隊找出平台缺少的項目,或需要變更的內容。一開始,網頁平台變更或新功能的提案只會是網頁上的文字。工程師會分享文件,徵求同事的意見並進行討論。

例如:FedCM

GitHub 上的 FedCM 說明

Federated Credential Management (FedCM) API 提供以隱私權為優先考量且易於使用的使用者註冊和登入方式,也就是聯合身分識別。舉例來說,這項規定適用於「使用 Google 帳戶登入」和其他社群媒體登入方式。

如要建立瀏覽器 API,第一步是準備提案,以供公開討論。FedCM 的提案已在 GitHub 上發布為說明文件。歡迎大家在說明存放區建立 GitHub 問題,提出問題或對功能設計發表意見。意見包括開發人員對其他用途、限制、改善想法的說明,或是對支援的承諾。

提案獲得 W3C 等標準化機構採用後,利害關係人就能加入討論,並在 W3C 工作群組等網路標準群組中觀看簡報。

每當工程師開發新功能或變更 Blink 算繪引擎時,都會在 blink-dev 討論群組發布貼文,說明他們打算進入下一個階段,以實作某項功能。這些貼文稱為「意圖」。任何人都可以訂閱 blink-dev 群組,在新功能開發有進展時接收通知,也可以訂閱個別功能來接收最新消息。

意圖轉原型

此時,Chromium 工程師可以開始實作功能。也就是說,這項功能的原型功能可能會透過功能標記提供給開發人員測試,一開始會先在 Chrome Canary 中推出,然後再擴展至其他發布管道。任何使用者都可以在 chrome://flags 頁面中設定旗標,啟用並測試瀏覽器中的功能。

不過,並非所有標記都能透過 chrome://flags 頁面設定。如需更精細的控制,可以透過終端機使用指令列標記執行 Chrome。請注意,部分新功能會在 Chrome Canary 測試版推出後才開放使用,但這種情況相當罕見。部分功能沒有專屬的旗標,但啟用 experimental-web-platform-features 旗標後即可使用。如果實作「較小」的功能最多需要三到六個月,通常就會是這種情況。

收集原型意見回饋

新功能的原型設計開始後,Chromium 工程師會邀請大家討論並搶先試用。此時的意見回饋對於驗證和疊代提案至關重要。如要對 Chrome 中的實作項目發表意見,請前往 Chromium 錯誤

Chromium Issue Tracker 中建立問題。

實驗意圖:在現實環境中測試

如果 Chrome 工程師想要求執行來源試用,可以選擇在 blink-dev 上發布「實驗意圖」貼文,做為下一步。

Intent to Experiment for FedCM.

來源試用是測試新功能或實驗性網路平台功能的方法。您需要註冊功能的來源試用,然後取得試用權杖。只要網頁提供權杖,這項功能就會啟用。

可用的 Chrome 來源試用清單。

如要繼續實作功能,Blink API 擁有者必須回覆意圖並附上「looks good to me」貼文 (又稱 LGTM),表示同意。

Blink API 擁有者是一小群 Chromium 貢獻者,他們在網路平台及其 API 方面經驗豐富,並獲得 Blink 社群的認可,致力於實現 Blink 的使命和價值觀。除了核准 (或不核准!) 功能以利後續實作,API 擁有者也會監督 Blink Intent 程序本身。

實驗意圖必須獲得至少一位 API 擁有者的 LGTM。

LGTMs on FedCM Intent to Experiment post.

來源試用的價值

開發人員可以註冊功能來源試用,然後在實際環境中,與真實使用者一起測試正式版功能,使用者無須採取任何行動即可啟用功能。開發人員可以分享測試結果,提供寶貴的洞察資料,協助疊代及演進這項功能。

出貨意願:最後一個里程碑

「準備發布」信號表示功能已完成,可供所有 Chrome 穩定版使用者實作,不需使用旗標或試用權杖。實作前,Intent to Ship 必須先取得 API 擁有者個 LGTM。

推出新功能

獲得核准後,這項功能就會併入即將發布的版本,然後透過 Chrome 發布管道逐步推出。測試及導入新功能時,通常需要特別謹慎。 部分功能會逐步推出,開放給越來越多使用者。如果出現非預期的副作用,也可以復原及重新設計功能。

管理淘汰和移除作業

Blink 意圖還有其他兩種:

  • 淘汰意圖
  • 有意移除

這聽起來可能有點令人難過,但對 Blink 開發的成功至關重要。

工程師發布「預計淘汰」意圖,是為了開始警告開發人員,某項功能預計淘汰。例如,在 Chrome 開發人員工具控制台中提供支援和淘汰資訊。

工程師打算預設停用程式碼時,會發布「移除意圖」

blink.dev 上的「意圖淘汰」LGTM

淘汰和移除的重要性

淘汰和移除功能對於維護網路平台健康狀態至關重要。 確保 Chrome 可以移除不適合終端使用者或網頁開發人員的功能,並協助簡化程式碼。舉例來說,AppCache 設計上的問題是在穩定版瀏覽器中用於正式版網站後才發現,因此該 API 最終遭到移除。淘汰及移除功能也有助於減少潛在的攻擊媒介,確保 Chrome 安全無虞。

與所有 Blink 意圖一樣,Chrome 團隊會盡量謹慎地做出決策。他們會先查看功能使用率和其他資料,再繼續進行。事實上,移除功能的門檻非常高,只有在極少數使用者使用某項功能,且有更好的替代方案時,才會移除該功能。

您可以在 Chrome 狀態追蹤功能進度、訂閱最新消息、回報錯誤及尋找其他資源。

chromestatus.com 上查看 Chrome 功能藍圖。

如要追蹤新功能,請關注 Chromium 網誌,並加入 blink-dev 討論群組。這個群組可能會產生大量電子郵件,因此建議您訂閱單一意圖。您可以查看 Blink 意圖的試算表

如果非常喜歡 Blink Intents,甚至可以自動建構 Blink Intent 追蹤器服務

後續步驟

請參閱「什麼是 Chrome 發布版本?」。