Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(884)

Side by Side Diff: Source/core/events/EventDispatcher.cpp

Issue 239303003: Add devtools trace event for event dispatching (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | Source/core/frame/DOMWindow.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2001 Dirk Mueller (mueller@kde.org) 4 * (C) 2001 Dirk Mueller (mueller@kde.org)
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved. 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ights reserved.
6 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 6 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 7 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
8 * Copyright (C) 2011 Google Inc. All rights reserved. 8 * Copyright (C) 2011 Google Inc. All rights reserved.
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 15 matching lines...) Expand all
26 #include "config.h" 26 #include "config.h"
27 #include "core/events/EventDispatcher.h" 27 #include "core/events/EventDispatcher.h"
28 28
29 #include "core/dom/ContainerNode.h" 29 #include "core/dom/ContainerNode.h"
30 #include "core/events/EventDispatchMediator.h" 30 #include "core/events/EventDispatchMediator.h"
31 #include "core/events/MouseEvent.h" 31 #include "core/events/MouseEvent.h"
32 #include "core/events/ScopedEventQueue.h" 32 #include "core/events/ScopedEventQueue.h"
33 #include "core/events/WindowEventContext.h" 33 #include "core/events/WindowEventContext.h"
34 #include "core/frame/FrameView.h" 34 #include "core/frame/FrameView.h"
35 #include "core/inspector/InspectorInstrumentation.h" 35 #include "core/inspector/InspectorInstrumentation.h"
36 #include "platform/TraceEvent.h"
36 #include "wtf/RefPtr.h" 37 #include "wtf/RefPtr.h"
37 38
38 namespace WebCore { 39 namespace WebCore {
39 40
40 static HashSet<Node*>* gNodesDispatchingSimulatedClicks = 0; 41 static HashSet<Node*>* gNodesDispatchingSimulatedClicks = 0;
41 42
42 bool EventDispatcher::dispatchEvent(Node* node, PassRefPtr<EventDispatchMediator > mediator) 43 bool EventDispatcher::dispatchEvent(Node* node, PassRefPtr<EventDispatchMediator > mediator)
43 { 44 {
44 TRACE_EVENT0("webkit", "EventDispatcher::dispatchEvent"); 45 TRACE_EVENT0("webkit", "EventDispatcher::dispatchEvent");
45 ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden()); 46 ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden());
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 #ifndef NDEBUG 106 #ifndef NDEBUG
106 ASSERT(!m_eventDispatched); 107 ASSERT(!m_eventDispatched);
107 m_eventDispatched = true; 108 m_eventDispatched = true;
108 #endif 109 #endif
109 ChildNodesLazySnapshot::takeChildNodesLazySnapshot(); 110 ChildNodesLazySnapshot::takeChildNodesLazySnapshot();
110 111
111 m_event->setTarget(EventPath::eventTargetRespectingTargetRules(m_node.get()) ); 112 m_event->setTarget(EventPath::eventTargetRespectingTargetRules(m_node.get()) );
112 ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden()); 113 ASSERT(!NoEventDispatchAssertion::isEventDispatchForbidden());
113 ASSERT(m_event->target()); 114 ASSERT(m_event->target());
114 WindowEventContext windowEventContext(m_event.get(), m_node.get(), topNodeEv entContext()); 115 WindowEventContext windowEventContext(m_event.get(), m_node.get(), topNodeEv entContext());
116 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("devtools-timeline"), "EventDispatche r::dispatch", "type", TRACE_STR_COPY(m_event->type().ascii().data()));
pfeldman 2014/04/16 09:01:19 "EventDispatcher::dispatchEvent"
yurys 2014/04/18 13:38:52 Why? The method is called dispatch. I believe we s
117 // FIXME(361045): remove InspectorInstrumentation calls once DevTools Timeli ne migrated on tracing.
pfeldman 2014/04/16 09:01:19 migrates to tracing.
yurys 2014/04/18 13:38:52 Done.
115 InspectorInstrumentationCookie cookie = InspectorInstrumentation::willDispat chEvent(&m_node->document(), *m_event, windowEventContext.window(), m_node.get() , m_event->eventPath()); 118 InspectorInstrumentationCookie cookie = InspectorInstrumentation::willDispat chEvent(&m_node->document(), *m_event, windowEventContext.window(), m_node.get() , m_event->eventPath());
116 119
117 void* preDispatchEventHandlerResult; 120 void* preDispatchEventHandlerResult;
118 if (dispatchEventPreProcess(preDispatchEventHandlerResult) == ContinueDispat ching) 121 if (dispatchEventPreProcess(preDispatchEventHandlerResult) == ContinueDispat ching)
119 if (dispatchEventAtCapturing(windowEventContext) == ContinueDispatching) 122 if (dispatchEventAtCapturing(windowEventContext) == ContinueDispatching)
120 if (dispatchEventAtTarget() == ContinueDispatching) 123 if (dispatchEventAtTarget() == ContinueDispatching)
121 dispatchEventAtBubbling(windowEventContext); 124 dispatchEventAtBubbling(windowEventContext);
122 dispatchEventPostProcess(preDispatchEventHandlerResult); 125 dispatchEventPostProcess(preDispatchEventHandlerResult);
123 126
124 // Ensure that after event dispatch, the event's target object is the 127 // Ensure that after event dispatch, the event's target object is the
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 } 222 }
220 } 223 }
221 } 224 }
222 225
223 const NodeEventContext* EventDispatcher::topNodeEventContext() 226 const NodeEventContext* EventDispatcher::topNodeEventContext()
224 { 227 {
225 return m_event->eventPath().isEmpty() ? 0 : &m_event->eventPath().last(); 228 return m_event->eventPath().isEmpty() ? 0 : &m_event->eventPath().last();
226 } 229 }
227 230
228 } 231 }
OLDNEW
« no previous file with comments | « no previous file | Source/core/frame/DOMWindow.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698