OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann | 2 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Nikolas Zimmermann |
3 * <zimmermann@kde.org> | 3 * <zimmermann@kde.org> |
4 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> | 4 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> |
5 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. | 5 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. |
6 * Copyright (C) 2011 Torch Mobile (Beijing) Co. Ltd. All rights reserved. | 6 * Copyright (C) 2011 Torch Mobile (Beijing) Co. Ltd. All rights reserved. |
7 * Copyright (C) 2012 University of Szeged | 7 * Copyright (C) 2012 University of Szeged |
8 * Copyright (C) 2012 Renata Hodovan <reni@webkit.org> | 8 * Copyright (C) 2012 Renata Hodovan <reni@webkit.org> |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 20 matching lines...) Expand all Loading... |
31 #include "core/dom/Document.h" | 31 #include "core/dom/Document.h" |
32 #include "core/dom/ElementTraversal.h" | 32 #include "core/dom/ElementTraversal.h" |
33 #include "core/dom/StyleChangeReason.h" | 33 #include "core/dom/StyleChangeReason.h" |
34 #include "core/dom/TaskRunnerHelper.h" | 34 #include "core/dom/TaskRunnerHelper.h" |
35 #include "core/dom/shadow/ElementShadow.h" | 35 #include "core/dom/shadow/ElementShadow.h" |
36 #include "core/dom/shadow/ShadowRoot.h" | 36 #include "core/dom/shadow/ShadowRoot.h" |
37 #include "core/events/Event.h" | 37 #include "core/events/Event.h" |
38 #include "core/fetch/FetchRequest.h" | 38 #include "core/fetch/FetchRequest.h" |
39 #include "core/fetch/ResourceFetcher.h" | 39 #include "core/fetch/ResourceFetcher.h" |
40 #include "core/layout/svg/LayoutSVGTransformableContainer.h" | 40 #include "core/layout/svg/LayoutSVGTransformableContainer.h" |
41 #include "core/svg/SVGDocumentExtensions.h" | |
42 #include "core/svg/SVGGElement.h" | 41 #include "core/svg/SVGGElement.h" |
43 #include "core/svg/SVGLengthContext.h" | 42 #include "core/svg/SVGLengthContext.h" |
44 #include "core/svg/SVGSVGElement.h" | 43 #include "core/svg/SVGSVGElement.h" |
45 #include "core/svg/SVGSymbolElement.h" | 44 #include "core/svg/SVGSymbolElement.h" |
| 45 #include "core/svg/SVGTreeScopeResources.h" |
46 #include "core/xml/parser/XMLDocumentParser.h" | 46 #include "core/xml/parser/XMLDocumentParser.h" |
47 #include "wtf/Vector.h" | 47 #include "wtf/Vector.h" |
48 | 48 |
49 namespace blink { | 49 namespace blink { |
50 | 50 |
51 inline SVGUseElement::SVGUseElement(Document& document) | 51 inline SVGUseElement::SVGUseElement(Document& document) |
52 : SVGGraphicsElement(SVGNames::useTag, document), | 52 : SVGGraphicsElement(SVGNames::useTag, document), |
53 SVGURIReference(this), | 53 SVGURIReference(this), |
54 m_x(SVGAnimatedLength::create(this, | 54 m_x(SVGAnimatedLength::create(this, |
55 SVGNames::xAttr, | 55 SVGNames::xAttr, |
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
309 else if (resourceIsValid()) | 309 else if (resourceIsValid()) |
310 lookupScope = m_resource->document(); | 310 lookupScope = m_resource->document(); |
311 else | 311 else |
312 return nullptr; | 312 return nullptr; |
313 Element* target = lookupScope->getElementById(m_elementIdentifier); | 313 Element* target = lookupScope->getElementById(m_elementIdentifier); |
314 // TODO(fs): Why would the Element not be "connected" at this point? | 314 // TODO(fs): Why would the Element not be "connected" at this point? |
315 if (target && target->isConnected()) | 315 if (target && target->isConnected()) |
316 return target; | 316 return target; |
317 // Don't record any pending references for external resources. | 317 // Don't record any pending references for external resources. |
318 if (!m_resource) { | 318 if (!m_resource) { |
319 document().accessSVGExtensions().addPendingResource(m_elementIdentifier, | 319 treeScope().ensureSVGTreeScopedResources().addPendingResource( |
320 this); | 320 m_elementIdentifier, this); |
321 DCHECK(hasPendingResources()); | 321 DCHECK(hasPendingResources()); |
322 } | 322 } |
323 return nullptr; | 323 return nullptr; |
324 } | 324 } |
325 | 325 |
326 void SVGUseElement::buildPendingResource() { | 326 void SVGUseElement::buildPendingResource() { |
327 if (inUseShadowTree()) | 327 if (inUseShadowTree()) |
328 return; | 328 return; |
329 clearShadowTree(); | 329 clearShadowTree(); |
330 cancelShadowTreeRecreation(); | 330 cancelShadowTreeRecreation(); |
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
724 | 724 |
725 if (m_resource) | 725 if (m_resource) |
726 m_resource->removeClient(this); | 726 m_resource->removeClient(this); |
727 | 727 |
728 m_resource = resource; | 728 m_resource = resource; |
729 if (m_resource) | 729 if (m_resource) |
730 m_resource->addClient(this); | 730 m_resource->addClient(this); |
731 } | 731 } |
732 | 732 |
733 } // namespace blink | 733 } // namespace blink |
OLD | NEW |