发布时间:2026 年 9 月 8 日
从 Chrome 155 开始,Chrome 更新了企业版政策限制对使用 chrome.debugger API 的扩展程序的应用方式。
此变更仅影响在受管理的浏览器上运行的扩展程序,其中管理员已明确配置 runtime_blocked_hosts、DisableScreenshots 或数据泄露防护 (DLP) 规则。
如果扩展程序在非受管浏览器中运行,或者在没有这些特定政策限制的企业环境中运行,chrome.debugger 会继续正常运行,不会发生任何变化。
时间表和发布
- Chrome 155 Beta 版:2026 年 9 月 16 日
- Chrome 155 稳定版推出:2026 年 10 月 6 日
Chrome 155 中的主要变化
以下变更只会影响企业管理的浏览器:
主机限制:如果企业政策 (
ExtensionSettings) 为扩展程序配置了非空的屏蔽主机列表 (runtime_blocked_hosts),则chrome.debugger.attach()会在所有目标上被拒绝,并显示以下错误消息:"Host access is restricted by policy."即使
runtime_allowed_hosts中包含特定来源,也是如此。屏幕截图和 DLP 限制:如果企业政策(
DisableScreenshots或数据泄露防护 (DLP) 规则)停用了屏幕截图捕获功能,则chrome.debugger.attach()会失败并显示以下消息:"Screenshot capture is restricted by policy."
个人资料和非受管环境继续具有不受限制的 chrome.debugger 访问权限,与之前一样。
chrome.debugger API 授予直接 Chrome DevTools Protocol (CDP) 访问权限,以实现强大的功能,包括任意脚本评估和网络拦截。由于 CDP 在 Web 平台的源模型下运行,因此基于源的过滤无法安全地限制它,Chrome 155 通过全有或全无模型解决了此问题,在 chrome.debugger.attach() 调用时预先验证企业政策。
建议开发者采取的措施
妥善处理附加拒绝
始终在扩展程序代码中处理附加拒绝,以便向企业用户提供明确的反馈:
// Promise-based (Manifest V3)
try {
await chrome.debugger.attach({ tabId }, "1.3");
} catch (error) {
if (error.message.includes("Host access is restricted by policy")) {
console.warn("Debugger attach blocked: Extension has host restrictions configured by enterprise policy.");
} else if (error.message.includes("Screenshot capture is restricted by policy")) {
console.warn("Debugger attach blocked: Screenshots or DLP restrictions are enforced by enterprise policy.");
} else {
console.warn("Debugger attach failed:", error.message);
}
}
// Callback-based
chrome.debugger.attach({ tabId }, "1.3", () => {
if (chrome.runtime.lastError) {
console.warn("Debugger attach failed:", chrome.runtime.lastError.message);
}
});
考虑使用其他高级别 API
如果您的扩展程序并非严格要求直接访问 CDP,请考虑迁移到更高级别的扩展程序 API,这些 API 支持精细的主机权限,并且可以与企业主机许可名单和屏蔽名单配合使用:
- 使用
chrome.scriptingAPI 执行脚本并将样式插入到允许的网页中。 - 使用
chrome.declarativeNetRequestAPI 以声明方式检查、修改或阻止网络请求。 - 将
chrome.cookiesAPI 与标准主机权限搭配使用。
面向企业管理员的指南
管理扩展程序政策的企业管理员应注意,需要调试器权限的扩展程序无法在部分主机限制 (runtime_blocked_hosts) 的情况下运行。如果扩展程序需要 chrome.debugger,则不得在 ExtensionSettings 中配置已屏蔽的主机。
如果使用 DisableScreenshots 或数据泄露防护 (DLP) 规则停用了屏幕截图捕获功能,则 chrome.debugger.attach() 将失败。
需要使用主机屏蔽名单或屏幕截图限制的组织应验证其内部或获批的扩展程序是否可以迁移到更高级别的 API,例如 chrome.scripting 或 chrome.declarativeNetRequest。
分享反馈
如需了解详情,请参阅 chrome.debugger API 文档。如果您有任何问题或反馈,欢迎通过 Chromium 扩展程序 Google 群组联系我们。