Discourse 版本
2026.1.0-latest (c7e9cddb06)
浏览器
Chrome 143.0.7499.170 (官方版本) 64 位
(cohort: 144.0.7559.59 rollout)
操作系统
Windows 11 Home
版本 10.0.26200 (Build 26200)
摘要
当启用 Chrome 硬件加速时,会出现 UI 问题:
在Discourse 日历事件块被解析后,编辑器中的文本光标变得不可见(在白色背景上显示为白色)。
禁用 Chrome 中的硬件加速后,问题会立即消失。
这表明是Chrome GPU/合成器渲染问题与 Discourse UI 元素发生交互,而不是纯粹的 CSS 回归。
观察到的问题
编辑器光标变得不可见
- 在新建主题和回复编辑器中都会发生。
- 光标显示为白色/与背景融合,使得难以或无法看到输入位置。
- 启用硬件加速时,间歇性但可重现。
值得注意的行为:
- 立即打开 Chrome 开发者工具 (DevTools) 会使光标恢复正常渲染。
- 这强烈表明是渲染/合成重计算,而不是状态或 CSS 更改。
discourse-calendar 事件块在安全模式下无法正确显示(onebox)
启用硬件加速时:
- 在
/safe-mode中,此行为会改变(意料之中,因为主题组件被禁用)。
复现步骤
- 在 Windows 11 上使用 Chrome,并启用“可用时使用图形加速”
- 打开运行
2026.1.0-latest的 Discourse 站点 - 打开编辑器并开始输入
- 观察到不可见/白色的光标
- 插入或查看 discourse-calendar 事件块
不复现/诊断
在 /safe-mode中无法复现
在隐身模式下仍然复现(与扩展无关)
未配置自定义 CSS
立即打开 Chrome 开发者工具即可修复光标问题
完全禁用 Chrome 硬件加速可解决这两个问题
路径:
Chrome → 设置 → 系统 →
[ ] 可用时使用图形加速
禁用后:
- 光标正常渲染
- 事件 onebox 行为正确
- 无法复现问题
备注/假设
这似乎是Chrome GPU/合成器交互问题,可能涉及:
- 文本输入/ProseMirror 中的光标渲染
- 重绘时序或焦点层
- 在加速合成下的 onebox 渲染/布局计算
以下事实强烈表明这是一个浏览器级别的渲染问题,而不是最近提交引入的 Discourse 回归:
- 安全模式会改变行为
- 打开开发者工具会触发即时更正
- GPU 加速完全控制了可复现性
建议的调试方法
由于打开开发者工具会改变渲染行为,可能有帮助的是:
- 使用远程开发者工具进行检查,而不是本地开发者工具
- 从初始页面加载开始就打开开发者工具进行测试
- 使用
--disable-gpu比较行为 - 查看受影响系统上的
chrome://gpu输出
在问题激活时需要检查的关键元素:
- 编辑器元素:
textarea.d-editor-input.d-editor .ProseMirror
- 计算出的光标渲染(
caret-color、合成层) - Onebox 容器重绘时序
解决方法
对于受影响的 Windows 11 用户:
禁用 Chrome 硬件加速
这完全解决了编辑器光标问题和 discourse-calendar oneboxing 行为。