Steps to reproduce: 1. Set a breakpoint in rotateActivePiece 2. Start the game and rotate a piece 3. Continue the debugger The timeline record for Key Down will not have any children, despite the onKeyDown handler having executed some code underneath. It appears that the timeline records are getting munged improperly when the debugger is running. In particular, we have the following timeline record structure, which fails to create the correct child records with profile data (in TimelineManager.eventRecorded function processRecord) > EventDispatch (data: {"type": "keydown"}) --> FunctionCall (data: {"scriptLine: 93, "scriptName": "..."}) // NOTE: normally has 'profile' property containing root nodes ----> FunctionCall [10+] (data: {"profile": ..., "scriptLine": 1, "scriptName": "InjectedScript"}) The first nested FunctionCall record contains the expected event handler in its profile. Subsequent nested FunctionCall records contain things that actually look related to InjectedScript, and these should not be displayed on the timeline.
Created attachment 238090 [details] Proposed Fix The patch fixes this bug (regression?) but I don't have time to write a test right now. Feel free to pick it up and write one, or wait a few weeks.
<rdar://problem/18331304>
This patch looks fine to me.
Comment on attachment 238090 [details] Proposed Fix I thought it landed, but I guess not.
Created attachment 238670 [details] Patch
Comment on attachment 238670 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=238670&action=review > LayoutTests/inspector/timeline/debugger-paused-while-recording.html:56 > + WebInspector.debuggerManager.addEventListener(WebInspector.DebuggerManager.Event.Paused, > + function(event) { > + InspectorTest.addResult("Debugger paused; resuming..."); > + > + WebInspector.debuggerManager.resume().then(function() { > + InspectorTest.addResult("Debugger resumed; stopping timeline capture."); > + WebInspector.timelineManager.stopCapturing(); > + }) > + > + }); function(event) { feels better on the previous line, like the other examples in this file. Also extra new line.
Committed r173992: <http://trac.webkit.org/changeset/173992>
inspector/timeline/debugger-paused-while-recording.html is very flaky, failing nearly every time: https://build.webkit.org/results/Apple%20Mavericks%20Release%20WK2%20(Tests)/r173993%20(8220)/inspector/timeline/debugger-paused-while-recording-pretty-diff.html
(In reply to comment #8) > inspector/timeline/debugger-paused-while-recording.html is very flaky, failing nearly every time: > > https://build.webkit.org/results/Apple%20Mavericks%20Release%20WK2%20(Tests)/r173993%20(8220)/inspector/timeline/debugger-paused-while-recording-pretty-diff.html I skipped the new inspector/timelines/ directory in <http://trac.webkit.org/changeset/173998>, it seems to suffer similar problems to the debugger and replay tests. I'll take a look at this later, since this flakiness is a big deterrent to writing any tests.