带有manifestv3的Chrome扩展 - 服务工作线程无法唤醒

Ana*_*ion 10 google-chrome google-chrome-extension chrome-extension-manifest-v3

我有一个背景脚本定义如下

"background": {
    "service_worker": "background.js"
  },
Run Code Online (Sandbox Code Playgroud)

和内容脚本

"content_scripts": [
    {
      "matches": [
        "*://youtube.com/*"
      ],
      "js": ["content-script.js"]
    }
Run Code Online (Sandbox Code Playgroud)

背景与往常一样

runtime.onMessage.addListener
Run Code Online (Sandbox Code Playgroud)

和内容脚本

chrome.runtime.sendMessage({
Run Code Online (Sandbox Code Playgroud)

但是,在某些罕见的情况下(大约 2-5% 的用户),尽管 YouTube 的选项卡已打开,但 Service Worker 仍保持不活动状态,因此 sendMessage 调用不会返回任何内容。

这只能通过关闭并重新打开扩展来解决。

如果服务工作者睡着了,有没有办法以编程方式唤醒它?是否有可能导致 Service Worker 无法醒来的原因?未捕获的异常,清单设置?

我真的很迷失在这里,调试起来非常困难,因为在一个月内我从未发生过这种情况,而且只有当用户同意进行通话和共享屏幕时我才能调试它。

该扩展程序拥有超过一百万用户,但这简直要了我的命。

该扩展可以在https://github.com/Anarios/return-youtube-dislike/tree/main/Extensions/combined看到

最新版本的 chrome 上已确认发生此情况。