Skip to content

feat: 添加网络功能开。#23

Open
hottaiger wants to merge 1 commit into
fedtop:mainfrom
hottaiger:feature/20260630_net
Open

feat: 添加网络功能开。#23
hottaiger wants to merge 1 commit into
fedtop:mainfrom
hottaiger:feature/20260630_net

Conversation

@hottaiger

Copy link
Copy Markdown

No description provided.

@wangrongding

Copy link
Copy Markdown
Member

我看了一下这个 PR,方向是对的:加一个网络功能总开关,关闭时释放 chrome.proxy.settings,可以避免 DevGo 一直占着浏览器代理控制权。但现在还不建议直接合,有两个阻塞点需要先改。

  1. pnpm-lock.yaml 被从 lockfile v9 降成了 v6,而且 package.json 没有对应依赖变更。我在临时目录应用 PR 后用当前项目的 pnpm 10.33.0pnpm install --frozen-lockfile,直接失败:
ERR_PNPM_LOCKFILE_BREAKING_CHANGE Lockfile ... not compatible with current pnpm

这会导致后续 pnpm compile、eslint、prettier 都无法正常跑。建议用项目当前 pnpm 重新生成 lockfile,或者如果没有真实依赖变化,就从 PR 里移除 pnpm-lock.yaml 的改动。

  1. CORS 开关目前会间接重新接管代理。NetworkPage.tsx 打开 CORS 时先执行了 networkFeaturesEnabled.setValue(true);background 里监听 networkFeaturesEnabled 后会走 applyNetworkFeatures(),里面无条件 networkProxyManaged.setValue(true) 并写入 chrome.proxy.settings。结果是用户只想开 CORS,也会让 DevGo 抢占浏览器代理控制权,这正好违背这个 PR 想解决的“不要和别的扩展抢代理”的目标。

建议把“代理接管”和“CORS 调试”分开处理:

  • CORS 开关只影响 CORS 动态规则和页面注入代理,不应该写 chrome.proxy.settings
  • 只有用户明确选择/应用网络模式,或明确打开代理功能时,才设置 networkProxyManaged = true 并写浏览器代理配置。
  • 总开关关闭时可以释放代理和停用 CORS;但总开关打开时不应该无条件重新接管代理,应该只恢复用户明确启用过的代理子功能。

这两个点修掉后,这个改动的整体思路就比较可接受了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants