在 Chrome 扩展程序中启用 chrome.userScripts 的方式将发生变化

Justin Lulejian
Justin Lulejian

发布时间: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 访问权限控制方式,敬请关注管理员版本说明,了解最新动态。

我们相信,这项变更将让用户能够更精确地控制扩展程序功能,从而提高安全性并提供更透明的体验。我们建议扩展程序开发者更新其文档,以反映这项变更,并确保用户能够顺利过渡。

如需详细了解相关变更和新行为,请参阅我们的文档

我们衷心感谢开发者社区提供的反馈,这让我们得以做出这项改进。我们将一如既往地致力于为所有用户打造安全、易用的体验。