Files
ArtPlayer/refactor/changes/2026-09-15-SITE-07-monaco-dom.md
T

52 lines
3.4 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.
# SITE-07 Monaco DOM 改编来源与通知交付
来源 HEAD:`3eb550052531094753207bdadf4b0e32687792de`。SITE-07 继续 doing,
VENDOR-06 继续 open;本次没有更改编辑器脚本、CSS、worker 或播放器运行字节。
## 已核实范围
固定 VS Code `829382514cb1065f5ebb90f436e1c6103e153953` 的 dom.ts 五处明确注明
WinJS 改编。六个完整声明块——SizeUtils、getTopLeftOffset、getTotalWidth、
getContentWidth、getContentHeight、getTotalHeight——与 Monaco 0.30.1 原始
source map 的对应内容精确相同;当前 editor.main.js 与固定 npm 归档逐字节一致。
这不是完整 DOM 模块的编译证明,也不把 reference 注释等同于特定上游版本证据。
原注释没有 WinJS 版本。本批固定 WinJS 4.4.5 提交
`4329b1133b243d9ded3b5a1f98d096ee8e80e889` 的 `_ElementUtilities.js` 和完整
Microsoft MIT 许可作比较,保留 `originalWinjsVersion: null`。参考源码与 VS Code
改编存在像素转换、CSS 属性读取、尺寸助手、边框/RTL/ShadowRoot 位置处理等差异,
没有把两套实现强行判为完全相同,也没有声称添加前必然缺少 Microsoft 的许可授权。
完整参考许可和说明作为补充交付,原 Monaco 许可及 ThirdPartyNotices 均保留。
固定远端文件同时校验 SHA-256 和 Git blob SHA;两个 npm archive 校验 SHA-512/
SHA-256。源码保存在 `baselines/site-vendor/monaco-dom/`,保留原始字节,不经
Git 自动换行转换。说明明确标注参考版本和未知原始版本,后续 AI 不应把它改写为
“Monaco 内含原版 WinJS 4.4.5”。
## 实现与维护
- `scripts/site-vendor/monaco/dom-origins.ts` 管理声明边界及来源/通知绑定;以现有
TypeScript 5.9.3 parser 识别完整顶层节点,不执行下载的 WinJS 代码。
- `reproduce-dom-origins.ts` 校验冻结来源、源码片段与原 map、交付脚本归档身份;
新增 `yarn verify:monaco-dom-origins [--fetch]`,没有新依赖或锁文件变化。
- 正常 `build:site-notices` 增加 core-dom 完整许可/说明及索引,合计 88 份 notice
加索引 89 outputs;校验器拒绝遗漏编辑器归属、条款或来源声明。
- 测试覆盖缺少/重复声明、同名字符串冒充声明、遗漏条款和错误资产归属。真实
浏览器直接调用现有 Monaco 模块,在 padding/border/margin/嵌套滚动前后检查
尺寸和原生页面位置;不是测试自造 DOM 工具的替代实现。
维护入口与复跑命令见 [Monaco README](../../scripts/site-vendor/monaco/README.md)。
## 验证与限制
Node 24.21.0、Yarn 1.22.22;30/30 单测,严格 docs-tools 类型与定向只读 lint
通过。联网/离线来源核验、正常通知生成及只读检查分别执行并记录。
Chromium 153.0.8010.12、Firefox 155.0、WebKit 26.6 的 DOM 检查和移动页面实际
播放/全部 notice HTTP/新增相对链接共 6/6,零跳过/重试;原始网络诊断保留在
[机器证据](../baselines/monaco-dom-origins-validation.json),不宣称所有请求无取消。
原始 WinJS 改编版本仍未知;Unicode 数据、其他内嵌来源、完整 core TS 编译及
SITE-07 其他范围继续开放。没有在本轮补证据时悄悄放宽这些验收条件;202/266
完成数不变。回退本批时一并撤销通知绑定/新增文件并重建索引,不触碰原编辑器
资产。未推送、部署或发布。