Skip to content

Releases: WenliangCao/lets-gpc

Let's GPC v0.1.3

Choose a tag to compare

@WenliangCao WenliangCao released this 13 Aug 10:25

What changed

  • Removed the redundant DNR URL regex so Chrome can apply the GPC header rule without per-request regex matching.
  • Cached normalized settings, merged navigation work, coalesced repeated domain-history writes, and reduced badge API calls.
  • Eliminated duplicate popup and options renders, lazily builds resource rows, reuses date formatting, and debounces domain search.
  • Cleaned up localized product copy, localized the Chrome Topics heading, and linked the privacy policy directly.
  • Replaced stale exact-size documentation with the enforced package budget.

Verification

  • 13/13 tests pass, including the real-Chrome integration suite.
  • Release package verification passes.
  • ZIP size: 46,800 bytes.
  • SHA-256: 40a43c71e099e7cac6c8b4678b1d4064b51daea5e6a90e9414471da1db754d14.

Let's GPC v0.1.2

Choose a tag to compare

@WenliangCao WenliangCao released this 11 Aug 08:08

What changed

  • Replaced the extension icon with the new Let's GPC artwork at 16, 32, 48, and 128 px.
  • Kept the package PNG-only for Chrome compatibility.
  • Applied lossless PNG optimization; the release ZIP is 47,303 B.

No runtime behavior or permissions changed.

Let's GPC v0.1.1

Choose a tag to compare

@WenliangCao WenliangCao released this 11 Aug 07:04

English

Let's GPC v0.1.1 adds complete English and Simplified Chinese presentation while keeping the request hot path unchanged.

Highlights

  • English is now the default README, with a complete Simplified Chinese README retained alongside it.
  • The extension name, description, popup, options page, dynamic statuses, errors, accessibility labels, and badge titles now use Chrome's native localization system.
  • English remains the default locale; Simplified Chinese is selected automatically when Chrome uses Chinese.
  • The project now uses Apache License 2.0, including its explicit contributor patent grant and patent-litigation termination provision.
  • The release archive carries the canonical Apache license and NOTICE.
  • Local architecture notes are no longer tracked or included in GitHub source archives.
  • Release packaging is reproducible: repeated builds from the same checkout produce the same SHA-256.

Validation

  • 13/13 tests pass on Google Chrome 151.0.7922.109.
  • Real Chrome UI assertions passed for Simplified Chinese locally and English in GitHub Actions.
  • The release contains 20 files, is 108,489 B unpacked and 45,086 B compressed, with zero runtime dependencies.
  • The performance-critical model remains one DNR rule and zero extension JavaScript per network request.

SHA-256 (lets-gpc.zip):

079db73d4f5c2e07ec9c0a57ccee22113af13b19e29742ca5a42857fde0818db

简体中文

Let's GPC v0.1.1 在不改变请求热路径的前提下,完整加入英文与简体中文支持。

主要变化

  • README 默认展示英文,同时保留完整的简体中文 README。
  • 扩展名称、描述、popup、设置页、动态状态、错误信息、无障碍标签和 badge 标题全部接入 Chrome 原生本地化机制。
  • 默认语言为英文;Chrome 使用中文时自动显示简体中文。
  • 开源协议改为 Apache License 2.0,包含明确的贡献者专利授权和专利诉讼终止条款。
  • Release 安装包包含 Apache 官方许可证原文与 NOTICE。
  • 本地架构笔记不再由 Git 追踪,也不会进入 GitHub 源码压缩包。
  • 打包过程可复现:同一 checkout 重复构建会得到相同 SHA-256。

验证

  • Google Chrome 151.0.7922.109:13/13 测试通过。
  • 本地真实 Chrome 已验证简体中文界面;GitHub Actions 真实 Chrome 已验证英文界面。
  • Release 共 20 个文件,未压缩 108,489 B,ZIP 45,086 B,运行时依赖为 0。
  • 性能关键路径保持不变:一条 DNR 规则,每个网络请求执行 0 次扩展 JavaScript。

SHA-256(lets-gpc.zip):

079db73d4f5c2e07ec9c0a57ccee22113af13b19e29742ca5a42857fde0818db

Let's GPC v0.1.0

Choose a tag to compare

@WenliangCao WenliangCao released this 11 Aug 06:17

Let's GPC 的首个公开版本。

核心功能

  • 使用单条 Chrome DNR 规则发送 Sec-GPC: 1,请求热路径不运行扩展 JavaScript。
  • 在顶层页面的 MAIN world、document_start 暴露 navigator.globalPrivacyControl。
  • 按顶层站点提供 GPC 例外,保持页面与第三方请求的信号一致。
  • 使用 Chrome 原生 Privacy API 关闭 Topics。
  • 提供本地域名历史、资源域名发现、搜索、导入、导出、清空和浅色/深色主题。
  • 仅在打开弹窗时检查当前 origin 的 /.well-known/gpc.json,不跟随重定向。

性能与隐私

  • 零运行时依赖、零遥测、零远程配置。
  • 1 条动态网络规则;每个网络请求的扩展 JavaScript 开销为 0。
  • 16 个运行文件;未压缩 78,188 B,运行时文本 64,280 B,ZIP 35,713 B。
  • 不保存完整 URL、路径、查询参数、请求头、响应头或页面内容。

验证

  • Chrome 151.0.7922.109:12/12 测试通过,0 skip。
  • Chrome for Testing 145.0.7632.117:12/12 测试通过,0 skip。
  • 覆盖主请求、跨域资源、WebSocket、Dedicated Worker、Service Worker、IPv6、localhost 子域、并发设置、站点例外、受限页面与 well-known 跨源重定向拒绝。

已知边界

Chrome MV3 无法完整模拟原生 GPC:不能向 WorkerNavigator 注入属性,不向 subframe 注入页面属性;全局关闭或站点例外时页面属性为 undefined,而非原生实现的 false。完整说明见仓库 README 与架构文档。

校验和

lets-gpc.zip SHA-256:19743656a51444aacca6efeeb693791846279ae86fa91e9d70e59ae083026573