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, 2008 Rob Buis <buis@kde.org> | 4 * Copyright (C) 2004, 2005, 2006, 2008 Rob Buis <buis@kde.org> |
5 * Copyright (C) 2008 Apple Inc. All rights reserved. | 5 * Copyright (C) 2008 Apple Inc. All rights reserved. |
6 * Copyright (C) 2008 Alp Toker <alp@atoker.com> | 6 * Copyright (C) 2008 Alp Toker <alp@atoker.com> |
7 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> | 7 * Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> |
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 1011 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1022 style = layoutObject->style(); | 1022 style = layoutObject->style(); |
1023 } | 1023 } |
1024 | 1024 |
1025 return document().ensureStyleResolver().styleForElement( | 1025 return document().ensureStyleResolver().styleForElement( |
1026 correspondingElement(), style, DisallowStyleSharing); | 1026 correspondingElement(), style, DisallowStyleSharing); |
1027 } | 1027 } |
1028 | 1028 |
1029 bool SVGElement::layoutObjectIsNeeded(const ComputedStyle& style) { | 1029 bool SVGElement::layoutObjectIsNeeded(const ComputedStyle& style) { |
1030 // SVG elements only render when inside <svg>, or if the element is an <svg> | 1030 // SVG elements only render when inside <svg>, or if the element is an <svg> |
1031 // itself. | 1031 // itself. |
1032 if (!isSVGSVGElement(*this)) { | 1032 if (!isSVGSVGElement(*this) && !isInSVGSubtree()) |
fs
2017/02/12 10:25:36
Given that we have an override for SVGSVGElement a
| |
1033 ContainerNode* parent = FlatTreeTraversal::parent(*this); | 1033 return false; |
1034 if (!parent || !parent->isSVGElement()) | |
1035 return false; | |
1036 } | |
1037 | 1034 |
1038 if (!isValid()) | 1035 if (!isValid()) |
1039 return false; | 1036 return false; |
1040 | 1037 |
1041 return Element::layoutObjectIsNeeded(style); | 1038 return Element::layoutObjectIsNeeded(style); |
1042 } | 1039 } |
1043 | 1040 |
1041 bool SVGElement::isValidAndInSVGSubtree() const { | |
1042 return isInSVGSubtree() && isValid(); | |
1043 } | |
1044 | |
1045 bool SVGElement::isInSVGSubtree() const { | |
fs
2017/02/12 10:25:36
Maybe "hasSVGParent" or "hasSVGAncestor" or someth
| |
1046 // Should we use the flat tree parent instead? If so, we should probably fix a | |
1047 // few other checks. | |
1048 return parentOrShadowHostElement() || | |
fs
2017/02/12 10:25:35
&&
| |
1049 parentOrShadowHostElement()->isSVGElement(); | |
1050 } | |
1051 | |
1044 MutableStylePropertySet* SVGElement::animatedSMILStyleProperties() const { | 1052 MutableStylePropertySet* SVGElement::animatedSMILStyleProperties() const { |
1045 if (hasSVGRareData()) | 1053 if (hasSVGRareData()) |
1046 return svgRareData()->animatedSMILStyleProperties(); | 1054 return svgRareData()->animatedSMILStyleProperties(); |
1047 return nullptr; | 1055 return nullptr; |
1048 } | 1056 } |
1049 | 1057 |
1050 MutableStylePropertySet* SVGElement::ensureAnimatedSMILStyleProperties() { | 1058 MutableStylePropertySet* SVGElement::ensureAnimatedSMILStyleProperties() { |
1051 return ensureSVGRareData()->ensureAnimatedSMILStyleProperties(); | 1059 return ensureSVGRareData()->ensureAnimatedSMILStyleProperties(); |
1052 } | 1060 } |
1053 | 1061 |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1304 visitor->trace(m_className); | 1312 visitor->trace(m_className); |
1305 Element::trace(visitor); | 1313 Element::trace(visitor); |
1306 } | 1314 } |
1307 | 1315 |
1308 const AtomicString& SVGElement::eventParameterName() { | 1316 const AtomicString& SVGElement::eventParameterName() { |
1309 DEFINE_STATIC_LOCAL(const AtomicString, evtString, ("evt")); | 1317 DEFINE_STATIC_LOCAL(const AtomicString, evtString, ("evt")); |
1310 return evtString; | 1318 return evtString; |
1311 } | 1319 } |
1312 | 1320 |
1313 } // namespace blink | 1321 } // namespace blink |
OLD | NEW |