Bug 10929 - WebKit could benefit from a tool to observe/debug event dispatch
Summary: WebKit could benefit from a tool to observe/debug event dispatch
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: 420+
Hardware: Macintosh OS X 10.4
: P4 Enhancement
Assignee: Nobody
Keywords: InRadar
: 17430 (view as bug list)
Depends on:
Reported: 2006-09-18 20:20 PDT by Eric Seidel (no email)
Modified: 2013-10-09 15:20 PDT (History)
5 users (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Eric Seidel (no email) 2006-09-18 20:20:12 PDT
WebKit could benifit from a tool to observe/debug event dispatch

bdash and I just spent a while talking about JS/Web tools that we'd like to see to better support web developers using Safari/WebKit.  One idea which came out of this discussion was for a tool to track javascript event dispatch.

I have had a number of cases where I've had to debug mouse-events for my web-application in Safari and been frustrated by having to resort to gdb to do this tracking.  It would be nice if there were a way to easily see a log of all attempted dispatch, or to have information a priori as to where a mouse event might be captured/targeted.

Wiring this sort of tool into WebKit should be relatively straightforward.  A couple hooks into EventTargetNode::dispatchGenericEvent should do the trick.  The larger question (to me) is what would such a tool look like.
Comment 1 David Kilzer (:ddkilzer) 2008-02-23 20:32:01 PST
Comment 2 Timothy Hatcher 2008-09-28 11:41:29 PDT
*** Bug 17430 has been marked as a duplicate of this bug. ***
Comment 3 Joseph Pecoraro 2010-05-10 00:48:15 PDT
The Timeline Panel helps with this, but usability on these types of use cases could probably still improve.
Comment 4 Timothy Hatcher 2012-03-17 08:57:05 PDT
Not great, but the console has support for Firebug's monitorEvents(<element>, [<event type>, ...]).
Comment 5 Timothy Hatcher 2013-10-09 15:20:35 PDT
The Timeline panel is the answer for this.