#15992·darkreader

[功能请求] 在检测到深色主题后保持动态修复功能激活("主题关闭,修复开启")

作者: k6G52m4Dz75W创建于 2026年9月11日更新于 2026年9月15日
标签enhancement

· 先决条件

此特性请求与问题有关吗 ?

QQ 特性请求描述

** 问题**

Dark Reader的黑暗主题探测器严格来说是二进制:当它完成一个站点载运自己的黑暗主题时,它进行一个完全站出("remove Dynamic Theme ()" +"CLEAN UP"),抛弃一切——包括URL相配的动态修正. 这个判决在建筑学上是正确的(一个原生的黑暗主题不应该被双译出),但它留下了一个真实的一类站点无法被平分:原生的黑暗站点,其黑暗主题本身就有一个先漆/水合bug. 这种模式常见于水合后初始化的CSS-in-JS主题上下文的SPA. 在这些地点:

  • 任何动态固定都无济于事,因为固定与站立时的主题(src/inject/index.ts'、ADD DYNAMIC-THEM'处理器)一起被撕去。 固定数据库在结构上是空的,正好是需要它的地方。
  • `NO DARK THEME'的暗示迫使"黑暗读者"继续变形——被第15959号驳回为反模式,这是正确无误的。
  • 第15959号合并的TARGET'/MATCH'提示也不能表示(见下文)。

因此,今天没有任何机制可以说:*"相信这个站点的黑暗主题,但保留所记录的固定条目来补补其破损的第一颜料".

** 具体例子:pixiv.net**

  • 内置头版脚本 html 数据主题="黑暗" 在第一次涂料之前——正确.
  • 但React主题上下文最初使有光值的样式-组件,只在水分后同步到黑暗. 用 " 插入规则 " 记录器捕获:光规则为1195 ms,暗变同构件为1352 ms.
  • 框外( " 探测DarkTheme " 默认为 " true " ),两者均为通用路径( " 运行检查() " 检查文件。 在“src/ inject/ detector.ts”中,“Dark”和“合并提示”将网站检测为黑暗和黑暗读者完全站倒——让白色窗口在每一个起暖的负载上暴露。
  • 合并后的TARGET html' +MATCH [data-them='dark]提示在行为上是不公开的:它与已经检查过的通用路径相同。 它的唯一效果是时机——探测到UsingHint()'可以在canCheckForStyle()'让runCheck()'跑出之前开火,因此站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站住站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站站 (Repro是时间上的依赖:在MV3冷起步时,服务-工人的醒悟可以将注射-检测周期推过水分窗口,这很可能是闪光在审查期间没有再生的原因. )

** 拟议解决办法**

探测器-物品.配置 ' ——KEEP FIXES ' 中的一项新的选入指令,可与TARGET'/MATCH'同时使用:

  • 在暗中检测提示网站时,内容脚本会放弃生成的主题,但保留应用的URL的动态固定条目("主题关闭,固定在"),而不是当前 . . . . . . .

内容来源: darkreader/darkreader