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

Side by Side Diff: third_party/WebKit/Source/core/svg/SVGImageElement.cpp

Issue 2485663002: Store CSSPropertyID in SVGAnimatedPropertyBase (Closed)
Patch Set: Add missing case Created 4 years, 1 month 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 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005, 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Rob Buis <buis@kde.org>
4 * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org> 4 * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org>
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 15 matching lines...) Expand all
26 #include "core/layout/LayoutImageResource.h" 26 #include "core/layout/LayoutImageResource.h"
27 #include "core/layout/svg/LayoutSVGImage.h" 27 #include "core/layout/svg/LayoutSVGImage.h"
28 28
29 namespace blink { 29 namespace blink {
30 30
31 inline SVGImageElement::SVGImageElement(Document& document) 31 inline SVGImageElement::SVGImageElement(Document& document)
32 : SVGGraphicsElement(SVGNames::imageTag, document), 32 : SVGGraphicsElement(SVGNames::imageTag, document),
33 SVGURIReference(this), 33 SVGURIReference(this),
34 m_x(SVGAnimatedLength::create(this, 34 m_x(SVGAnimatedLength::create(this,
35 SVGNames::xAttr, 35 SVGNames::xAttr,
36 SVGLength::create(SVGLengthMode::Width))), 36 SVGLength::create(SVGLengthMode::Width),
37 CSSPropertyX)),
37 m_y(SVGAnimatedLength::create(this, 38 m_y(SVGAnimatedLength::create(this,
38 SVGNames::yAttr, 39 SVGNames::yAttr,
39 SVGLength::create(SVGLengthMode::Height))), 40 SVGLength::create(SVGLengthMode::Height),
40 m_width( 41 CSSPropertyY)),
41 SVGAnimatedLength::create(this, 42 m_width(SVGAnimatedLength::create(this,
42 SVGNames::widthAttr, 43 SVGNames::widthAttr,
43 SVGLength::create(SVGLengthMode::Width))), 44 SVGLength::create(SVGLengthMode::Width),
45 CSSPropertyWidth)),
44 m_height( 46 m_height(
45 SVGAnimatedLength::create(this, 47 SVGAnimatedLength::create(this,
46 SVGNames::heightAttr, 48 SVGNames::heightAttr,
47 SVGLength::create(SVGLengthMode::Height))), 49 SVGLength::create(SVGLengthMode::Height),
50 CSSPropertyHeight)),
48 m_preserveAspectRatio(SVGAnimatedPreserveAspectRatio::create( 51 m_preserveAspectRatio(SVGAnimatedPreserveAspectRatio::create(
49 this, 52 this,
50 SVGNames::preserveAspectRatioAttr)), 53 SVGNames::preserveAspectRatioAttr)),
51 m_imageLoader(SVGImageLoader::create(this)), 54 m_imageLoader(SVGImageLoader::create(this)),
52 m_needsLoaderURIUpdate(true) { 55 m_needsLoaderURIUpdate(true) {
53 addToPropertyMap(m_x); 56 addToPropertyMap(m_x);
54 addToPropertyMap(m_y); 57 addToPropertyMap(m_y);
55 addToPropertyMap(m_width); 58 addToPropertyMap(m_width);
56 addToPropertyMap(m_height); 59 addToPropertyMap(m_height);
57 addToPropertyMap(m_preserveAspectRatio); 60 addToPropertyMap(m_preserveAspectRatio);
(...skipping 17 matching lines...) Expand all
75 if (layoutSVGImage->imageResource()->hasImage()) { 78 if (layoutSVGImage->imageResource()->hasImage()) {
76 if (Image* image = 79 if (Image* image =
77 layoutSVGImage->imageResource()->cachedImage()->getImage()) 80 layoutSVGImage->imageResource()->cachedImage()->getImage())
78 return image->currentFrameHasSingleSecurityOrigin(); 81 return image->currentFrameHasSingleSecurityOrigin();
79 } 82 }
80 } 83 }
81 84
82 return true; 85 return true;
83 } 86 }
84 87
85 bool SVGImageElement::isPresentationAttribute(
86 const QualifiedName& attrName) const {
87 if (attrName == SVGNames::xAttr || attrName == SVGNames::yAttr ||
88 attrName == SVGNames::widthAttr || attrName == SVGNames::heightAttr)
89 return true;
90 return SVGGraphicsElement::isPresentationAttribute(attrName);
91 }
92
93 bool SVGImageElement::isPresentationAttributeWithSVGDOM(
94 const QualifiedName& attrName) const {
95 if (attrName == SVGNames::xAttr || attrName == SVGNames::yAttr ||
96 attrName == SVGNames::widthAttr || attrName == SVGNames::heightAttr)
97 return true;
98 return SVGGraphicsElement::isPresentationAttributeWithSVGDOM(attrName);
99 }
100
101 void SVGImageElement::collectStyleForPresentationAttribute( 88 void SVGImageElement::collectStyleForPresentationAttribute(
102 const QualifiedName& name, 89 const QualifiedName& name,
103 const AtomicString& value, 90 const AtomicString& value,
104 MutableStylePropertySet* style) { 91 MutableStylePropertySet* style) {
105 SVGAnimatedPropertyBase* property = propertyFromAttribute(name); 92 SVGAnimatedPropertyBase* property = propertyFromAttribute(name);
106 if (property == m_width) 93 if (property == m_width)
107 addPropertyToPresentationAttributeStyle( 94 addPropertyToPresentationAttributeStyle(
108 style, CSSPropertyWidth, 95 style, CSSPropertyWidth,
109 m_width->currentValue()->asCSSPrimitiveValue()); 96 m_width->currentValue()->asCSSPrimitiveValue());
110 else if (property == m_height) 97 else if (property == m_height)
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 const AtomicString SVGImageElement::imageSourceURL() const { 199 const AtomicString SVGImageElement::imageSourceURL() const {
213 return AtomicString(hrefString()); 200 return AtomicString(hrefString());
214 } 201 }
215 202
216 void SVGImageElement::didMoveToNewDocument(Document& oldDocument) { 203 void SVGImageElement::didMoveToNewDocument(Document& oldDocument) {
217 imageLoader().elementDidMoveToNewDocument(); 204 imageLoader().elementDidMoveToNewDocument();
218 SVGGraphicsElement::didMoveToNewDocument(oldDocument); 205 SVGGraphicsElement::didMoveToNewDocument(oldDocument);
219 } 206 }
220 207
221 } // namespace blink 208 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/svg/SVGImageElement.h ('k') | third_party/WebKit/Source/core/svg/SVGMaskElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698