Parent realm
Tracker instance #1
new Tracker(...)
tracker.on(...)
Vanilla · same-origin document boundary
A parent-owned Vanilla Tracker can operate entirely in a loaded same-origin iframe document. The JavaScript object and its event subscription stay in this parent page; every active DOM identity belongs consistently to the current child document realm.
Parent realm
new Tracker(...)
tracker.on(...)
Current child realm
sourceRoot · scrollRoot · renderHost
Queries, geometry, observers, rendered DOM, scrolling, and Tracker CSS
A mounted runtime cannot mix DOM identities from different realms. Its sourceRoot, scrollRoot, and renderHost all belong to the currently loaded child document.
| Role | Current identity | Responsibility |
|---|---|---|
| Tracker object | Public API and event-subscription ownership | |
sourceRoot |
Rule query and default mutation-observation scope | |
scrollRoot |
Window geometry and built-in navigation | |
renderHost |
Destination for Tracker-rendered DOM | |
| Tracker stylesheet | Component styling inside the iframe boundary |
Same-origin requirement: parent-side access to the child Document and Window requires a loaded same-origin iframe.
Parent CSS does not cross the iframe boundary. Because the rail is rendered into the child document, the public Tracker stylesheet is imported by the child bundle.
Navigation unmounts the reusable Tracker before replacing the child document, then mounts the same object after the new document loads.
These records describe application and iframe lifecycle actions, not Tracker runtime events.
Waiting for Child document #1 to load.
Activate a marker inside the child rail to inspect its parent-side reaction.
Activating a lower marker changes the child Window scroll position while the parent page remains still. Adding a target mutates the same-origin child DOM and lets the child-owned observer synchronize its rail.