语言
用于改写当前网站请求头的 Chrome 扩展。启用后,该标签页内的请求(含 iframe / XHR / fetch / 媒体)都会应用你配置的请求头;语义为 set(没有则添加,有则覆盖)。
基于模板: chrome-extension-boilerplate-react-vite — React + Vite 8 的 Manifest V3 脚手架,构建更快。欢迎 Star 与 Merge Request。
发布指南、可粘贴的五语商店文案、隐私政策、审核说明与宣传图:
pnpm build
pnpm zip # → releases/header-modify-extention_v{version}.zip
重新生成图标 / 商店图:
pnpm assets:store
pnpm build
为当前网站启用 — 按 origin 打开改写。下面列表里的请求头按 set 语义生效(没有则添加,有则覆盖)。
从 DevTools 粘贴 — 从 Chrome Network 复制请求头(名称/值交替行、Name: Value 或 cURL -H),粘贴后点 Parse & Merge。
包含 iframe — session 规则按 tabIds 作用在当前标签页,主文档、跨域 iframe、XHR、fetch、媒体请求都会带上同一套请求头。
declarativeNetRequest session 规则 + tabIds)。Name: Value,以及 cURL -H。Manifest V3 不能使用阻塞式 webRequest。本扩展使用:
chrome.declarativeNetRequest.updateSessionRules
modifyHeaders + operation: "set"。
规则同时用 condition.tabIds(标签页内请求)和 initiatorDomains(站点 Service Worker / Turbo 拉 HTML 时没有 tabId,否则会漏改)。请求头与启用站点存于 chrome.storage.local;标签页或配置变化时重建 session 规则。
User-Agent: Chrome 还会发送 User-Agent Client Hints(Sec-CH-UA、Sec-CH-UA-Platform 等)。很多网站不看 User-Agent 字符串,而以这些提示为准。设置 User-Agent 时,本扩展会去掉这些 hint,改写才可能生效。
开发者工具: Network 里若出现 “Provisional headers are shown”,显示的仍可能是原 UA。请用服务端回显(如 https://httpbin.org/headers)或非 provisional 的请求核对。页面 JS 的 navigator.userAgent 不会被 DNR 改掉。
受保护请求头: Chrome 不能 SET Host、Content-Length、Sec-Fetch-* 等。这些项会被跳过,以免整条规则失败(连 User-Agent 一起失效)。
pnpm install
pnpm build
chrome://extensions/dist/ 目录开发热更新:
pnpm dev
http(s) 页面。sec-fetch-user
?1
upgrade-insecure-requests
1
user-agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36
| 权限 | 用途 |
|---|---|
storage |
持久化请求头、启用站点、语言 |
tabs |
识别当前标签页 / origin 并同步规则 |
declarativeNetRequest |
改写请求头 |
declarativeNetRequestFeedback |
规则诊断相关能力 |
<all_urls> |
修改页面与 iframe 请求头所需 |
| 命令 | 说明 |
|---|---|
pnpm dev |
监听构建 |
pnpm build |
类型检查 + 生产构建 → dist/ |
pnpm test |
Vitest(watch) |
pnpm test:run |
Vitest 单次 |
pnpm lint |
ESLint |
pnpm zip |
打包 dist/ → releases/header-modify-extention_v*.zip |
pnpm build:zip |
生产构建 + zip |
pnpm release:github:dry |
构建 zip 并预览 GitHub Release 说明(不打 tag / 不推送) |
pnpm release:github:full |
构建、提交、打 tag、gh release create、推送 |
pnpm assets:store |
重新生成图标与商店宣传图/截图 |
| 版本 | 说明 |
|---|---|
| v1.0.0 | 首个开源版本:Popup 编辑、DevTools 粘贴、按站启用、DNR 标签页作用域改写 |
MIT