Chrome 93+ 忽略 SQLite 触发器
Chrome 93+ ignoring SQLite Triggers
自从我将 Chromium 从版本 v91 更新到 v93 后,它不再遵循我在用户配置文件的 history
(这是一个 sqlite3 文件)中创建的以下触发器:
CREATE TRIGGER IF NOT EXISTS no_urls BEFORE INSERT ON urls FOR EACH ROW BEGIN SELECT RAISE(ABORT, ''); END;
此触发器过去工作正常,可防止 Chrome 在我的个人资料中保存任何历史记录。
现在,自 v93 以来,它以某种方式绕过了触发器并继续存储 url(历史记录)。
是否有技巧可以让 Chrome 遵守该触发器而不保存历史记录?
我相当确定答案是:你不能这样做。
从最近的签到到 source code to Chromium:
// The use of triggers is discouraged for Chrome code. Thanks to this
// configuration change, triggers are not executed. CREATE TRIGGER and DROP
// TRIGGER still succeed.
err = sqlite3_db_config(db_, SQLITE_DBCONFIG_ENABLE_TRIGGER, 0, nullptr);
他们似乎明确禁用了 SQLite 触发器功能,没有围绕它的选项或配置。
除了说服他们改变这种行为或创建自定义构建之外,我看不出有任何解决方法。
自从我将 Chromium 从版本 v91 更新到 v93 后,它不再遵循我在用户配置文件的 history
(这是一个 sqlite3 文件)中创建的以下触发器:
CREATE TRIGGER IF NOT EXISTS no_urls BEFORE INSERT ON urls FOR EACH ROW BEGIN SELECT RAISE(ABORT, ''); END;
此触发器过去工作正常,可防止 Chrome 在我的个人资料中保存任何历史记录。
现在,自 v93 以来,它以某种方式绕过了触发器并继续存储 url(历史记录)。
是否有技巧可以让 Chrome 遵守该触发器而不保存历史记录?
我相当确定答案是:你不能这样做。
从最近的签到到 source code to Chromium:
// The use of triggers is discouraged for Chrome code. Thanks to this
// configuration change, triggers are not executed. CREATE TRIGGER and DROP
// TRIGGER still succeed.
err = sqlite3_db_config(db_, SQLITE_DBCONFIG_ENABLE_TRIGGER, 0, nullptr);
他们似乎明确禁用了 SQLite 触发器功能,没有围绕它的选项或配置。
除了说服他们改变这种行为或创建自定义构建之外,我看不出有任何解决方法。