Files
ElyOffice/tasks/reviews/C11.3-r2.md
T

6 lines
2.5 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
apps/ely-pdf/src/writes.rs:103、:112;apps/ely-pdf/src/editing.rs:34:文字预览只记录标签、页号和文字,确认时缺少文档版本及目标身份核验,结构编辑后仍可改写其他页。复现:打开两页均有 “Hello world / Second line” 的 PDF,在第一页改用 Times 写 “Hi world / Second line”,打开预览;经原生“删除页面”菜单删除第一页,预览继续显示;确认后,原第二页的文字被替换。expected 只比对文字,同文页面通过检查。违反 §11.1 的统一选择与状态规则及 §11.3 的预览确认契约。真实窗口另以 18pt→72pt 复验:删除原页后旧预览仍在 AX 树,确认、保存并用独立 worker 重开,剩余一页字号为 72pt。修复方向:预览绑定发起文档修订和页面/块身份,编辑请求使其失效,确认及实际执行前核验目标与队列状态。证据:/tmp/ely-c113-r2/apps/ely-pdf/src/tests/editing.rs 的 review_r2_preview_is_bound_to_document_version 失败;副本加入版本失效处理后通过,恢复原代码后再次失败;日志 /tmp/ely-c113-r2-preview.log、/tmp/ely-c113-r2-repair.log、/tmp/ely-c113-r2-restored.log;原生证据 /tmp/ely-c113-r2-native-stale-ax.log、/tmp/ely-c113-r2-native-saved.log。
apps/ely-pdf/src/writes.rs:172:图片选择器的版本守卫只检查已落地版本,允许在已有编辑进行中或排队时追加使用旧页号/对象序号的操作。复现:页面依次有表单 XObject、图片 A、图片 B;选 A 发起替换,在删除表单的操作落地之前返回方形图片。version 仍相同,替换排到删除之后;删除使 B 占据原序号 1,真实 worker 随后替换 B,A 保留。可控调度探针暂停编辑队列直到选择器回调完成,再交真实 worker 顺序执行;B 的框由 [400,100,500,150] 变成 [425,100,475,150],A 的框保持 [72,242,172,292]。同一守卫也用于添加图片,排队的页面组织操作可改变原页号含义。违反 PDF-04 和 §11.1 的目标选择规则。修复方向:选择器绑定包含待落地编辑的修订,回调和执行时核验发起页/对象身份;已有编辑进行中或排队时让旧选择器请求失效。证据:/tmp/ely-c113-r2/apps/ely-pdf/src/tests/editing.rs 的 review_r2_picker_rejects_pending_edit 失败;副本守卫加入 settled() 检查后通过,恢复原代码后再次失败;日志 /tmp/ely-c113-r2-pending.log、/tmp/ely-c113-r2-repair.log、/tmp/ely-c113-r2-restored.log。