onBeforeSendHeaders 不适用于 Chrome 桌面快捷方式

onBeforeSendHeaders does not work with Chrome desktop shortcut

一个简单的 Chrome 扩展,启用 Youtube TV on my Raspberry Pi 4: Source

background.js

const config = {
  userAgent: 'Mozilla/5.0 (SMART-TV; Linux; Tizen 5.0) AppleWebKit/538.1 (KHTML, like Gecko) Version/5.0 NativeTVAds Safari/538.1'
}

function changeUserAgent (request) {
  for (let header of request.requestHeaders) {
    if (header.name.toLowerCase() === "user-agent") header.value = config.userAgent
  }

  return { requestHeaders: request.requestHeaders }
}

chrome.webRequest.onBeforeSendHeaders.addListener(changeUserAgent, {urls: ["*://*.youtube.com/tv*"]}, ["blocking", "requestHeaders"]);

清单

{
  "manifest_version": 2,

  "name": "YouTube TV for Browser",
  "description": "Enables YouTube TV for traditional browser",
  "version": "0.1",

  "permissions": [
    "webRequest",
    "webRequestBlocking",
    "*://*.youtube.com/tv*"
  ],

  "background": {
    "scripts": [
      "background.js"
    ]
  },
  "browser_action": {
    "default_title": "YouTube TV for Browser"
  }
}

但是,当我创建桌面快捷方式并从中打开 Youtube 时(没有其他 Chrome 进程 运行),脚本不会加载(这会将我重定向到正常 youtube.com)直到我手动刷新页面。

我的问题是:如何在 Chrome 发送请求之前或打开快捷方式后立即加载脚本。

不解决就解决了。改为在快捷方式属性中修改 --user-agentdetail here

--user-agent="Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Large Screen Safari/534.24 GoogleTV/092754 Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.77 Large Screen Safari/534.24 GoogleTV/092754"