跳转至

原生静态条目捕获与沙箱传输

响应式比较会拦截违背对照区域的输出,也会拦截违背文本的输出。整页评分通过并不能为被违背的已声明对照区域开脱。此项检查仍依赖规范单独声明该对照区域;它并不能确立区域映射完整或足够精细。

可选加入的原生 HTML 门控会冻结当前条目、允许的静态依赖、规范与已批准参考。规范与参考会经过哈希并重新验证,但绝不会提供给页面,因此页面无法展示其被评分所依据的 comp:对 comp 的请求、对 comp 或已批准审查截图的已加载字节副本、或其中任一内容的 data URI,都会拒绝捕获;图片若在声明的光栅区域之外绘制了一帧 15% 或以上的画面,也会拒绝捕获。门控在隔离的浏览器环境中捕获光栅观察数据,并在接受之前验证原始输入。保存的截图与 JSON 是审计输出,而非捕获的替代品。现有构建阶段检查保留其副本、几何、文本、存在性与保真度策略。

某些宿主沙箱无法启动 Chromium 的嵌套沙箱。capture-server <registered-project> <ready-file> 在文件系统沙箱之外提供相同的 CdpEntryRenderer,同时保持 Chromium 自身沙箱启用。宿主在 builder 启动前选择项目与确切的引擎二进制。请求无法选择不同的根目录、URL、shell 命令、可执行文件或任意技能动词。未配置传输时,常规构建阶段执行仍保持在进程内。

该服务绑定回环地址,并要求宿主生成的 IMPECCABLE_CAPTURE_CAPABILITY;客户端连同 IMPECCABLE_CAPTURE_PORT 一起读取它。服务暴露捕获、当前输入验证、释放与已保存证据审计。请求、响应、活动捕获及生命周期均设有上限。捕获保留其不可变快照;最新的 hero 与响应式快照在释放后仍然保留,供最终宿主审计使用。宿主适配器必须负责服务启动与进程组清理。

能力用于验证调用方,而不是验证来自 builder 所选端点的任意响应。使用此传输的适配器必须保留自己的服务进程与端口,在审计请求前后检查该进程,并通过该私有引用执行审计。审计将已保存的帧 PNG、观察 JSON 与输入报告同宿主持有的捕获对象进行比较,然后重新检查当前源字节。最终响应式快照是当前输入的边界;hero 合理地早于后续部分。适配器必须根据返回的清单与哈希验证导出的 HTML、资源与原生证据。宿主审计缺失或失败会使传输来源失效。不得单独将客户端响应或由工作区生成的审计文件用作合格性证据。

没有光栅区域的首个视口会作为组装页面视口被捕获,其帧不携带任何区域凭证。仅当客户冻结的规范声明没有光栅区域,且报告显示 captureMethod: assembled-page-viewport,并附有每帧覆盖证明、已知依赖策略以及排除规范与 comp 的已提供列表时,客户才接受空凭证列表。类型由规范决定,因此无凭证的光栅捕获,或针对光栅规范的纯文本声明,仍然失败关闭。光栅捕获携带相同的已提供列表与每帧覆盖证明,测量在声明的光栅区域之外进行,客户以相同方式检查它们。光栅帧必须为每个被测量的光栅区域携带一个凭证,最多 32 个,这是进程内捕获已经在执行的批次上限。审计端点检查纯文本帧的方式与光栅帧相同,其保存的观察数据为 []。

eval 适配器将 nativeCaptureTransport: host-service-v1 记录为一个独立的比较维度。它会在 builder 可写的工作区之外保留宿主审计,并在审计失败时使 worker 契约失败。该传输不引入裁判、创作指令、额外修复建议或新的通过阈值。其他可选浏览器特性(包括 font-match 文档化的目录回退)保留其现有行为。

光栅观察数据使用软件光栅化,因此即使存在 GPU 瓦片舍入,临时图像抑制也能恢复精确像素。捕获所引发的 CSS 过渡会在有界等待内自然完成;作者编写的样式与动态设置保持原样。DOM、几何、文档标识、响应标识与精确像素恢复仍然必须匹配。

生成的 ::before 与 ::after 图片背景使用原生 CDP 伪元素盒子测量。一个有界的、由检查器拥有的样式表仅抑制选定的 URL 层,同时保留渐变、其他层与盒子样式,随后清除该覆盖。计算后的抑制必须实际生效;存在覆盖性的作者规则时,测量不可用。每个 URL 仍然绑定到其已捕获的响应字节。隐藏或被覆盖的副本仅贡献它们实际绘制的像素;重复图层既会被合并测量,也会被单独测量。未解析的表面、内容图片、canvas 与阴影内容保持其显式的覆盖失败状态。

最终发布会根据当前 HTML、规范、comp 与资源重新执行原生响应式比较。因此,审查编辑无法通过记录新的完成哈希来继承早期截图通过的结论。最终比较失败会重新打开响应式比较并记录 fix;常规修复流程仍然可用。旧版捕获运行保留其已记录协议。

原生捕获同时禁用部分光栅复用与 GPU 光栅化。整个视口仍然必须恢复逐字节相同的解码像素、DOM、几何与网络标识。这避免了在部分重绘后复现 Chromium 抗锯齿差异,且无需容差或修改作者页面。凭证记录 partialRaster: false。不支持的相邻 SVG/canvas 仍然覆盖失败。

plate gate 还会拒绝携带 impeccable:crop-of 的非纹理 PNG。变换以及新嵌入的 prompt 不会抹除已记录的来源。纹理补丁仍然是一个显式例外。缺少该标记并不能证明是生成内容;评估仍会对照独立的图像生成记录来审查已发布的资产。感知相似性仍是单独的一项检查。调用方提供的元数据(包括历史 fixture 标记)无法禁用非纹理 comp-copy 检查。

在记录完成之后,状态使用共享的完成报告来区分未更改的条目、后续编辑的条目或缺失的条目。它不会重新打开阶段,也不会签署新的字节。被更改的条目会被引导回最终审查和完成阶段;依赖验证仍由原生捕获门(native capture gate)负责。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 im/impeccable