Expand description
JS ⇄ レンダラの DOM ブリッジ。
dom::parse_html の結果を ドキュメント順 にフラット化した軽量アリーナを持ち、
JS から document.getElementById 等で参照されるノードと、textContent /
style / classList の変更、addEventListener('click') で登録されたリスナを保持する。
レンダラは毎レイアウトで last_html を再パースするため、ブリッジは
「同一 HTML を同一ドキュメント順で歩けばインデックスが一致する」性質を使い、
apply_overrides で再パース木へ JS の変更を焼き戻してから CSS カスケードに渡す。
これにより既存のレンダリング経路をそのまま再利用できる(HTML 再シリアライズ不要)。
Structs§
- DomBridge
- DOM ブリッジ本体。
JsRuntimeがRc<RefCell<>>で保持し、レンダラと共有する。 - DomNode
- ブリッジ上の 1 ノード。要素またはテキスト。
- Intersection
Observer Reg - IntersectionObserver の登録エントリ
- Listener
- click 等のイベントリスナ登録。
- MutObs
Reg - MutationObserver の登録エントリ。
- MutRec
- MutationObserver に届けるレコード(Rust 側内部表現)。
- Observed
Resize Target - ResizeObserver の監視対象要素
- Observed
Target - IntersectionObserver の監視対象要素
- Resize
Observer Reg - ResizeObserver の登録エントリ
- Validity
Flags ValidityState(HTML5 制約検証)の個別フラグ。以前はelement.validityがvalid/valueMissing/customErrorの3つしか公開せず、input.validity. patternMismatch/.typeMismatch/.rangeOverflow等、特定の制約だけを狙い撃ちして カスタムエラーメッセージを出し分ける定番パターンが常にundefined(falsy)に なっていた。
Enums§
- CeEvent
- カスタム要素の反応の契機。
Functions§
- css_
prop_ 🔒from_ camel backgroundColor→background-color。既にケバブならそのまま。- html_
escape_ 🔒attr outerHTML直列化用の最小限の HTML エスケープ(属性値。"も escape する)。- html_
escape_ 🔒text outerHTML直列化用の最小限の HTML エスケープ(テキストノード本文)。- is_
listener_ 🔒aborted - is_
signal_ aborted AbortSignalオブジェクトの.abortedがtrueか。- parse_
inline_ 🔒style color: red; font-size: 12px→ マップ。- serialize_
inline_ 🔒style - strip_
style_ 🔒priority - 生の宣言値末尾の
!important(大小文字・空白ゆれ許容)を切り離す。(値本体, important か)を返す。CSS カスケード側(css.rs)の!importantパーサとは別実装だが、element.style.getPropertyValue/.getPropertyPriority(丸ごと未対応だった。2026-07-16 発見)専用の 軽量版。