| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2013 Google Inc. All rights reserved. | 2  * Copyright (C) 2013 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 are | 5  * modification, are permitted provided that the following conditions are | 
| 6  * met: | 6  * met: | 
| 7  * | 7  * | 
| 8  *     * Redistributions of source code must retain the above copyright | 8  *     * Redistributions of source code must retain the above copyright | 
| 9  * notice, this list of conditions and the following disclaimer. | 9  * notice, this list of conditions and the following disclaimer. | 
| 10  *     * Neither the name of Google Inc. nor the names of its | 10  *     * Neither the name of Google Inc. nor the names of its | 
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 197         } | 197         } | 
| 198         treeScopeEventContext->adoptEventPath(nodes); | 198         treeScopeEventContext->adoptEventPath(nodes); | 
| 199     } | 199     } | 
| 200 } | 200 } | 
| 201 | 201 | 
| 202 TreeScopeEventContext* EventPath::ensureTreeScopeEventContext(Node* currentTarge
     t, TreeScope* treeScope, TreeScopeEventContextMap& treeScopeEventContextMap) | 202 TreeScopeEventContext* EventPath::ensureTreeScopeEventContext(Node* currentTarge
     t, TreeScope* treeScope, TreeScopeEventContextMap& treeScopeEventContextMap) | 
| 203 { | 203 { | 
| 204     if (!treeScope) | 204     if (!treeScope) | 
| 205         return 0; | 205         return 0; | 
| 206     TreeScopeEventContextMap::AddResult addResult = treeScopeEventContextMap.add
     (treeScope, TreeScopeEventContext::create(*treeScope)); | 206     TreeScopeEventContextMap::AddResult addResult = treeScopeEventContextMap.add
     (treeScope, TreeScopeEventContext::create(*treeScope)); | 
| 207     TreeScopeEventContext* treeScopeEventContext = addResult.iterator->value.get
     (); | 207     TreeScopeEventContext* treeScopeEventContext = addResult.storedValue->value.
     get(); | 
| 208     if (addResult.isNewEntry) { | 208     if (addResult.isNewEntry) { | 
| 209         TreeScopeEventContext* parentTreeScopeEventContext = ensureTreeScopeEven
     tContext(0, treeScope->olderShadowRootOrParentTreeScope(), treeScopeEventContext
     Map); | 209         TreeScopeEventContext* parentTreeScopeEventContext = ensureTreeScopeEven
     tContext(0, treeScope->olderShadowRootOrParentTreeScope(), treeScopeEventContext
     Map); | 
| 210         if (parentTreeScopeEventContext && parentTreeScopeEventContext->target()
     ) { | 210         if (parentTreeScopeEventContext && parentTreeScopeEventContext->target()
     ) { | 
| 211             treeScopeEventContext->setTarget(parentTreeScopeEventContext->target
     ()); | 211             treeScopeEventContext->setTarget(parentTreeScopeEventContext->target
     ()); | 
| 212         } else if (currentTarget) { | 212         } else if (currentTarget) { | 
| 213             treeScopeEventContext->setTarget(eventTargetRespectingTargetRules(cu
     rrentTarget)); | 213             treeScopeEventContext->setTarget(eventTargetRespectingTargetRules(cu
     rrentTarget)); | 
| 214         } | 214         } | 
| 215     } else if (!treeScopeEventContext->target() && currentTarget) { | 215     } else if (!treeScopeEventContext->target() && currentTarget) { | 
| 216         treeScopeEventContext->setTarget(eventTargetRespectingTargetRules(curren
     tTarget)); | 216         treeScopeEventContext->setTarget(eventTargetRespectingTargetRules(curren
     tTarget)); | 
| 217     } | 217     } | 
| 218     return treeScopeEventContext; | 218     return treeScopeEventContext; | 
| 219 } | 219 } | 
| 220 | 220 | 
| 221 void EventPath::calculateAdjustedTargets() | 221 void EventPath::calculateAdjustedTargets() | 
| 222 { | 222 { | 
| 223     const TreeScope* lastTreeScope = 0; | 223     const TreeScope* lastTreeScope = 0; | 
| 224     bool isSVGElement = at(0).node()->isSVGElement(); | 224     bool isSVGElement = at(0).node()->isSVGElement(); | 
| 225 | 225 | 
| 226     TreeScopeEventContextMap treeScopeEventContextMap; | 226     TreeScopeEventContextMap treeScopeEventContextMap; | 
| 227     TreeScopeEventContext* lastTreeScopeEventContext = 0; | 227     TreeScopeEventContext* lastTreeScopeEventContext = 0; | 
| 228 | 228 | 
| 229     for (size_t i = 0; i < size(); ++i) { | 229     for (size_t i = 0; i < size(); ++i) { | 
| 230         Node* currentNode = at(i).node(); | 230         Node* currentNode = at(i).node(); | 
| 231         TreeScope& currentTreeScope = currentNode->treeScope(); | 231         TreeScope& currentTreeScope = currentNode->treeScope(); | 
| 232         if (lastTreeScope != ¤tTreeScope) { | 232         if (lastTreeScope != ¤tTreeScope) { | 
| 233             if (!isSVGElement) { | 233             if (!isSVGElement) { | 
| 234                 lastTreeScopeEventContext = ensureTreeScopeEventContext(currentN
     ode, ¤tTreeScope, treeScopeEventContextMap); | 234                 lastTreeScopeEventContext = ensureTreeScopeEventContext(currentN
     ode, ¤tTreeScope, treeScopeEventContextMap); | 
| 235             } else { | 235             } else { | 
| 236                 TreeScopeEventContextMap::AddResult addResult = treeScopeEventCo
     ntextMap.add(¤tTreeScope, TreeScopeEventContext::create(currentTreeScope))
     ; | 236                 TreeScopeEventContextMap::AddResult addResult = treeScopeEventCo
     ntextMap.add(¤tTreeScope, TreeScopeEventContext::create(currentTreeScope))
     ; | 
| 237                 lastTreeScopeEventContext = addResult.iterator->value.get(); | 237                 lastTreeScopeEventContext = addResult.storedValue->value.get(); | 
| 238                 if (addResult.isNewEntry) { | 238                 if (addResult.isNewEntry) { | 
| 239                     // Don't adjust an event target for SVG. | 239                     // Don't adjust an event target for SVG. | 
| 240                     lastTreeScopeEventContext->setTarget(eventTargetRespectingTa
     rgetRules(at(0).node())); | 240                     lastTreeScopeEventContext->setTarget(eventTargetRespectingTa
     rgetRules(at(0).node())); | 
| 241                 } | 241                 } | 
| 242             } | 242             } | 
| 243         } | 243         } | 
| 244         ASSERT(lastTreeScopeEventContext); | 244         ASSERT(lastTreeScopeEventContext); | 
| 245         at(i).setTreeScopeEventContext(lastTreeScopeEventContext); | 245         at(i).setTreeScopeEventContext(lastTreeScopeEventContext); | 
| 246         lastTreeScope = ¤tTreeScope; | 246         lastTreeScope = ¤tTreeScope; | 
| 247     } | 247     } | 
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 368 | 368 | 
| 369 #ifndef NDEBUG | 369 #ifndef NDEBUG | 
| 370 void EventPath::checkReachability(TreeScope& treeScope, TouchList& touchList) | 370 void EventPath::checkReachability(TreeScope& treeScope, TouchList& touchList) | 
| 371 { | 371 { | 
| 372     for (size_t i = 0; i < touchList.length(); ++i) | 372     for (size_t i = 0; i < touchList.length(); ++i) | 
| 373         ASSERT(touchList.item(i)->target()->toNode()->treeScope().isInclusiveOld
     erSiblingShadowRootOrAncestorTreeScopeOf(treeScope)); | 373         ASSERT(touchList.item(i)->target()->toNode()->treeScope().isInclusiveOld
     erSiblingShadowRootOrAncestorTreeScopeOf(treeScope)); | 
| 374 } | 374 } | 
| 375 #endif | 375 #endif | 
| 376 | 376 | 
| 377 } // namespace | 377 } // namespace | 
| OLD | NEW | 
|---|