You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome 93及以上版本忽略SQLite触发器 无法阻止历史记录保存怎么办

失效原因

Chromium v93版本对历史记录数据库的逻辑做了两处关键调整,导致原有触发器失效:

  • 启动时会自动校验History数据库的表结构、触发器是否为默认配置,一旦检测到自定义修改,会直接重建数据库覆盖你的触发器
  • 优化后的历史记录批量写入逻辑绕过了单条INSERT触发器的触发时机,就算触发器没被删除也不会生效

可行解决方案

方案1:修改触发器+锁定数据库(兼容原有实现思路)

操作步骤:

  1. 完全关闭所有Chromium/Chrome进程,包括后台驻留的进程,避免数据库被占用
  2. 打开用户配置目录下的History数据库所在路径,删除同目录下的History-journal、History-wal临时文件
  3. 用sqlite3打开History文件,执行以下语句,给所有和历史记录相关的表都添加拦截触发器:
CREATE TRIGGER IF NOT EXISTS no_urls BEFORE INSERT ON urls FOR EACH ROW BEGIN SELECT RAISE(ABORT, ''); END;
CREATE TRIGGER IF NOT EXISTS no_visits BEFORE INSERT ON visits FOR EACH ROW BEGIN SELECT RAISE(ABORT, ''); END;
CREATE TRIGGER IF NOT EXISTS no_segment_usage BEFORE INSERT ON segment_usage FOR EACH ROW BEGIN SELECT RAISE(ABORT, ''); END;
  1. 修改History文件的权限为只读,阻止Chromium启动时修改数据库结构删除触发器:
    • Linux/macOS:终端执行 chmod 444 History
    • Windows:右键点击History文件,勾选「只读」属性后保存
  2. 重启Chromium即可生效,若出现启动提示历史记录损坏的情况,建议更换为方案2

方案2:配置浏览器内置策略(版本兼容性最好,不会随升级失效)

直接通过Chromium官方支持的管理策略禁用历史记录保存功能,比修改数据库更稳定:

  1. 根据你的操作系统创建对应策略配置文件:
    • Linux:在/etc/opt/chromium/policies/managed/目录下新建disable_history.json文件
    • macOS:在/Library/Application Support/Google/Chrome/policies/managed/目录下新建对应配置文件
    • Windows:打开注册表编辑器,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome,新建DWORD值HistoryEnabled,赋值为0
  2. 非Windows系统的配置文件内容为:
{
  "HistoryEnabled": false
}
  1. 重启浏览器后,历史记录功能会被全局禁用,不会产生任何保存行为

方案3:启用自动清除历史记录设置(无需修改系统配置)

如果你不想修改数据库或者系统策略,可以直接用浏览器自带的自动清除功能:
打开Chromium设置 -> 隐私和安全 -> 清除浏览数据 -> 切换到「高级」标签,勾选「浏览历史记录」,再进入「退出浏览器时自动清除数据」页面,打开对应开关即可,每次关闭浏览器时所有历史记录都会被自动清除。

内容的提问来源于stack exchange,提问作者Azevedo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:30:01