发布

  • fix(producer): preserve window.__hf set by page scripts

    frostbyte_neo 发布于 2026-04-19 21:20:05 +00:00

    The render bridge previously overwrote window.__hf wholesale at end-of-body,
    clobbering anything written during user <script> execution. Libraries such as
    @hyperframes/shader-transitions populate window.__hf.transitions inside
    their init() call, so the engine never saw a transition map and HDR
    compositing fell back to plain DOM layers.

    Two changes restore the contract:

    1. Inject HF_EARLY_STUB at the very start of <head> so window.__hf exists
      before any other script runs. User libraries can now safely write to it
      during initialisation.
    2. HF_BRIDGE_SCRIPT now patches the existing __hf object (defining duration
      as a getter and assigning seek) instead of replacing it, preserving any
      fields the page already populated.

    Adds a regression test that simulates the real injection order — early stub,
    authored page script writing __hf.transitions, bridge script — and asserts
    both transitions and the bridge-installed seek/duration are present
    afterwards.

    Made-with: Cursor

    下载附件