發布日期:2025 年 4 月 3 日
在 Chrome 推出新功能時,我們會進行許多檢查和平衡測試,確保功能運作正常、符合規定且可靠。其中一個平衡點就是 Finch 實驗。請勿因為名稱中含有「experiment」而誤以為這項功能不安全,實際上這項功能正好相反。透過 Finch 推出功能,我們就能以安全的方式新增可能導致相容性問題的功能,因為如果遇到無法預料的問題,我們就能快速停用該功能。本文將說明我們為何在 Chrome 中使用 Finch 進行部分功能發布。
一般來說,在 Chrome 中啟用功能,只需在 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 移除功能更安全,因為 Finch 無法觸及 100% 的使用者。舉例來說,部分企業使用者有政策禁止使用 Finch 設定。如果在程式碼中啟用某項功能,然後使用 Finch 關閉切換,這些使用者仍會面臨風險,因為他們不會收到 Finch 設定,且會繼續啟用該功能。我們建議您改用 Finch 啟用這項功能,這樣一來,萬一發生緊急情況,我們就能確保絕對能為所有使用者停用這項功能。
如何確認是否參與 Finch 實驗?
使用者很難直接執行這項操作。建議您聯絡 Chrome 工程師 (通常是在 Chromium 錯誤的情況下),並傳送「變化版本清單」給他們。這是特定瀏覽器的所有 Finch 設定的特殊編碼版本清單。您可以輕鬆擷取:
- 前往
chrome://version
- 複製「有效變化版本」旁的整個文字清單 (可能會很長)。
- 將該文字貼到文字檔 (例如
variations.txt
) 中,然後附加至錯誤。
有了這個變化清單,Chrome 工程師就能解碼,並查看瀏覽器啟用或停用的功能。
當 Finch 實驗達到 100% 且可供使用時,會發生什麼情況?
一旦我們確信實驗「成功」,且相關功能不會對開發人員或使用者造成風險,就會在「程式碼中」啟用這項功能。此時,您可以安全地結束 Finch 設定,這樣在程式碼中啟用這項功能的版本後,這項功能就不會再對瀏覽器產生影響。