Files

50 lines
2.1 KiB
Markdown
Raw Permalink Normal View History

2026-05-21 05:40:06 +08:00
# Checklist: Office Chinese Docx Upload Open Freeze
## 目标
上传并打开中文文件名 docx 时,浏览器不应卡死;Office 打开失败时必须是可见、非阻塞错误。
指定测试文件:
`/home/lix/Downloads/重庆发展特殊化妆品可行性报告_政府汇报版.docx`
## 允许修改
- `rust/crates/mnote-web/src/routes/local_folder_source.rs`
- `rust/crates/mnote-web/src/routes/onlyoffice.rs`
- `rust/crates/mnote-web/src/ssr/pages/layout.rs`
- 相关 browser smoke
## 禁止事项
- 不引入新外部服务。
- 不把 docx 只做下载兜底。
- 不清理用户真实下载文件。
## 待办
- [x] 用真实中文 docx 复现上传、插入附件、点击打开、OnlyOffice iframe 内错误。
- [x] 记录 console/network/iframe src/页面响应性。
- [x] 区分 DocumentServer `errorCode=-18` 与浏览器主页面卡死。
- [x] 上传完成后不得等待非关键 Office 初始化;上传链路必须释放 UI。
- [x] 对中文文件名/URL 编码和 OnlyOffice document key 安全化补测试。
- [x] 增加 Reasonix clean browser 测试流程,并用截图交叉验证。
## 验收命令
```bash
cd /mnt/Data1T/mnote/rust
cargo test -p mnote-web -- --test-threads=1
node scripts/task463-onlyoffice-resolver-smoke.js
```
## 验证记录
- `cargo test -p mnote-web onlyoffice -- --test-threads=1`12 passed。
- `cargo test -p mnote-web -- --test-threads=1`482 passed。
- Reasonix clean browser 测试输出:`/mnt/Data1T/mnote/tmp/reasonix-office-upload-open-clean-2026-05-21/result.json`,结论 `pass`
- Reasonix 最终截图:`/mnt/Data1T/mnote/tmp/reasonix-office-upload-open-clean-2026-05-21/04-final-state.png`,可见 OnlyOffice 文档正文。
- Codex 自测输出:`/mnt/Data1T/mnote/tmp/codex-office-upload-open-clean-2026-05-21/result.json`
- Codex 最终截图:`/mnt/Data1T/mnote/tmp/codex-office-upload-open-clean-2026-05-21/codex-office-final.png`,可见 OnlyOffice 文档正文。
- 已确认 WebSocket URL 使用安全 doc key,例如 `mnote_1258170954_1240121036`,不含 `/``:` 或中文字符;未出现 `errorCode=-18`