Files
ElyOffice/tasks/reviews/C11.7-r3.md
T

8 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL
crates/ely-pdf-engine/shim/ely_sign.c:309;crates/ely-pdf-engine/src/bin/ely-pdf-worker/sign.rs:106 — 另存为成功后,验证列表读取新文件,后续签名却仍从含原签名的内存文档生成快照,违反 PDF-12、QA-15。复现:打开含 Signature1 的已签 PDF,另存为 copy.pdf;独立读取 copy.pdf 确认该字段为空。随后在新位置用证书签名,输出竟同时含 Signature1 和 Signature2,前者报告 Intact、later=true;对 copy.pdf 已清空的原字段签名则报 `field 7 is signed already`。应用探针实际走 write_as、write_signed,输出 `signed_fields=[("Signature1", Some((Intact, true))), ("Signature2", Some((Intact, false)))]`;原字段探针输出 `disk_empty=true, current_memory_signed=1`。修复方向:在保存提交成功后,让后续签名使用与当前文件一致的快照和字段状态,保留保存失败及撤销重做的正确语义;增加另存为后原字段重签、新字段签名的回归。证据:`/tmp/ely-c117-r3-probes.log`。
apps/ely-pdf/src/sign.rs:50 — 验证结果只按路径缓存,文件字节变化后再次打开签名对话框持续使用旧摘要结果,违反 PDF-12、QA-15。复现:核验已签 PDF 得到 Intact,关闭对话框;外部程序在同一路径把正文 Hello 的首字节改为 J,再打开签名对话框。应用仍显示签名后未改动,独立 worker 重开同一文件已报告 Changed。应用探针输出 `displayed=Intact, disk=Changed`,一致性断言失败。修复方向:将缓存绑定实际文件版本,使文件变化后的重新打开触发核验;增加同路径文件被修改后的验证回归。证据:`/tmp/ely-c117-r3-probes.log`。
crates/ely-pdf-engine/shim/ely_pages.c:424;crates/ely-pdf-engine/src/bin/ely-pdf-worker/main.rs:304 — 快照写入失败后 MuPDF 的操作与历史状态未恢复,后续真实编辑返回原历史标记,撤销失效。复现:打开已签 PDF,在标签工作目录创建名为 save.pdf.raw 的目录,执行另存为使内核导出失败;移除该目录后旋转页面。应用页面尺寸已变为 792×612,视图却为 `mark=0, saved=0, modified=false`。独立 worker 对不存在的父目录 SAVE 失败后也复现:旋转返回 `Ok("0")`,随后保存成功,撤销报 `nothing to undo`;对照组旋转返回 `Ok("1")` 且撤销成功。原签名保留的上一轮修复已通过,此失败路径仍破坏后续编辑与撤销契约。修复方向:确保快照异常退出时恢复 MuPDF operation/journal 状态,让后续编辑独立进入历史;增加导出失败后继续编辑、保存、撤销的回归。证据:`/tmp/ely-c117-r3-probes.log`、`/tmp/ely-c117-r3-worker-probes.log`。