WebGL 软件渲染、能力回退与隐私
WebGL 软件渲染回退、能力检查、性能观察与隐私边界的实用说明,并介绍 BotBrowser 可验证的范围。
BotBrowser Team
WebGL 并不要求应用知道物理 GPU。页面可以先检查所需上下文是否可用,尝试受支持的操作,并在失败时提供可用的替代方案。使用软件渲染器时,页面仍可能正常工作,但吞吐、内存压力和实际限制会不同。BotBrowser 可以在声明的 profile 和渲染模式下重复这一授权流程,但不能保证所有主机具有相同能力,也不能证明隐私属性。
从可见任务开始
先定义结果:地图仍可导航、商品视图仍有控件、报告仍可阅读。Khronos WebGL 规范定义 API 契约,MDN WebGL API 参考说明浏览器层面的可用性。它们都不保证所有主机具有相同性能或限制。
将空上下文、缺失扩展或着色器失败作为产品分支,而不是收集渲染器名称、驱动字符串或完整设备清单的理由。
软件渲染是路径,不是隐私结论
硬件加速不可用时,软件后端可能仍能运行受支持的场景,但启动会更慢。把可见结果(图表可读且可交互)与性能观察(首帧更慢)分开。比较硬件和软件路径时保持浏览器、profile、viewport 和 fixture 不变。结果只适用于声明的主机、模式和页面。
处理上下文丢失
监听 webglcontextlost 与 webglcontextrestored,重新创建资源,并把任务状态存放在 GPU 资源之外。恢复失败时切换到可读 DOM、Canvas 2D、静态预览或无图形模式。回退必须支持键盘、具有足够对比度,也不应显示主机私有诊断。
最小化隐私数据
能力决策通常只需要结果和应用状态。除非经过单独审查,不要保存 renderer 字符串、完整限制、着色器输出或持久哈希。能力检查也不能证明匿名、安全或没有跟踪。可参考WebGL 能力与隐私和 WebGL 指纹。
BotBrowser 的边界
BotBrowser 可以在声明的 profile、浏览器版本、主机和渲染模式下重复授权的 WebGL 流程,其 WebGL 配置可用于比较软件路径与已接受基线。但它不能保证每个 GPU、驱动或 Linux 镜像具有相同能力或像素,也不能证明隐私或匿名。参阅 BotBrowser WebGL 文档。
记录测试版本、浏览器/profile、主机、所需操作、回退、可访问结果、性能观察、负责人和复查日期。浏览器大版本、profile、主机镜像或图形库变化后重新运行基线。