To drive updates to playback position in the UI we send ReplayPosition coordinates as the backend dispatches inputs. However, right now the semantics of being at a ReplayPosition is currently muddy. The update is currently sent *after* the input at the offset is dispatched. This leads to unexpected results if the debugger pauses while the input is dispatched, and the frontend has a stale playback position when the debugger pauses. What it should mean is that for ReplayPosition(segmentOffset=n, inputOffset=m), the backend is about to dispatch input m, but has not yet begun to do so. Thus, any subsequent page execution events (profiling, debugger pauses, etc) are caused by m being dispatched.
<rdar://problem/18475656>
Created attachment 238748 [details] WIP 0a
Created attachment 238749 [details] WIP 0b
Created attachment 238750 [details] WIP 0c
Created attachment 238751 [details] Patch
Comment on attachment 238751 [details] Patch Clearing flags on attachment: 238751 Committed r174037: <http://trac.webkit.org/changeset/174037>
All reviewed patches have been landed. Closing bug.