豫言 / 豫言操作系统网页事件浏览器适配 @ 0.2.0
以浏览器统一事件队列实现豫言操作系统网页事件接口。
说明.汉语.md
# 浏览器网页事件适配
`事件。豫` 实现[网页事件接口](../../../豫言操作系统接口/网页事件/规范.汉语.md),把浏览器宿主 `宿主.mjs` 里的统一事件队列与界面订阅器收束为六个中文函数。应用只见 JSON 文字与整数订阅号,不见原生 DOM 事件对象或句柄。`实现接口。豫` 固定公共包身份与版本,接口检查器须在构建前核对六项签名。
**宿主原语**(均在 `宿主/浏览器/宿主.mjs`,失败以(阴,错误文)返回,再由本适配转成豫言事故,不让 JS 异常越过 Wasm):`豫言_浏览器_等待网页事件`、`豫言_浏览器_订阅界面事件`、`豫言_浏览器_取消订阅界面事件`、`豫言_浏览器_事件丢弃数`、`豫言_浏览器_事件类型丢弃数`、`豫言_浏览器_设置事件队列上限`。
**0.2.0**:订阅策略新增 `选择器`(宿主在原生回调里用 `closest` 做委托匹配,无匹配则既不投递也不执行阻止默认等动作)、`带属性`、`带矩形`,适配层无需改动——策略本来就是 JSON 文字,由宿主 `创建界面订阅器` 校验;只有接口版本与包版本随接口升到 0.2.0。
**为什么宿主 JS 要改**:键规则、阻止默认与停止传播必须在原生事件回调里同步完成,豫言只能事后处理;统一事件队列(按类型取事件、每类型背压与丢弃计数、合并)与事件委托也必须由宿主在事件到达时完成。这些逻辑写成三个可独立测试的工厂函数(`创建事件队列`、`创建界面订阅器`、`创建页面控制`),`创建浏览器宿主` 只负责把它们接到豫言原语上;`宿主.mjs` 是构建器固定复制的文件之一,新增逻辑不需要新增外壳文件。
**队列约束**:`宿主` 类型(低层宿主库的原始事件)满时拒新事件并报错,其余类型满时丢弃该类型最旧事件;`创建浏览器宿主({队列上限:{界面:2048}})` 可在启动时传入初始上限;宿主对象另有 `状态()`(积压、丢弃、句柄数、订阅数),供测试与诊断,业务不得依赖。
**运行要求**:等待类函数挂起豫言栈,浏览器须支持 JSPI(`WebAssembly.Suspending`)。**验收**:`一致性验证/` 里有探针应用、宿主单元测试(JSDOM,不含 Wasm)和 JSDOM+真实 Wasm 的一致性测试,说明见其中的 `说明.汉语.md`;键规则时序、dialog Esc、输入法组字、焦点细节等 JSDOM 不能覆盖的行为须在真实浏览器验收,清单见该说明。
说明.文言.md
# 浏览器网页事件适配
`事件。豫` 承[网页事件之约](../../../豫言操作系统接口/网页事件/规范.文言.md),以浏览器宿主 `宿主.mjs` 中之统一事列与界面订阅器,出六项中文公术。客惟见癸象文与整数订阅号,不得原生事对象或柄。`实现接口。豫` 固其包籍与版本;构前当核六术之签名。
**宿主之术**(皆在 `宿主/浏览器/宿主.mjs`,败则返(阴,错文),再由此适配化为豫言事故,不使 JS 之异常越 Wasm 之界):`豫言_浏览器_等待网页事件`、`豫言_浏览器_订阅界面事件`、`豫言_浏览器_取消订阅界面事件`、`豫言_浏览器_事件丢弃数`、`豫言_浏览器_事件类型丢弃数`、`豫言_浏览器_设置事件队列上限`。
**宿主 JS 何以必改**:键之律、止默认、止传播须于原生事回调中同步而成,豫言惟能事后处之;统一事列(依类取事、每类之背压与弃数、并合)与事之委托,亦须宿主于事至时即成。此诸逻辑写为三可独测之厂函(`创建事件队列`、`创建界面订阅器`、`创建页面控制`),`创建浏览器宿主` 惟接其于豫言之术;`宿主.mjs` 乃构建器固定所抄之一,增逻辑不必增外壳之文。
**列之约**:「宿主」类(低层宿主库之原始事)满则拒新事而报错,余类满则弃该类最旧之事;`创建浏览器宿主({队列上限:{界面:2048}})` 可于启动时传初限;宿主对象另有 `状态()`(积压、弃数、柄数、订阅数),供测试与察,业务不得倚之。
**运行之要**:候事诸术悬豫言之栈,浏览器须支 JSPI(`WebAssembly.Suspending`)。**验收**:`一致性验证/` 有探针客、宿主单元测试(JSDOM,不含 Wasm)与 JSDOM 加真 Wasm 之一致性测试,说明见其中之 `说明.文言.md`;键律之时序、dialog 之 Esc、输入法组字、焦点之细节等 JSDOM 所不能盖者,须于真浏览器验之,清单见该说明。
**零点二点零**:订阅策略增“选择器”(宿主于原生回调中以 closest 行委托之合,无合者则既不投递,亦不行止默认等作)、“带属性”、“带矩形”,适配层无须改——策略本为癸象文,由宿主 `创建界面订阅器` 验之;惟接口之版与包之版随接口升至零点二点零。