☰
100% 本地运行零追踪:Darkument 隐私设计背后的权限策略全解读
2026/10/22 6:58:09 网站建设 项目流程

【免费下载链接】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.

项目地址:https://gitcode.com/gh_mirrors/da/Darkument
点击查看免费下载

Darkument 是一款 100% 本地运行的 PDF 暗色模式浏览器插件:点击图标即可把刺眼的白色文档一键反转为深色,全程零追踪、不收集任何数据。本文逐项拆解它的浏览器权限策略与隐私设计,帮你看懂"本地运行"四个字的真实含义。

📌适合谁看:担心插件"偷数据"的普通用户、夜间重度阅读 PDF 的学生,以及想学习 Manifest V3 权限设计思路的开发者。

30 秒看懂 Darkument:一个为"深夜阅读"而生的插件

先说结论:它不是"伪装成深色",而是做数学意义上的颜色反转。

Darkument 基于现代 Chrome 扩展规范Manifest V3构建,核心思路非常简洁:当你点击工具栏图标时,它在当前页面注入一层全屏覆盖层,利用 GPU 加速的mix-blend-mode: difference混合模式做"取反"运算——白底变黑底、黑字变白字,而中间灰色几乎不动,从而保住文字的对比度和可读性。

![Darkument 使用演示:点击工具栏插件图标,将 PDF 文档颜色反转](https://raw.gitcode.com/gh_mirrors/da/Darkument/raw/d2f4b97417f841ed7d9bfdb9e4158c58488a2078/assets/screenshots/image 1.png?utm_source=gitcode_repo_files)

![Darkument 暗色模式效果:本地 PDF 文档被一键颜色反转为深色,适合夜间阅读](https://raw.gitcode.com/gh_mirrors/da/Darkument/raw/d2f4b97417f841ed7d9bfdb9e4158c58488a2078/assets/screenshots/image 2.png?utm_source=gitcode_repo_files)

它特别适合三类场景:

  • 📄本地 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 会手把手带你完成:

  1. 打开chrome://extensions(Edge 为edge://extensions)
  2. 在列表中找到Darkument,点击"详细信息"
  3. 打开"允许访问文件 URL"(Allow access to file URLs)开关
  4. 打开任意本地 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.

项目地址:https://gitcode.com/gh_mirrors/da/Darkument
点击查看免费下载

相关推荐

上一篇:lottie-react-native核心组件LottieView全解析:props与方法详解
下一篇:如何用Qbot打造你的专属AI量化交易系统:从零到实盘的完整指南

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询