Phase 2c: ResizeObserver-Shim verbessern — Callback-Unterstützung (E5 fix) #43
Labels
No labels
bug
docs
feature
housekeeping
html-spec
performance
react-compat
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
glow-all/true-headless-browser#43
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problembeschreibung
Test E5 ("ResizeObserver — wird im useEffect erstellt") schlägt fehl. Der aktuelle ResizeObserver-Shim in
src/observers/ist ein reines noop — er erstellt sich selbst, feuert aber nie Callbacks. React-Komponenten dieuseEffectmit ResizeObserver verwenden, erwarten dass der Observer tatsächlich callback-basiert arbeitet.Ursache
Aktueller ResizeObserver (vereinfacht):
React erwartet dass
observe()initial einen Callback mitcontentRectfeuert, ähnlich wie ein realer Browser. Ohne das bleibt die Komponente im "loading"-Zustand.Lösungsansätze
Option A: Timer-basierter Shim (empfohlen)
ResizeObserver feuert Callbacks asynchron via requestAnimationFrame (oder setTimeout als Fallback):
Option B: Manuelles Trigger-System
ResizeObserver feuert nur bei explizitem
page.triggerResize()— besser für deterministische Tests.Akzeptanzkriterien
Betroffene Dateien
src/observers/resize-observer.ts(oder equivalent)tests/interaction/react-comprehensive.test.ts(E5)tests/unit/observers.test.ts(neue Tests)Cross-Referenzen
Superseded by Phase 1 (Quick API Fixes) im neuen Action Plan. ResizeObserver wird zusammen mit anderen API-Fixes angegangen.