[Webkit-unassigned] [Bug 131007] Web Replay: make uses of localStorage/sessionStorage deterministic during replay

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Mar 31 22:50:40 PDT 2014


https://bugs.webkit.org/show_bug.cgi?id=131007





--- Comment #3 from Brian Burg <burg at cs.washington.edu>  2014-03-31 22:50:59 PST ---
(In reply to comment #1)
> LocalStorage is global and observable from all tabs that share the domain, including with notifications.

Thanks for the heads-up about notifications.

Here's my thinking on the implementation strategy. I will defer on this bug until some timers work has been completed.

For all localStorage APIs we don't want to read or write the backing store since it may have changed. For getItem/length/contains, those can be memoized inside the Storage.cpp implementations. During replay, calls to setItem/removeitem should be ignored so that they have no effect on the backing store.

For notifications, it suffices to only worry about one Page being deterministic. So, that means playing back observed notifications and ignoring all others that coincidentally may be triggered during replay by other pages in the same origin. This is similar to the logic in UserInputBridge which blocks user mouse/keyboard events on replay.

Storage events may be captured as they are dispatched through StorageEventDispatcher (either in that class or in Frame). On replay, storage events can be enqueued in the Document's EventQueue in an EventLoopInput.

The nondeterminism of the document event queue itself is handled in a different bug.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list