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

火狐安全模式除禁用扩展主题外还修改哪些设置?附cdk虚拟滚动异常问题

Firefox 88+ 虚拟滚动组件异常相关说明

问题表现

  • Firefox 88及以上版本(Linux、Windows系统)使用Angular Material的cdk-virtual-scroll-viewport组件时,滚动条存在异常,Chrome浏览器无该问题
  • 异常具体表现为:滚动条跳变、停留在光标上方/下方、完全无法移动
  • 可在火狐浏览器打开Angular Material官方虚拟滚动示例页复现该问题,仅最后一个无模板缓存的虚拟滚动示例运行正常
  • 同类组件库ngx-datatable也存在相同异常表现
  • 调试发现开启火狐安全模式后异常消失,手动禁用所有扩展、附加组件、插件、主题后异常仍存在

火狐安全模式额外修改的浏览器设置

除了禁用主题、扩展、附加组件之外,火狐安全模式还会修改以下核心设置,这些调整都可能导致滚动异常问题消失:

  • 禁用硬件加速:安全模式会关闭GPU渲染通道,回退到纯软件渲染模式。这类虚拟滚动组件的滚动位置计算依赖浏览器渲染层返回的元素坐标值,硬件加速开启时火狐的异步滚动(APZ)坐标同步逻辑和Chrome存在差异,容易导致虚拟滚动计算的偏移量出错
  • 重置所有自定义偏好配置:安全模式会恢复所有about:config参数的默认值,其中和滚动相关的general.smoothScroll、apz.*系列(异步平移/缩放相关)、滚动条样式相关配置都会被重置,部分用户自定义的配置项可能干扰虚拟滚动的位置计算逻辑
  • 禁用用户自定义样式表:安全模式会关闭用户自定义的userChrome.css、userContent.css全局样式,如果有自定义滚动条样式、全局元素尺寸修改规则,也会影响虚拟滚动容器的高度、滚动偏移量计算
  • 关闭JavaScript JIT即时编译优化:安全模式下会禁用JS的JIT编译优化,部分场景下JIT对数值计算的优化可能导致虚拟滚动的偏移量计算出现精度误差
  • 禁用内容进程缓存:安全模式会清空并关闭页面渲染缓存、元素节点缓存,和观察到的「无模板缓存的虚拟滚动示例运行正常」的现象吻合,缓存的元素尺寸值和实际渲染值不一致是该类异常的核心诱因

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:57:02