Web Replay: Playback position updates should be sent before the next event loop input...
[WebKit-https.git] / Source / WebCore / ChangeLog
index 3cd267b..f85197a 100644 (file)
@@ -1,3 +1,26 @@
+2014-09-27  Brian J. Burg  <burg@cs.washington.edu>
+
+        Web Replay: Playback position updates should be sent before the next event loop input is dispatched
+        https://bugs.webkit.org/show_bug.cgi?id=137162
+
+        Reviewed by Timothy Hatcher.
+
+        To drive playback position updates in the Inspector UI, we send playbackHitPosition protocol
+        messages as the replay backend dispatches inputs. However, right now the semantics of that
+        message are muddy. The update is sent *after* the input at the offset is dispatched. This leads
+        to unexpected results if the debugger pauses while the input is being dispatched: the frontend
+        will only know about the previous (stale) playback position when the debugger pauses.
+
+        With this patch, the backend sends the playbackHitPosition(segmentOffset=n, inputOffset=m)
+        message when 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) until the next
+        playbackHitPosition are caused by input m's being dispatched.
+
+        * inspector/protocol/Replay.json: Clarify the message's semantics.
+        * replay/ReplayController.cpp:
+        (WebCore::ReplayController::willDispatchInput):
+        (WebCore::ReplayController::didDispatchInput):
+
 2014-09-27  Benjamin Poulain  <bpoulain@apple.com>
 
         Chaining multiple :nth-child() does not work properly