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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 return referenceNode->parentNode(); | 59 return referenceNode->parentNode(); |
60 | 60 |
61 if (!referenceNode->isSVGElement() || !referenceNode->isInShadowTree()) | 61 if (!referenceNode->isSVGElement() || !referenceNode->isInShadowTree()) |
62 return referenceNode; | 62 return referenceNode; |
63 | 63 |
64 // Spec: The event handling for the non-exposed tree works as if the referen
ced element had been textually included | 64 // Spec: The event handling for the non-exposed tree works as if the referen
ced element had been textually included |
65 // as a deeply cloned child of the 'use' element, except that events are dis
patched to the SVGElementInstance objects. | 65 // as a deeply cloned child of the 'use' element, except that events are dis
patched to the SVGElementInstance objects. |
66 Node& rootNode = referenceNode->treeScope().rootNode(); | 66 Node& rootNode = referenceNode->treeScope().rootNode(); |
67 Element* shadowHostElement = rootNode.isShadowRoot() ? toShadowRoot(rootNode
).host() : 0; | 67 Element* shadowHostElement = rootNode.isShadowRoot() ? toShadowRoot(rootNode
).host() : 0; |
68 // At this time, SVG nodes are not supported in non-<use> shadow trees. | 68 // At this time, SVG nodes are not supported in non-<use> shadow trees. |
69 if (!shadowHostElement || !shadowHostElement->hasTagName(SVGNames::useTag)) | 69 if (!isSVGUseElement(shadowHostElement)) |
70 return referenceNode; | 70 return referenceNode; |
71 SVGUseElement* useElement = toSVGUseElement(shadowHostElement); | 71 SVGUseElement& useElement = toSVGUseElement(*shadowHostElement); |
72 if (SVGElementInstance* instance = useElement->instanceForShadowTreeElement(
referenceNode)) | 72 if (SVGElementInstance* instance = useElement.instanceForShadowTreeElement(r
eferenceNode)) |
73 return instance; | 73 return instance; |
74 | 74 |
75 return referenceNode; | 75 return referenceNode; |
76 } | 76 } |
77 | 77 |
78 static inline bool inTheSameScope(ShadowRoot* shadowRoot, EventTarget* target) | 78 static inline bool inTheSameScope(ShadowRoot* shadowRoot, EventTarget* target) |
79 { | 79 { |
80 return target->toNode() && target->toNode()->treeScope().rootNode() == shado
wRoot; | 80 return target->toNode() && target->toNode()->treeScope().rootNode() == shado
wRoot; |
81 } | 81 } |
82 | 82 |
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
375 | 375 |
376 #ifndef NDEBUG | 376 #ifndef NDEBUG |
377 void EventPath::checkReachability(TreeScope& treeScope, TouchList& touchList) | 377 void EventPath::checkReachability(TreeScope& treeScope, TouchList& touchList) |
378 { | 378 { |
379 for (size_t i = 0; i < touchList.length(); ++i) | 379 for (size_t i = 0; i < touchList.length(); ++i) |
380 ASSERT(touchList.item(i)->target()->toNode()->treeScope().isInclusiveOld
erSiblingShadowRootOrAncestorTreeScopeOf(treeScope)); | 380 ASSERT(touchList.item(i)->target()->toNode()->treeScope().isInclusiveOld
erSiblingShadowRootOrAncestorTreeScopeOf(treeScope)); |
381 } | 381 } |
382 #endif | 382 #endif |
383 | 383 |
384 } // namespace | 384 } // namespace |
OLD | NEW |