發布日期:2025 年 5 月 29 日
自 Chrome 138 起,Chrome 擴充功能中的使用者指令碼 (chrome.userScripts
API) 有一系列變更,著重於提升安全性,並為使用者提供更精細的控制選項。這項更新會納入來自開發人員社群和使用者的寶貴意見。
先前啟用使用者指令碼時,必須在 Chrome 中開啟全域「開發人員模式」切換鈕。我們瞭解到您認為這項做法在安全性、功能和企業方面有幾項重要限制。
具體來說,依賴全域「開發人員模式」切換鈕會發生以下問題:
- 安全風險:啟用開發人員模式後,要求
userScripts
權限的新擴充功能會自動獲得執行使用者指令碼的權限,可能不需要使用者的明確同意,也不需要瞭解與每個新擴充功能相關的風險。 - 功能超載:「開發人員模式」切換鈕會控制其他幾項開發人員導向的權限,因此無法精確管理執行使用者指令碼的特定權限。
- 企業挑戰:許多企業不想在受管理的裝置上啟用開發人員模式,這會有效防止他們部署或使用依賴
chrome.userScripts
API 的擴充功能。
為解決這些疑慮,並提升 Chrome 擴充功能的安全性和可用性,我們將從全域的「開發人員模式」切換按鈕,改為針對個別擴充功能提供新的「允許使用者指令碼」切換按鈕。
這項全新切換鈕可在 Chrome 138 (chrome://extensions/?id=<your_extension_id>
) 的擴充功能詳細資料頁面中使用,讓使用者明確控制擴充功能在個別擴充功能上執行使用者指令碼的功能。這可提供更精細的控管功能,並降低潛在的安全風險。
在轉換期間,Chrome 138 以下版本會繼續使用「開發人員模式」切換鈕,而 138 以上版本則會使用新的「允許使用者指令碼」切換鈕。在 138 以上版本首次啟動時,如果啟用「開發人員模式」切換按鈕,系統會為已授予 userScripts
權限的現有擴充功能自動啟用新的切換按鈕。遷移後安裝的所有新擴充功能,預設會將「允許使用者指令碼」切換鈕設為關閉。
此外,為了檢查 User Scripts API 的可用性,擴充功能先前必須嘗試存取 chrome.userScripts
。如果停用開發人員模式,這會擲回錯誤。從 Chrome 138 開始,這項行為與其他 API 一致,如果無法使用,則 API 未定義。不過,我們建議您使用這項檢查項目,判斷 API 是否可用,因為它涵蓋所有 Chrome 版本:
function isUserScriptsAvailable() {
try {
// Method call which throws if API permission or toggle is not enabled.
chrome.userScripts.getScripts();
return true;
} catch {
// Not available.
return false;
}
}
如果管理員先前是透過停用開發人員模式來管理使用者指令碼,現在應使用 blocked_permissions
政策或 Google 管理控制台,控管使用 chrome.userScripts
API 的擴充功能。我們正在評估進一步變更,以便控管強制安裝的擴充功能的 chrome.userScripts
存取權,請密切留意管理員發布資訊,以便掌握最新消息。
我們相信這項異動可讓使用者更精確地控管擴充功能,進而提升安全性和提供更透明的使用體驗。我們鼓勵擴充功能開發人員更新說明文件,反映這項變更,並確保使用者能順利完成轉換作業。
如要進一步瞭解異動內容和新行為,請參閱說明文件。
我們感謝開發人員社群提供意見,促使我們做出這項改善,並持續致力為所有使用者提供安全且友善的體驗。