發布日期:2025 年 4 月 3 日
在 Chrome 中推出新功能時,我們需要進行許多檢查和平衡作業,確保功能運作正常、符合規定且可靠。其中一項平衡就是 Finch 實驗。請勿因為名稱中的「實驗」而認為不安全,事實恰恰相反。Finch 推出功能可協助我們安全地新增功能,避免發生相容性問題,因為如果遇到無法預料的問題,我們就能快速停用功能。本文將說明我們如何以及為何在 Chrome 的部分功能版本中使用 Finch。
一般來說,在 Chrome 中啟用功能,只要將布林值從關閉切換為開啟即可。當新功能「推出」時,表示所有使用者的這個布林值預設狀態都會變更為「開啟」。方法如下:
- 「在程式碼中」啟用這項功能:這表示 Chrome 可執行檔本身有預設為啟用的設定。
- 透過「來源試用」啟用這項功能:來源試用系統可讓特定網站選擇讓所有 Chrome 使用者參與實驗,僅在該網站上啟用特定功能。
- 啟用「使用 Finch」功能:Chrome 會定期從伺服器擷取設定檔,這個檔案可能包含啟用或停用功能的指令。
- 「Finch 終止開關」:與啟用「使用 Finch」相反。在本例中,這項功能「在程式碼中」已啟用,但隨後使用 Finch 系統停用,通常是因為在發布後偵測到問題
Finch 用途
這篇網誌文章的主題是 Finch,因此我們不會再深入探討「在程式碼中」或「來源試用」啟用。但 Finch 有多種有趣的用途。
針對一小群使用者進行測試 (A/B 測試)
通常,Finch 用於對功能或最佳化進行「A/B 測試」。在這種情況下,系統會為一小部分使用者啟用某項功能,以便收集資料,瞭解啟用和停用該功能時,成效、行為或使用情形的差異。
舉例來說,我們推出推測性圖片解碼功能時,就進行了 A/B 測試。這項效能提升對開發人員或使用者來說應該不會有明顯影響,只會讓 Chrome 更快速載入網頁。不過,為確保一切正常,並準確評估效能影響,我們使用 Finch 進行 A/B 測試。
停用有問題的功能
為確保產品安全和使用者體驗,Chrome 可以使用 Finch 系統,從遠端停用「在程式碼中」啟用的問題功能。舉例來說,如果某項功能預設為啟用,但 Chrome 達到穩定狀態後才出現問題,我們就需要快速停用該功能,讓使用者和商家恢復安全狀態。如果功能中存在未發現的錯誤,或是功能因無法預料的原因導致現有網站發生問題,就可能需要這麼做。
以更安全的方式啟用高風險功能
Chrome 推出的大部分功能風險都很低,因為我們可以測試並驗證新程式碼是否適用於所有網站。
不過,由於相容性問題不明或其他複雜的互動,有時推出功能可能相當冒險。在這種情況下,Finch 系統可用於實際「啟用」這項功能,而不只是做為終止開關保留。
舉例來說,HTML 剖析器「放寬」與新的可自訂選取器功能有關,可讓您在 <select> 元素中放置比以往更多的內容。由於這項變更可能會導致現有網站無法正常運作,因此我們必須謹慎推出。
使用 Finch 啟用功能比移除功能更安全,因為 Finch 無法觸及 100% 的使用者,原因有很多。舉例來說,部分企業使用者有項政策,完全禁止設定 Finch。如果程式碼中啟用某項功能,然後使用 Finch 終止切換,這些使用者仍會處於風險中,因為他們不會收到 Finch 設定,且功能會繼續啟用。如果改用 Finch 啟用這項功能,我們就能確保在緊急情況下,可以為所有使用者停用這項功能。
如何確認自己是否參與 Finch 實驗?
使用者很難直接執行這項操作。建議您聯絡 Chrome 工程師 (通常是在 Chromium 錯誤的脈絡下),並將「變數清單」傳送給他們。這是特定瀏覽器的所有 Finch 設定特殊編碼版本清單。您可以輕鬆擷取:
- 前往
chrome://version - 複製「有效變體」旁邊列出的完整文字清單 (清單可能很長)。
- 將該文字貼到文字檔 (例如
variations.txt),然後附加至錯誤。
Chrome 工程師可以解碼這份變體清單,瞭解瀏覽器啟用或停用了哪些功能。
Finch 實驗達到 100% 後會發生什麼事?
我們確信實驗「成功」且相關功能不會對開發人員或使用者造成風險後,一律會「在程式碼中」啟用該功能。此時,您可以安全地為 Finch 設定設定結束日期,這樣一來,在程式碼中啟用這項功能的版本發布後,Finch 設定就不會再對瀏覽器造成影響。