Chromium Code Reviews| Index: Source/core/events/TreeScopeEventContext.h |
| diff --git a/Source/core/events/TreeScopeEventContext.h b/Source/core/events/TreeScopeEventContext.h |
| index 639cf816572418858ecdec69291d333253bec6c0..914442505557c9496689011e15be2db0a808927a 100644 |
| --- a/Source/core/events/TreeScopeEventContext.h |
| +++ b/Source/core/events/TreeScopeEventContext.h |
| @@ -37,6 +37,7 @@ |
| namespace WebCore { |
| +class EventPath; |
| class EventTarget; |
| class Node; |
| class TouchEventContext; |
| @@ -58,8 +59,14 @@ public: |
| TouchEventContext* touchEventContext() const { return m_touchEventContext.get(); } |
| TouchEventContext* ensureTouchEventContext(); |
| - PassRefPtr<NodeList> eventPath() const { return m_eventPath; } |
| - void adoptEventPath(Vector<RefPtr<Node> >&); |
| + PassRefPtr<NodeList> ensureEventPath(EventPath&); |
| + |
| + bool isInclusiveAncestorOf(const TreeScopeEventContext&); |
| + void addChild(TreeScopeEventContext& child) { m_children.append(&child); } |
| + |
| + // Number each TreeScope for ancestor-descendant relationship check in Q(1). |
| + // Preprocessing takes O(N). |
| + int numberByDepthFirstSearch(int number); |
|
dglazkov
2014/03/10 16:34:53
"number" is awkward here.
What's the right term f
hayato
2014/03/11 05:54:04
Let me use more explicit name, pre-order number an
|
| private: |
| TreeScopeEventContext(TreeScope&); |
| @@ -73,6 +80,10 @@ private: |
| RefPtr<EventTarget> m_relatedTarget; |
| RefPtr<NodeList> m_eventPath; |
| RefPtrWillBePersistent<TouchEventContext> m_touchEventContext; |
| + |
| + Vector<TreeScopeEventContext*> m_children; |
| + int m_preVisit; |
| + int m_postVisit; |
| }; |
| #ifndef NDEBUG |
| @@ -97,6 +108,12 @@ inline void TreeScopeEventContext::setRelatedTarget(PassRefPtr<EventTarget> rela |
| m_relatedTarget = relatedTarget; |
| } |
| +inline bool TreeScopeEventContext::isInclusiveAncestorOf(const TreeScopeEventContext& other) |
| +{ |
| + ASSERT(m_preVisit != -1 && m_postVisit != -1 && other.m_preVisit != -1 && other.m_postVisit != -1); |
| + return m_preVisit <= other.m_preVisit && other.m_postVisit <= m_postVisit; |
| +} |
| + |
| } |
| #endif // TreeScopeEventContext_h |