| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2014 Google Inc. All Rights Reserved. | 2 * Copyright (C) 2014 Google Inc. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 namespace blink { | 35 namespace blink { |
| 36 | 36 |
| 37 PassRefPtrWillBeRawPtr<StaticNodeList> TreeScopeEventContext::ensureEventPath(Ev
entPath& path) | 37 PassRefPtrWillBeRawPtr<StaticNodeList> TreeScopeEventContext::ensureEventPath(Ev
entPath& path) |
| 38 { | 38 { |
| 39 if (m_eventPath) | 39 if (m_eventPath) |
| 40 return m_eventPath; | 40 return m_eventPath; |
| 41 | 41 |
| 42 WillBeHeapVector<RefPtrWillBeMember<Node>> nodes; | 42 WillBeHeapVector<RefPtrWillBeMember<Node>> nodes; |
| 43 nodes.reserveInitialCapacity(path.size()); | 43 nodes.reserveInitialCapacity(path.size()); |
| 44 for (size_t i = 0; i < path.size(); ++i) { | 44 for (size_t i = 0; i < path.size(); ++i) { |
| 45 TreeScope& treeScope = path[i].treeScopeEventContext().treeScope(); | 45 Node& rootNode = path[i].treeScopeEventContext().rootNode(); |
| 46 if (treeScope.rootNode().isShadowRoot() && toShadowRoot(treeScope).type(
) == ShadowRoot::AuthorShadowRoot) | 46 if (rootNode.isShadowRoot() && toShadowRoot(rootNode).type() == ShadowRo
ot::AuthorShadowRoot) |
| 47 nodes.append(path[i].node()); | 47 nodes.append(path[i].node()); |
| 48 else if (path[i].treeScopeEventContext().isInclusiveAncestorOf(*this)) | 48 else if (path[i].treeScopeEventContext().isInclusiveAncestorOf(*this)) |
| 49 nodes.append(path[i].node()); | 49 nodes.append(path[i].node()); |
| 50 } | 50 } |
| 51 m_eventPath = StaticNodeList::adopt(nodes); | 51 m_eventPath = StaticNodeList::adopt(nodes); |
| 52 return m_eventPath; | 52 return m_eventPath; |
| 53 } | 53 } |
| 54 | 54 |
| 55 TouchEventContext* TreeScopeEventContext::ensureTouchEventContext() | 55 TouchEventContext* TreeScopeEventContext::ensureTouchEventContext() |
| 56 { | 56 { |
| 57 if (!m_touchEventContext) | 57 if (!m_touchEventContext) |
| 58 m_touchEventContext = TouchEventContext::create(); | 58 m_touchEventContext = TouchEventContext::create(); |
| 59 return m_touchEventContext.get(); | 59 return m_touchEventContext.get(); |
| 60 } | 60 } |
| 61 | 61 |
| 62 PassRefPtrWillBeRawPtr<TreeScopeEventContext> TreeScopeEventContext::create(Tree
Scope& treeScope) | 62 PassRefPtrWillBeRawPtr<TreeScopeEventContext> TreeScopeEventContext::create(Tree
Scope& treeScope) |
| 63 { | 63 { |
| 64 return adoptRefWillBeNoop(new TreeScopeEventContext(treeScope)); | 64 return adoptRefWillBeNoop(new TreeScopeEventContext(treeScope)); |
| 65 } | 65 } |
| 66 | 66 |
| 67 TreeScopeEventContext::TreeScopeEventContext(TreeScope& treeScope) | 67 TreeScopeEventContext::TreeScopeEventContext(TreeScope& treeScope) |
| 68 : m_treeScope(treeScope) | 68 : m_treeScope(treeScope) |
| 69 , m_rootNode(treeScope.rootNode()) |
| 69 , m_preOrder(-1) | 70 , m_preOrder(-1) |
| 70 , m_postOrder(-1) | 71 , m_postOrder(-1) |
| 71 { | 72 { |
| 72 } | 73 } |
| 73 | 74 |
| 74 DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(TreeScopeEventContext) | 75 DEFINE_EMPTY_DESTRUCTOR_WILL_BE_REMOVED(TreeScopeEventContext) |
| 75 | 76 |
| 76 void TreeScopeEventContext::trace(Visitor* visitor) | 77 void TreeScopeEventContext::trace(Visitor* visitor) |
| 77 { | 78 { |
| 78 visitor->trace(m_treeScope); | 79 visitor->trace(m_treeScope); |
| 80 visitor->trace(m_rootNode); |
| 79 visitor->trace(m_target); | 81 visitor->trace(m_target); |
| 80 visitor->trace(m_relatedTarget); | 82 visitor->trace(m_relatedTarget); |
| 81 visitor->trace(m_eventPath); | 83 visitor->trace(m_eventPath); |
| 82 visitor->trace(m_touchEventContext); | 84 visitor->trace(m_touchEventContext); |
| 83 #if ENABLE(OILPAN) | 85 #if ENABLE(OILPAN) |
| 84 visitor->trace(m_children); | 86 visitor->trace(m_children); |
| 85 #endif | 87 #endif |
| 86 } | 88 } |
| 87 | 89 |
| 88 int TreeScopeEventContext::calculatePrePostOrderNumber(int orderNumber) | 90 int TreeScopeEventContext::calculatePrePostOrderNumber(int orderNumber) |
| 89 { | 91 { |
| 90 m_preOrder = orderNumber; | 92 m_preOrder = orderNumber; |
| 91 for (size_t i = 0; i < m_children.size(); ++i) | 93 for (size_t i = 0; i < m_children.size(); ++i) |
| 92 orderNumber = m_children[i]->calculatePrePostOrderNumber(orderNumber + 1
); | 94 orderNumber = m_children[i]->calculatePrePostOrderNumber(orderNumber + 1
); |
| 93 m_postOrder = orderNumber + 1; | 95 m_postOrder = orderNumber + 1; |
| 94 return orderNumber + 1; | 96 return orderNumber + 1; |
| 95 } | 97 } |
| 96 | 98 |
| 97 } | 99 } |
| OLD | NEW |