【免费下载链接】Darkument
A sleek, privacy-focused browser extension that brings a native dark mode experience to online documents. Built with clean UI/UX principles for Chromium and Opera browsers to reduce eye strain and improve readability.
Darkument 是一款 100% 本地运行的 PDF 暗色模式浏览器插件:点击图标即可把刺眼的白色文档一键反转为深色,全程零追踪、不收集任何数据。本文逐项拆解它的浏览器权限策略与隐私设计,帮你看懂"本地运行"四个字的真实含义。
📌适合谁看:担心插件"偷数据"的普通用户、夜间重度阅读 PDF 的学生,以及想学习 Manifest V3 权限设计思路的开发者。
30 秒看懂 Darkument:一个为"深夜阅读"而生的插件
先说结论:它不是"伪装成深色",而是做数学意义上的颜色反转。
Darkument 基于现代 Chrome 扩展规范Manifest V3构建,核心思路非常简洁:当你点击工具栏图标时,它在当前页面注入一层全屏覆盖层,利用 GPU 加速的mix-blend-mode: difference混合模式做"取反"运算——白底变黑底、黑字变白字,而中间灰色几乎不动,从而保住文字的对比度和可读性。


它特别适合三类场景:
- 📄本地 PDF:通过
file://协议打开的论文、教材(需开启一次本地文件权限,见下文) - 🌐网页文档:在线文档、参考资料等浅色背景页面
- 💤深夜学习:把"白炽灯"一样的屏幕变成温和的暗色调,缓解眼疲劳
架构细节可以在 ARCHITECTURE.md 和 docs/NoteForTesters.txt 中进一步阅读。
零追踪设计:数据从头到尾不离开浏览器
隐私承诺不能只看宣传,要看它"技术上能不能做到"。Darkument 的 PRIVACY.md 给出了三条硬承诺,每一条都有对应的技术实现支撑:
| 隐私承诺 | 技术实现方式 |
|---|---|
| 🔒 不收集个人数据 | 代码中不存在任何数据采集、上报逻辑,不碰姓名、邮箱、IP 或位置 |
| 🔒 不记录浏览历史 | 未申请history权限,插件不知道你打开了什么网站 |
| 🔒 无远程分析与遥测 | 无 tracker、无 analytics 脚本,也不加载任何远程代码 |
其中最后一条尤其值得注意:根据商店上架声明(见 store_listing.md 的 Remote Code 说明),所有脚本、样式和资源都打包在插件内部,运行时不加载任何外部代码。没有远程代码,就意味着插件无法在"更新"时悄悄改变自己的行为——这是判断一个插件是否可信的重要信号。
权限策略全解读:逐项拆解它申请的每一个权限
权限是浏览器扩展的"身份证"。一个插件申请了什么权限,就暴露了它有可能做什么。下面对照 src/manifest.json 中的声明,逐项解读 Darkument 的权限策略。
1️⃣scripting:注入颜色反转图层
这是暗色模式的"执行手"。只有在你主动点击图标的瞬间,它才通过chrome.scripting.executeScript向当前标签页注入一个反转覆盖层(相关逻辑见 src/background.js)。不点击、不注入、不读取页面内容。
2️⃣activeTab:只在你点击的那一刻"看见"当前页
activeTab是一种温和的权限:插件平时什么都看不到,只有在用户显式点击图标后,才临时获得对"当前"这个标签页的访问权,而且仅限于视口操作。它没有申请更激进的tabs内容读取或<all_urls>常驻访问,这是"最小权限原则"的直接体现。
3️⃣notifications:只用于本地提醒
通知权限用在两个场景(见 src/background.js):
- 新安装后提醒你去开启"允许访问文件 URL"(附带操作指引按钮)
- 确认本地文件权限已开启、插件就绪
所有通知内容都是本地生成、本地显示,不含任何个人数据。
4️⃣ 标签页状态:只为同步那个"ON"徽章
插件需要知道标签页的刷新与关闭,好同步工具栏图标的 ON/OFF 状态(src/background.js)。注意它只消费生命周期事件(打开、关闭、加载完成),并不记录访问了哪些 URL,更谈不上"行为画像"。
5️⃣ 本地文件访问file://:唯一的"手动开关"权限
这是整套设计中最值得展开的一项:
- 插件默认无权读取本地文件,即使声明了
host_permissions,浏览器仍要求你手动到扩展设置页打开"Allow access to file URLs"开关 - 安装后,插件会每 2 秒轮询一次
chrome.extension.isAllowedFileSchemeAccess检查结果(src/background.js),一旦你开启,立刻弹出"就绪"通知并停止轮询 - 开启后,它也只是在你点击图标时向
file://文档注入同一个反转图层,绝不会把文件内容传走——因为它压根没有任何网络上报代码
💡一句话总结权限策略:每一项权限都精确服务于"点击图标 → 本地颜色反转"这一个动作,没有一项为数据采集服务。
一个容易被忽视的隐私细节:它甚至不"记住"你
很多插件会申请storage权限来持久化偏好。Darkument 故意不这么做——它在 src/background.js 中用一个内存 Map按标签页记录开关状态(volatile state,易失状态):
- ✅ 在 A 标签页开暗色,不影响 B 标签页(各管各的)
- ✅ 关闭标签页,对应状态立即清除(src/background.js)
- ✅ 关闭浏览器后,所有状态彻底消失——它连"你喜欢在深夜读 PDF"这件事都不留底
零持久化 = 零可被提取的阅读画像,这是"100% 本地"最朴素也最彻底的实现。
新手实操:如何开启本地 PDF 暗色模式(4 步 + 1 项隐私自检)
如果你主要用 Darkument 读本地 PDF,安装后只需做一次配置,插件自带的引导页 src/pages/thankyou.html 会手把手带你完成:
- 打开
chrome://extensions(Edge 为edge://extensions) - 在列表中找到Darkument,点击"详细信息"
- 打开"允许访问文件 URL"(Allow access to file URLs)开关
- 打开任意本地 PDF,点击工具栏图标 —— 页面即刻反转为深色 ✅
开启权限后,插件会弹出 "[SUCCESS] Darkument Ready!" 通知确认就绪(引导流程见 src/background.js)。
🔍 附加:60 秒"零追踪"自检
想验证它是否真的零追踪?做一个小实验:
- 按
F12打开开发者工具,切到Network(网络)面板 - 点击 Darkument 图标开关暗色模式
- 你会看到:没有任何发往外部域名的请求
再对照 src/manifest.json 检查权限列表——没有storage、没有history、没有远程脚本。这就是"本地运行零追踪"可被亲手验证的证据链。
常见问题 FAQ
Q:它会记录我打开过哪些文档吗?不会。插件只处理"当前激活标签页"的视觉反转,不保存任何 URL、文件名或内容(PRIVACY.md 第 2 节)。
Q:重装浏览器后我的设置还在吗?不在,也不需要。状态只存在于本次会话内存中,重启即清空——这是设计目标而非缺陷。
Q:它能读我的本地文件并上传吗?不能。代码中没有网络上报逻辑,也没有远程代码通道;file://权限仅用于向本地文档注入颜色反转图层。
Q:它支持哪些浏览器?基于 Manifest V3,适用于 Chrome、Edge、Opera 等 Chromium 内核浏览器(README.md 提供安装说明)。
总结:隐私优先插件的权限设计清单
| 设计决策 | 带来的隐私收益 |
|---|---|
仅申请scripting+activeTab | 平时"看不见"任何页面,点击才临时生效 |
无storage权限,内存态管理 | 不持久化任何阅读习惯,重启即遗忘 |
| 无远程代码 | 行为完全本地可审计,无法借"更新"改变 |
file://需用户手动授权 | 敏感权限由用户掌控,而非默认放行 |
| 通知仅用于本地引导 | 提醒不越界,不夹带任何数据 |
对新手来说,这套权限策略提供了一个可复用的判断模板:装任何扩展前,先看它申请了什么权限、每一项服务于哪个可见功能、有没有持久化存储。Darkument 的答案是——每项权限都指向同一个动作:把刺眼的白,变成温柔的暗。🌙
【免费下载链接】Darkument
A sleek, privacy-focused browser extension that brings a native dark mode experience to online documents. Built with clean UI/UX principles for Chromium and Opera browsers to reduce eye strain and improve readability.
相关推荐
StemKit 隐私设计拆解:100% 本地运行 + 匿名安装的 Cloudflare Worker 遥测方案
StemKit 隐私设计拆解:100% 本地运行 + 匿名安装的 Cloudflare Worker 遥测方案 StemKit 是一款把任意 YouTube 歌
VidBee 本地转写管线深度剖析:进程隔离、说话人分离与 10 分钟分块全局重聚类
VidBee 本地转写管线深度剖析:进程隔离、说话人分离与 10 分钟分块全局重聚类 VidBee 是一个开源桌面应用,核心能力之一是把下载好的视频在本地转成可
桌面应用AI 应用语音为什么Mouzi坚持100%本地处理?隐私优先与零遥测设计全解析
为什么Mouzi坚持100%本地处理?隐私优先与零遥测设计全解析 Mouzi 是一款免费的隐私优先文件整理工具,它常驻系统托盘,自动整理你的 Downloads
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考