ExtensionManagerExt — 浏览器扩展管理工具
一个 Chrome/Edge 浏览器扩展,用于集中管理所有已安装的扩展。弥补了浏览器自带扩展管理功能的不足。
痛点
浏览器自带的扩展管理页面(chrome://extensions/)功能非常有限:
- 只能看到一个平铺列表,无法搜索或筛选
- 想临时禁用一批扩展只能逐个操作
- 没有分组功能,几十个扩展混在一起
- 不知道哪些扩展偷偷更新了或状态变了
ExtensionManagerExt 解决了这些问题。
核心功能
概览面板
打开扩展即可看到所有已安装扩展的卡片列表,顶部显示总数、启用数、禁用数统计。每个卡片展示扩展的图标、名称、描述和状态。
[!NOTE]
管理工具会自动隐藏自身,不会在列表中展示。
启用/禁用管理
- 每个扩展卡片上有开关按钮,一键切换启用/禁用
- 支持「全部启用」和「全部禁用」批量操作
- 监听外部变化,从
chrome://extensions或其他工具修改的状态会实时同步
搜索与筛选
- 实时搜索(150ms 防抖),按扩展名称或描述匹配
- 按状态筛选:全部 / 启用 / 禁用
- 按安装类型筛选:商店 / 开发者模式
- 按收藏筛选:已收藏 / 未收藏
- 按分组筛选:可按自定义分组过滤
- 排序:默认、名称 A-Z、名称 Z-A、启用优先、禁用优先
收藏的扩展始终排在列表最前面。
开发者扩展快捷操作
对于开发者模式安装的扩展,卡片上会额外显示重载按钮,一键执行禁用-启用循环,省去去 chrome://extensions 页面点击刷新。
自定义分组
可以为扩展创建自定义分组,每个分组有名称和颜色标识:
- 创建、编辑、删除分组
- 扩展卡片上显示分组色标
- 按分组过滤扩展
- 删除分组不会卸载扩展
批量操作模式
进入批量模式后:
- 每个卡片显示复选框
- 全选/取消全选
- 批量启用、禁用、收藏、取消收藏
- 批量卸载:逐个处理,可中途取消,完成后给出成功/失败/取消的汇总报告
扩展详情面板
点击任意扩展卡片打开详情面板:
- 完整权限列表(翻译为中文可读名称)
- 跳转到 Chrome/Edge 扩展商店页面
- 固定到工具栏的操作指引
- 卸载按钮(带确认弹窗,管理工具自身不允许卸载自己)
- 分组分配下拉框
- 备注文本框:可为扩展添加自由文本备注,持久化保存
变更检测
每次打开时截取扩展列表快照,与上次对比:
- 检测新安装的扩展
- 检测被卸载的扩展
- 检测启用/禁用状态变化(包括外部操作)
- 在顶部通知栏展示变更列表,点击查看详情
这个功能在排查”某个扩展突然不工作了”时特别有用。
操作历史
- 两个标签页:启用/禁用历史 + 卸载历史
- 每条记录显示操作类型、扩展名称、ID、相对时间
- 卸载历史额外记录该扩展曾归属的分组和备注
- 各保留最近 100 条记录
- 支持按名称或 ID 搜索
数据导入导出
- 导出为 JSON 文件:分组、备注、历史、收藏状态
- 可选择性导出(勾选需要的数据类型)
- 导入支持合并模式(与现有数据合并)和替换模式(完全覆盖)
侧边栏视图
除了 popup 弹窗,还支持浏览器的侧边栏面板:
- 列表/网格视图切换
- 网格模式显示紧凑卡片,适合扩展数量多的场景
- 详情面板并排展示,不会遮挡列表
技术实现
纯原生 JavaScript 实现,无任何框架依赖。基于 Manifest V3。
1 | // 扩展管理类核心结构 |
使用的 Chrome API:
| API | 用途 |
|---|---|
chrome.management |
获取/启用/禁用/卸载扩展 |
chrome.storage.local |
持久化所有用户数据 |
chrome.tabs |
打开扩展商店页面 |
chrome.sidePanel |
侧边栏面板支持 |
国际化
自建 i18n 模块,支持中文和英文切换。通过 data-i18n 属性声明式翻译 HTML 内容,运行时加载语言文件。
安装使用
- 浏览器打开
chrome://extensions/(Edge 为edge://extensions/) - 开启「开发者模式」
- 点击「加载已解压的扩展」,选择
ExtensionManagerExt目录 - 点击工具栏图标即可打开
设计愿景
README 中还规划了后续方向:
- 扩展性能监控(内存/CPU 占用)
- 工作模式预设(一键切换多组扩展的启用状态)
- 扩展推荐
- 跨设备同步
- 安全扫描(可疑权限、过期扩展)
目前的 v1.1.0 已实现核心管理功能,后续按需迭代。