Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(829)

Side by Side Diff: third_party/WebKit/Source/core/animation/AnimationInputHelpers.cpp

Issue 1681553002: Add support for 'href' (w/o XLink NS) for various SVG elements (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase; update comment Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/animation/AnimationInputHelpers.h" 5 #include "core/animation/AnimationInputHelpers.h"
6 6
7 #include "core/SVGNames.h" 7 #include "core/SVGNames.h"
8 #include "core/XLinkNames.h"
9 #include "core/css/CSSValueList.h" 8 #include "core/css/CSSValueList.h"
10 #include "core/css/parser/CSSParser.h" 9 #include "core/css/parser/CSSParser.h"
11 #include "core/css/resolver/CSSToStyleMap.h" 10 #include "core/css/resolver/CSSToStyleMap.h"
12 #include "core/svg/SVGElement.h" 11 #include "core/svg/SVGElement.h"
13 #include "core/svg/animation/SVGSMILElement.h" 12 #include "core/svg/animation/SVGSMILElement.h"
14 #include "wtf/text/StringBuilder.h" 13 #include "wtf/text/StringBuilder.h"
15 14
16 namespace blink { 15 namespace blink {
17 16
18 const char kSVGPrefix[] = "svg-"; 17 const char kSVGPrefix[] = "svg-";
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 &SVGNames::dyAttr, 80 &SVGNames::dyAttr,
82 &SVGNames::edgeModeAttr, 81 &SVGNames::edgeModeAttr,
83 &SVGNames::elevationAttr, 82 &SVGNames::elevationAttr,
84 &SVGNames::exponentAttr, 83 &SVGNames::exponentAttr,
85 &SVGNames::filterUnitsAttr, 84 &SVGNames::filterUnitsAttr,
86 &SVGNames::fxAttr, 85 &SVGNames::fxAttr,
87 &SVGNames::fyAttr, 86 &SVGNames::fyAttr,
88 &SVGNames::gradientTransformAttr, 87 &SVGNames::gradientTransformAttr,
89 &SVGNames::gradientUnitsAttr, 88 &SVGNames::gradientUnitsAttr,
90 &SVGNames::heightAttr, 89 &SVGNames::heightAttr,
90 &SVGNames::hrefAttr,
91 &SVGNames::in2Attr, 91 &SVGNames::in2Attr,
92 &SVGNames::inAttr, 92 &SVGNames::inAttr,
93 &SVGNames::interceptAttr, 93 &SVGNames::interceptAttr,
94 &SVGNames::k1Attr, 94 &SVGNames::k1Attr,
95 &SVGNames::k2Attr, 95 &SVGNames::k2Attr,
96 &SVGNames::k3Attr, 96 &SVGNames::k3Attr,
97 &SVGNames::k4Attr, 97 &SVGNames::k4Attr,
98 &SVGNames::kernelMatrixAttr, 98 &SVGNames::kernelMatrixAttr,
99 &SVGNames::kernelUnitLengthAttr, 99 &SVGNames::kernelUnitLengthAttr,
100 &SVGNames::lengthAdjustAttr, 100 &SVGNames::lengthAdjustAttr,
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 &SVGNames::widthAttr, 154 &SVGNames::widthAttr,
155 &SVGNames::x1Attr, 155 &SVGNames::x1Attr,
156 &SVGNames::x2Attr, 156 &SVGNames::x2Attr,
157 &SVGNames::xAttr, 157 &SVGNames::xAttr,
158 &SVGNames::xChannelSelectorAttr, 158 &SVGNames::xChannelSelectorAttr,
159 &SVGNames::y1Attr, 159 &SVGNames::y1Attr,
160 &SVGNames::y2Attr, 160 &SVGNames::y2Attr,
161 &SVGNames::yAttr, 161 &SVGNames::yAttr,
162 &SVGNames::yChannelSelectorAttr, 162 &SVGNames::yChannelSelectorAttr,
163 &SVGNames::zAttr, 163 &SVGNames::zAttr,
164 &XLinkNames::hrefAttr,
165 }; 164 };
166 for (size_t i = 0; i < WTF_ARRAY_LENGTH(attributes); i++) 165 for (size_t i = 0; i < WTF_ARRAY_LENGTH(attributes); i++)
167 supportedAttributes.set(*attributes[i], attributes[i]); 166 supportedAttributes.set(*attributes[i], attributes[i]);
168 } 167 }
169 return supportedAttributes; 168 return supportedAttributes;
170 } 169 }
171 170
172 QualifiedName svgAttributeName(const String& property) 171 QualifiedName svgAttributeName(const String& property)
173 { 172 {
174 ASSERT(!isSVGPrefixed(property)); 173 ASSERT(!isSVGPrefixed(property));
175
176 if (property == "href")
177 return XLinkNames::hrefAttr;
178
179 return QualifiedName(nullAtom, AtomicString(property), nullAtom); 174 return QualifiedName(nullAtom, AtomicString(property), nullAtom);
180 } 175 }
181 176
182 const QualifiedName* AnimationInputHelpers::keyframeAttributeToSVGAttribute(cons t String& property, Element& element) 177 const QualifiedName* AnimationInputHelpers::keyframeAttributeToSVGAttribute(cons t String& property, Element& element)
183 { 178 {
184 if (!RuntimeEnabledFeatures::webAnimationsSVGEnabled() || !element.isSVGElem ent() || !isSVGPrefixed(property)) 179 if (!RuntimeEnabledFeatures::webAnimationsSVGEnabled() || !element.isSVGElem ent() || !isSVGPrefixed(property))
185 return nullptr; 180 return nullptr;
186 181
187 SVGElement& svgElement = toSVGElement(element); 182 SVGElement& svgElement = toSVGElement(element);
188 if (isSVGSMILElement(svgElement)) 183 if (isSVGSMILElement(svgElement))
(...skipping 19 matching lines...) Expand all
208 ASSERT(!value || value->isCSSWideKeyword()); 203 ASSERT(!value || value->isCSSWideKeyword());
209 return nullptr; 204 return nullptr;
210 } 205 }
211 CSSValueList* valueList = toCSSValueList(value.get()); 206 CSSValueList* valueList = toCSSValueList(value.get());
212 if (valueList->length() > 1) 207 if (valueList->length() > 1)
213 return nullptr; 208 return nullptr;
214 return CSSToStyleMap::mapAnimationTimingFunction(*valueList->item(0), true); 209 return CSSToStyleMap::mapAnimationTimingFunction(*valueList->item(0), true);
215 } 210 }
216 211
217 } // namespace blink 212 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698