Skip to content

✨ Popup 增加脚本设置与站点范围快捷操作 - #1646

Open
CodFrm wants to merge 1 commit into
mainfrom
feat/1590-site-scope
Open

✨ Popup 增加脚本设置与站点范围快捷操作#1646
CodFrm wants to merge 1 commit into
mainfrom
feat/1590-site-scope

Conversation

@CodFrm

@CodFrm CodFrm commented Aug 3, 2026

Copy link
Copy Markdown
Member

Checklist / 检查清单

  • Fixes mentioned issues / 修复已提及的问题
  • Code reviewed by human / 代码通过人工检查
  • Changes tested / 已完成测试

背景

为 Popup 增加快捷的脚本设置入口,并提供可选的站点范围操作,让用户无需进入完整编辑流程即可把脚本限制到当前站点,或重新允许脚本在当前站点执行。

本次改动

  • Popup 脚本展开区始终提供“脚本设置”,直接打开编辑器设置子页。
  • 新增默认关闭的“站点范围快捷操作”设置,并纳入外观设置备份。
  • 开启后,本站生效时提供“仅在当前站点执行”和“排除当前站点”;本站受限时只提供“允许在当前站点执行”。
  • 新增 Service Worker 站点范围消息及处理器,修改用户自定义匹配范围,不改写作者脚本源码或原始 metadata。
  • 补齐所有现有 locale 的文案。

实现考虑

  • 作者声明的 @match / @include 始终是执行范围外层边界;用户允许列表不会使脚本越过作者声明的站点范围运行。
  • 仅在某站点执行通过 selfMetadata.match 保存,因此脚本更新不会覆盖用户选择。
  • Popup 在作者 metadata 匹配但用户未允许的站点仍展示脚本,以便用户执行“允许在当前站点执行”。

建议审查重点

  • onlyRunOnUrlallowUrl 与现有 exclude 语义的组合。
  • Popup 生效/受限两种状态的动作互斥关系。
  • 设置项默认关闭及 Popup preload 数据流。

关联

Closes #1590

验证

  • pnpm run lint:通过(Prettier、TypeScript、ESLint、i18n、issue templates)。
  • pnpm test:311 个测试文件、3500 个测试全部通过。
  • pnpm run build:通过;仅有仓库现有的 bundle size 与 Monaco 动态 require 警告。
  • pnpm exec playwright test --config playwright.scratch.config.ts e2e/scratch/verify-issue-1590.spec.ts:2/2 通过。
  • git diff --check:通过。

Screenshots / 截图

已通过真实构建扩展人工核对 Pencil 定稿 Feature - 站点范围 · 定稿 v2(展开区动作项):站点主操作使用 $primary 蓝色,排除操作为橙色,删除操作为红色;生效与受限两种展开状态均已截图验证。

@cyfung1031

Copy link
Copy Markdown
Collaborator

我没空检查 PR 了
你把图截一下让 1590 的那个人看看吧
看看是否他所要求的功能

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.

[Feature] Add "Unmatched Scripts" section to popup

2 participants