必须关闭Firefox页面可见性与焦点状态上报以保障实时协作:先降级增强型跟踪保护至标准模式,再禁用dom.visibilitychange.enabled、dom.disable_window_blur_event和dom.disable_window_focus_event,最后通过visibility_state_override强制返回visible并启用use_override。

当网页通过 document.hidden、visibilityState 或 window.onblur 等 API 检测用户是否切换标签页或最小化窗口时,会触发自动暂停视频、中断 WebSocket、停止计时器等行为,干扰实时协作、监控看板、远程桌面等关键场景。必须切断 Firefox 对这些页面可见性与焦点状态的上报能力。
关闭增强型跟踪保护的后台节流干预
增强型跟踪保护(ETP)在“严格”模式下会主动注入脚本劫持 visibilitychange 和 blur 事件,即使网站未调用相关 API 也会被强制标记为隐藏。这一步是前置必要操作。
点击右上角三条横线 → “设置” → 左侧选“隐私与安全” → 找到“增强型跟踪保护” → 将保护级别从“严格”改为“标准”或“自定义”(若选自定义,请确保取消勾选“防止网站跟踪您跨站点的行为”和“阻止指纹收集脚本”)。
禁用页面可见性 API 上报
Firefox 默认向网页暴露 document.visibilityState 和 document.hidden 属性的真实值。关闭后,所有网页读取到的 visibilityState 恒为 "visible",document.hidden 恒为 false,彻底消除失焦感知依据。
在地址栏输入 about:config 并回车 → 点击“I'll be careful, I promise” → 搜索 dom.visibilitychange.enabled → 双击将其值由 true 改为 false。
该设置生效后,网页执行 console.log(document.visibilityState) 将始终输出 "visible",无法再据此暂停媒体或心跳。
屏蔽窗口焦点状态监听
网页可通过 window.addEventListener('blur', ...) 或 onblur 属性监听窗口失焦,进而触发资源释放逻辑。Firefox 提供底层开关直接禁用该事件分发链。
方法一:禁用 blur/focus 事件冒泡(推荐)
在 same:config 中搜索 dom.disable_window_blur_event → 若存在,双击设为 true;若不存在,右键 → 新建 → 布尔值 → 名称填入 dom.disable_window_blur_event → 值设为 true。
方法二:同步禁用 focus/blur 全局监听
搜索 dom.disable_window_focus_event → 同样新建或修改为 true。
【两项必须同时启用,仅关 blur 不足以阻止部分网站通过 focus 逆向推断失焦】
阻止页面通过 Page Visibility API 获取真实状态
第一步:强制重写 visibilityState 返回值
搜索 dom.visibility_state_override → 若不存在,右键新建字符串 → 名称填此值 → 值填 visible。
第二步:禁用 visibilitychange 事件触发
搜索 dom.visibilitychange.use_override → 新建布尔值 → 设为 true。
第三步:重启浏览器验证效果
关闭所有 Firefox 进程(任务管理器中确认 firefox.exe 已退出)→ 重新启动 → 访问 测试页 → 点击“切换标签页”按钮,观察控制台输出是否恒定为 visible 且无 visibilitychange 日志。











