You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MV3浏览器扩展:如何阻止后台Worker因标签页移除被唤醒?

MV3扩展Service Worker事件唤醒问题(以chrome.tabs.onRemoved为例)

我正在开发基于Manifest V3的浏览器扩展,这里以后台Service Worker和chrome.tabs.onRemoved事件为例,该问题也可能适用于其他Chrome API事件类型。

问题流程

  • Worker调用chrome.tabs.onRemoved.addListener(onRemoved)注册监听器
  • Worker因闲置停止运行
  • Worker再次被唤醒启动,但此时之前注册的onRemoved监听器引用已随Worker停止被清除,调用chrome.tabs.onRemoved.removeListener(onRemoved)无法找到对应监听器完成移除
  • 本次Worker启动后,不再调用chrome.tabs.onRemoved.addListener(onRemoved)添加新的监听器

测试现象

经过测试发现:一旦后台Service Worker调用过chrome.tabs.onRemoved.addListener(onRemoved),后续每次移除标签页时,Chrome都会唤醒后台Worker。即便Worker按设计频繁启停,也无法阻止这种唤醒行为——因为无法访问第一次注册的监听器实例来执行移除操作。虽然Worker重启后没有添加新监听器,不会执行标签页移除的处理逻辑,但每次移除标签页仍会触发后台线程唤醒。

核心疑问

是否存在可行方法,能在后台Service Worker调用过chrome.tabs.onRemoved.addListener(onRemoved)并停止后,阻止Chrome因标签页移除事件唤醒后台线程?


内容的提问来源于stack exchange,提问作者Garret Wilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 08:42:31