| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde
.org> | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann <zimmermann@kde
.org> |
| 3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> |
| 4 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. | 4 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. |
| 5 * Copyright (C) 2011 Torch Mobile (Beijing) Co. Ltd. All rights reserved. | 5 * Copyright (C) 2011 Torch Mobile (Beijing) Co. Ltd. All rights reserved. |
| 6 * Copyright (C) 2012 University of Szeged | 6 * Copyright (C) 2012 University of Szeged |
| 7 * Copyright (C) 2012 Renata Hodovan <reni@webkit.org> | 7 * Copyright (C) 2012 Renata Hodovan <reni@webkit.org> |
| 8 * | 8 * |
| 9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
| 10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 302 if (m_targetElementInstance) | 302 if (m_targetElementInstance) |
| 303 m_targetElementInstance = nullptr; | 303 m_targetElementInstance = nullptr; |
| 304 | 304 |
| 305 // FIXME: We should try to optimize this, to at least allow partial reclones
. | 305 // FIXME: We should try to optimize this, to at least allow partial reclones
. |
| 306 if (ShadowRoot* shadowTreeRootElement = userAgentShadowRoot()) | 306 if (ShadowRoot* shadowTreeRootElement = userAgentShadowRoot()) |
| 307 shadowTreeRootElement->removeChildren(); | 307 shadowTreeRootElement->removeChildren(); |
| 308 | 308 |
| 309 m_needsShadowTreeRecreation = false; | 309 m_needsShadowTreeRecreation = false; |
| 310 document().unscheduleUseShadowTreeUpdate(*this); | 310 document().unscheduleUseShadowTreeUpdate(*this); |
| 311 | 311 |
| 312 document().accessSVGExtensions().removeAllTargetReferencesForElement(this); | 312 removeAllOutgoingReferences(); |
| 313 } | 313 } |
| 314 | 314 |
| 315 void SVGUseElement::buildPendingResource() | 315 void SVGUseElement::buildPendingResource() |
| 316 { | 316 { |
| 317 if (!referencedScope() || inUseShadowTree()) | 317 if (!referencedScope() || inUseShadowTree()) |
| 318 return; | 318 return; |
| 319 clearResourceReferences(); | 319 clearResourceReferences(); |
| 320 if (!inDocument()) | 320 if (!inDocument()) |
| 321 return; | 321 return; |
| 322 | 322 |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 470 { | 470 { |
| 471 ASSERT(target); | 471 ASSERT(target); |
| 472 ASSERT(targetInstance); | 472 ASSERT(targetInstance); |
| 473 | 473 |
| 474 // Spec: If the referenced object is itself a 'use', or if there are 'use' s
ubelements within the referenced | 474 // Spec: If the referenced object is itself a 'use', or if there are 'use' s
ubelements within the referenced |
| 475 // object, the instance tree will contain recursive expansion of the indirec
t references to form a complete tree. | 475 // object, the instance tree will contain recursive expansion of the indirec
t references to form a complete tree. |
| 476 if (isSVGUseElement(*target)) { | 476 if (isSVGUseElement(*target)) { |
| 477 // We only need to track first degree <use> dependencies. Indirect refer
ences are handled | 477 // We only need to track first degree <use> dependencies. Indirect refer
ences are handled |
| 478 // as the invalidation bubbles up the dependency chain. | 478 // as the invalidation bubbles up the dependency chain. |
| 479 if (!foundUse && !isStructurallyExternal()) { | 479 if (!foundUse && !isStructurallyExternal()) { |
| 480 document().accessSVGExtensions().addElementReferencingTarget(this, t
arget); | 480 addReferenceTo(target); |
| 481 foundUse = true; | 481 foundUse = true; |
| 482 } | 482 } |
| 483 } else if (isDisallowedElement(target)) { | 483 } else if (isDisallowedElement(target)) { |
| 484 return false; | 484 return false; |
| 485 } | 485 } |
| 486 | 486 |
| 487 targetInstance->setCorrespondingElement(target); | 487 targetInstance->setCorrespondingElement(target); |
| 488 if (EventTargetData* data = target->eventTargetData()) | 488 if (EventTargetData* data = target->eventTargetData()) |
| 489 data->eventListenerMap.copyEventListenersNotCreatedFromMarkupToTarget(ta
rgetInstance); | 489 data->eventListenerMap.copyEventListenersNotCreatedFromMarkupToTarget(ta
rgetInstance); |
| 490 | 490 |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 767 m_resource->addClient(this); | 767 m_resource->addClient(this); |
| 768 } | 768 } |
| 769 | 769 |
| 770 void SVGUseElement::trace(Visitor* visitor) | 770 void SVGUseElement::trace(Visitor* visitor) |
| 771 { | 771 { |
| 772 visitor->trace(m_targetElementInstance); | 772 visitor->trace(m_targetElementInstance); |
| 773 SVGGraphicsElement::trace(visitor); | 773 SVGGraphicsElement::trace(visitor); |
| 774 } | 774 } |
| 775 | 775 |
| 776 } | 776 } |
| OLD | NEW |