darin | b9481ed | 2006-03-20 02:57:59 +0000 | [diff] [blame] | 1 | /* |
zimmermann@webkit.org | 711245f | 2010-08-03 19:39:01 +0000 | [diff] [blame] | 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> |
| 4 | * Copyright (C) 2006 Alexander Kellett <lypanov@kde.org> |
krit@webkit.org | 9c3caeb | 2014-07-25 09:52:25 +0000 | [diff] [blame] | 5 | * Copyright (C) 2014 Adobe Systems Incorporated. All rights reserved. |
zimmermann@webkit.org | 711245f | 2010-08-03 19:39:01 +0000 | [diff] [blame] | 6 | * |
| 7 | * This library is free software; you can redistribute it and/or |
| 8 | * modify it under the terms of the GNU Library General Public |
| 9 | * License as published by the Free Software Foundation; either |
| 10 | * version 2 of the License, or (at your option) any later version. |
| 11 | * |
| 12 | * This library is distributed in the hope that it will be useful, |
| 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 15 | * Library General Public License for more details. |
| 16 | * |
| 17 | * You should have received a copy of the GNU Library General Public License |
| 18 | * along with this library; see the file COPYING.LIB. If not, write to |
| 19 | * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| 20 | * Boston, MA 02110-1301, USA. |
| 21 | */ |
darin | b9481ed | 2006-03-20 02:57:59 +0000 | [diff] [blame] | 22 | |
| 23 | #include "config.h" |
darin | cfcabdb | 2006-04-02 02:41:24 +0000 | [diff] [blame] | 24 | #include "SVGImageElement.h" |
darin | b9481ed | 2006-03-20 02:57:59 +0000 | [diff] [blame] | 25 | |
darin | cfcabdb | 2006-04-02 02:41:24 +0000 | [diff] [blame] | 26 | #include "CSSPropertyNames.h" |
zimmermann@webkit.org | 1423ab5 | 2010-09-01 14:01:15 +0000 | [diff] [blame] | 27 | #include "RenderImageResource.h" |
darin | cfcabdb | 2006-04-02 02:41:24 +0000 | [diff] [blame] | 28 | #include "RenderSVGImage.h" |
zimmermann@webkit.org | 5bed57f | 2010-07-16 08:26:24 +0000 | [diff] [blame] | 29 | #include "RenderSVGResource.h" |
zimmermann@webkit.org | 42ab4a7 | 2010-12-03 11:14:32 +0000 | [diff] [blame] | 30 | #include "SVGNames.h" |
darin | cfcabdb | 2006-04-02 02:41:24 +0000 | [diff] [blame] | 31 | #include "XLinkNames.h" |
svillar@igalia.com | 55cc6d1 | 2014-05-08 10:59:17 +0000 | [diff] [blame] | 32 | #include <wtf/NeverDestroyed.h> |
darin | b9481ed | 2006-03-20 02:57:59 +0000 | [diff] [blame] | 33 | |
eseidel | 91574f4 | 2006-10-05 13:52:39 +0000 | [diff] [blame] | 34 | namespace WebCore { |
darin | b9481ed | 2006-03-20 02:57:59 +0000 | [diff] [blame] | 35 | |
zimmermann@webkit.org | ab0da70 | 2010-12-01 12:17:12 +0000 | [diff] [blame] | 36 | // Animated property definitions |
| 37 | DEFINE_ANIMATED_LENGTH(SVGImageElement, SVGNames::xAttr, X, x) |
| 38 | DEFINE_ANIMATED_LENGTH(SVGImageElement, SVGNames::yAttr, Y, y) |
| 39 | DEFINE_ANIMATED_LENGTH(SVGImageElement, SVGNames::widthAttr, Width, width) |
| 40 | DEFINE_ANIMATED_LENGTH(SVGImageElement, SVGNames::heightAttr, Height, height) |
zimmermann@webkit.org | e50a8b1 | 2010-12-03 09:44:21 +0000 | [diff] [blame] | 41 | DEFINE_ANIMATED_PRESERVEASPECTRATIO(SVGImageElement, SVGNames::preserveAspectRatioAttr, PreserveAspectRatio, preserveAspectRatio) |
zimmermann@webkit.org | 15de2b8 | 2010-12-02 15:19:03 +0000 | [diff] [blame] | 42 | DEFINE_ANIMATED_STRING(SVGImageElement, XLinkNames::hrefAttr, Href, href) |
zimmermann@webkit.org | e50a8b1 | 2010-12-03 09:44:21 +0000 | [diff] [blame] | 43 | DEFINE_ANIMATED_BOOLEAN(SVGImageElement, SVGNames::externalResourcesRequiredAttr, ExternalResourcesRequired, externalResourcesRequired) |
zimmermann@webkit.org | ab0da70 | 2010-12-01 12:17:12 +0000 | [diff] [blame] | 44 | |
zimmermann@webkit.org | a285742 | 2011-07-09 11:26:10 +0000 | [diff] [blame] | 45 | BEGIN_REGISTER_ANIMATED_PROPERTIES(SVGImageElement) |
| 46 | REGISTER_LOCAL_ANIMATED_PROPERTY(x) |
| 47 | REGISTER_LOCAL_ANIMATED_PROPERTY(y) |
| 48 | REGISTER_LOCAL_ANIMATED_PROPERTY(width) |
| 49 | REGISTER_LOCAL_ANIMATED_PROPERTY(height) |
| 50 | REGISTER_LOCAL_ANIMATED_PROPERTY(preserveAspectRatio) |
| 51 | REGISTER_LOCAL_ANIMATED_PROPERTY(href) |
| 52 | REGISTER_LOCAL_ANIMATED_PROPERTY(externalResourcesRequired) |
ch.dumez@sisa.samsung.com | a47b618 | 2013-06-28 15:58:03 +0000 | [diff] [blame] | 53 | REGISTER_PARENT_ANIMATED_PROPERTIES(SVGGraphicsElement) |
zimmermann@webkit.org | a285742 | 2011-07-09 11:26:10 +0000 | [diff] [blame] | 54 | END_REGISTER_ANIMATED_PROPERTIES |
| 55 | |
weinig@apple.com | 52e786e | 2013-09-15 18:06:06 +0000 | [diff] [blame] | 56 | inline SVGImageElement::SVGImageElement(const QualifiedName& tagName, Document& document) |
ch.dumez@sisa.samsung.com | a47b618 | 2013-06-28 15:58:03 +0000 | [diff] [blame] | 57 | : SVGGraphicsElement(tagName, document) |
zimmermann@webkit.org | 8fc4539 | 2010-01-27 01:51:39 +0000 | [diff] [blame] | 58 | , m_x(LengthModeWidth) |
| 59 | , m_y(LengthModeHeight) |
| 60 | , m_width(LengthModeWidth) |
| 61 | , m_height(LengthModeHeight) |
akling@apple.com | 68b7ee0 | 2014-02-05 18:25:26 +0000 | [diff] [blame] | 62 | , m_imageLoader(*this) |
darin | b9481ed | 2006-03-20 02:57:59 +0000 | [diff] [blame] | 63 | { |
zimmermann@webkit.org | a285742 | 2011-07-09 11:26:10 +0000 | [diff] [blame] | 64 | registerAnimatedPropertiesForSVGImageElement(); |
darin | b9481ed | 2006-03-20 02:57:59 +0000 | [diff] [blame] | 65 | } |
| 66 | |
weinig@apple.com | 1092357 | 2015-01-07 20:56:24 +0000 | [diff] [blame] | 67 | Ref<SVGImageElement> SVGImageElement::create(const QualifiedName& tagName, Document& document) |
darin@apple.com | 3cbd5cb | 2010-08-30 06:51:56 +0000 | [diff] [blame] | 68 | { |
weinig@apple.com | 1092357 | 2015-01-07 20:56:24 +0000 | [diff] [blame] | 69 | return adoptRef(*new SVGImageElement(tagName, document)); |
darin@apple.com | 3cbd5cb | 2010-08-30 06:51:56 +0000 | [diff] [blame] | 70 | } |
| 71 | |
commit-queue@webkit.org | 66ec293 | 2016-01-26 21:19:12 +0000 | [diff] [blame] | 72 | bool SVGImageElement::hasSingleSecurityOrigin() const |
| 73 | { |
| 74 | auto* renderer = downcast<RenderSVGImage>(this->renderer()); |
zalan@apple.com | ee2f451 | 2017-05-12 03:55:57 +0000 | [diff] [blame] | 75 | if (!renderer || !renderer->imageResource().cachedImage()) |
commit-queue@webkit.org | 66ec293 | 2016-01-26 21:19:12 +0000 | [diff] [blame] | 76 | return true; |
| 77 | auto* image = renderer->imageResource().cachedImage()->image(); |
| 78 | return !image || image->hasSingleSecurityOrigin(); |
| 79 | } |
| 80 | |
zimmermann@webkit.org | efff725 | 2011-05-21 06:15:40 +0000 | [diff] [blame] | 81 | bool SVGImageElement::isSupportedAttribute(const QualifiedName& attrName) |
| 82 | { |
svillar@igalia.com | 55cc6d1 | 2014-05-08 10:59:17 +0000 | [diff] [blame] | 83 | static NeverDestroyed<HashSet<QualifiedName>> supportedAttributes; |
| 84 | if (supportedAttributes.get().isEmpty()) { |
zimmermann@webkit.org | efff725 | 2011-05-21 06:15:40 +0000 | [diff] [blame] | 85 | SVGLangSpace::addSupportedAttributes(supportedAttributes); |
| 86 | SVGExternalResourcesRequired::addSupportedAttributes(supportedAttributes); |
| 87 | SVGURIReference::addSupportedAttributes(supportedAttributes); |
svillar@igalia.com | 55cc6d1 | 2014-05-08 10:59:17 +0000 | [diff] [blame] | 88 | supportedAttributes.get().add(SVGNames::xAttr); |
| 89 | supportedAttributes.get().add(SVGNames::yAttr); |
| 90 | supportedAttributes.get().add(SVGNames::widthAttr); |
| 91 | supportedAttributes.get().add(SVGNames::heightAttr); |
| 92 | supportedAttributes.get().add(SVGNames::preserveAspectRatioAttr); |
zimmermann@webkit.org | efff725 | 2011-05-21 06:15:40 +0000 | [diff] [blame] | 93 | } |
svillar@igalia.com | 55cc6d1 | 2014-05-08 10:59:17 +0000 | [diff] [blame] | 94 | return supportedAttributes.get().contains<SVGAttributeHashTranslator>(attrName); |
zimmermann@webkit.org | efff725 | 2011-05-21 06:15:40 +0000 | [diff] [blame] | 95 | } |
| 96 | |
akling@apple.com | 43e9d04 | 2012-11-18 16:55:06 +0000 | [diff] [blame] | 97 | void SVGImageElement::parseAttribute(const QualifiedName& name, const AtomicString& value) |
darin | b9481ed | 2006-03-20 02:57:59 +0000 | [diff] [blame] | 98 | { |
darin@apple.com | 74c44cc | 2015-03-29 20:40:15 +0000 | [diff] [blame] | 99 | if (name == SVGNames::preserveAspectRatioAttr) { |
commit-queue@webkit.org | c69191d | 2016-11-11 06:29:44 +0000 | [diff] [blame] | 100 | SVGPreserveAspectRatioValue preserveAspectRatio; |
akling@apple.com | 43e9d04 | 2012-11-18 16:55:06 +0000 | [diff] [blame] | 101 | preserveAspectRatio.parse(value); |
zimmermann@webkit.org | 330ba7c | 2012-03-28 13:14:20 +0000 | [diff] [blame] | 102 | setPreserveAspectRatioBaseValue(preserveAspectRatio); |
darin@apple.com | 74c44cc | 2015-03-29 20:40:15 +0000 | [diff] [blame] | 103 | return; |
| 104 | } |
| 105 | |
| 106 | SVGParsingError parseError = NoError; |
| 107 | |
| 108 | if (name == SVGNames::xAttr) |
weinig@apple.com | f786730 | 2016-11-14 21:18:41 +0000 | [diff] [blame] | 109 | setXBaseValue(SVGLengthValue::construct(LengthModeWidth, value, parseError)); |
darin@apple.com | 74c44cc | 2015-03-29 20:40:15 +0000 | [diff] [blame] | 110 | else if (name == SVGNames::yAttr) |
weinig@apple.com | f786730 | 2016-11-14 21:18:41 +0000 | [diff] [blame] | 111 | setYBaseValue(SVGLengthValue::construct(LengthModeHeight, value, parseError)); |
darin@apple.com | 74c44cc | 2015-03-29 20:40:15 +0000 | [diff] [blame] | 112 | else if (name == SVGNames::widthAttr) |
weinig@apple.com | f786730 | 2016-11-14 21:18:41 +0000 | [diff] [blame] | 113 | setWidthBaseValue(SVGLengthValue::construct(LengthModeWidth, value, parseError, ForbidNegativeLengths)); |
akling@apple.com | 43e9d04 | 2012-11-18 16:55:06 +0000 | [diff] [blame] | 114 | else if (name == SVGNames::heightAttr) |
weinig@apple.com | f786730 | 2016-11-14 21:18:41 +0000 | [diff] [blame] | 115 | setHeightBaseValue(SVGLengthValue::construct(LengthModeHeight, value, parseError, ForbidNegativeLengths)); |
commit-queue@webkit.org | 1a416c9 | 2011-08-04 22:42:30 +0000 | [diff] [blame] | 116 | |
akling@apple.com | 43e9d04 | 2012-11-18 16:55:06 +0000 | [diff] [blame] | 117 | reportAttributeParsingError(parseError, name, value); |
darin@apple.com | 74c44cc | 2015-03-29 20:40:15 +0000 | [diff] [blame] | 118 | |
| 119 | SVGGraphicsElement::parseAttribute(name, value); |
| 120 | SVGExternalResourcesRequired::parseAttribute(name, value); |
| 121 | SVGURIReference::parseAttribute(name, value); |
darin | b9481ed | 2006-03-20 02:57:59 +0000 | [diff] [blame] | 122 | } |
| 123 | |
zimmermann@webkit.org | 52b39ec | 2008-02-03 23:18:53 +0000 | [diff] [blame] | 124 | void SVGImageElement::svgAttributeChanged(const QualifiedName& attrName) |
zimmermann | 1dab192 | 2007-01-10 11:40:53 +0000 | [diff] [blame] | 125 | { |
zimmermann@webkit.org | efff725 | 2011-05-21 06:15:40 +0000 | [diff] [blame] | 126 | if (!isSupportedAttribute(attrName)) { |
ch.dumez@sisa.samsung.com | a47b618 | 2013-06-28 15:58:03 +0000 | [diff] [blame] | 127 | SVGGraphicsElement::svgAttributeChanged(attrName); |
zimmermann@webkit.org | efff725 | 2011-05-21 06:15:40 +0000 | [diff] [blame] | 128 | return; |
| 129 | } |
zimmermann@webkit.org | 52b39ec | 2008-02-03 23:18:53 +0000 | [diff] [blame] | 130 | |
bfulgham@apple.com | 984c94d | 2015-02-05 18:07:10 +0000 | [diff] [blame] | 131 | InstanceInvalidationGuard guard(*this); |
krit@webkit.org | 3b520fe | 2014-07-22 13:27:38 +0000 | [diff] [blame] | 132 | |
| 133 | if (attrName == SVGNames::widthAttr |
| 134 | || attrName == SVGNames::heightAttr) { |
| 135 | invalidateSVGPresentationAttributeStyle(); |
| 136 | return; |
| 137 | } |
| 138 | |
zimmermann@webkit.org | be3cd24 | 2010-07-05 14:32:20 +0000 | [diff] [blame] | 139 | bool isLengthAttribute = attrName == SVGNames::xAttr |
| 140 | || attrName == SVGNames::yAttr |
| 141 | || attrName == SVGNames::widthAttr |
| 142 | || attrName == SVGNames::heightAttr; |
| 143 | |
| 144 | if (isLengthAttribute) |
| 145 | updateRelativeLengthsInformation(); |
| 146 | |
zimmermann@webkit.org | efff725 | 2011-05-21 06:15:40 +0000 | [diff] [blame] | 147 | if (SVGURIReference::isKnownAttribute(attrName)) { |
| 148 | m_imageLoader.updateFromElementIgnoringPreviousError(); |
| 149 | return; |
| 150 | } |
| 151 | |
cdumez@apple.com | e162849 | 2014-10-18 00:21:40 +0000 | [diff] [blame] | 152 | auto* renderer = this->renderer(); |
zimmermann@webkit.org | 19f965a | 2010-04-13 10:35:19 +0000 | [diff] [blame] | 153 | if (!renderer) |
zimmermann@webkit.org | 52b39ec | 2008-02-03 23:18:53 +0000 | [diff] [blame] | 154 | return; |
| 155 | |
krit@webkit.org | 7e4b675 | 2010-10-15 20:02:34 +0000 | [diff] [blame] | 156 | if (isLengthAttribute) { |
cdumez@apple.com | e162849 | 2014-10-18 00:21:40 +0000 | [diff] [blame] | 157 | if (downcast<RenderSVGImage>(*renderer).updateImageViewport()) |
commit-queue@webkit.org | 48a9284 | 2013-12-16 19:23:24 +0000 | [diff] [blame] | 158 | RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer); |
krit@webkit.org | 7e4b675 | 2010-10-15 20:02:34 +0000 | [diff] [blame] | 159 | return; |
| 160 | } |
| 161 | |
| 162 | if (attrName == SVGNames::preserveAspectRatioAttr |
zimmermann@webkit.org | 19f965a | 2010-04-13 10:35:19 +0000 | [diff] [blame] | 163 | || SVGLangSpace::isKnownAttribute(attrName) |
zimmermann@webkit.org | efff725 | 2011-05-21 06:15:40 +0000 | [diff] [blame] | 164 | || SVGExternalResourcesRequired::isKnownAttribute(attrName)) { |
commit-queue@webkit.org | 48a9284 | 2013-12-16 19:23:24 +0000 | [diff] [blame] | 165 | RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer); |
zimmermann@webkit.org | efff725 | 2011-05-21 06:15:40 +0000 | [diff] [blame] | 166 | return; |
| 167 | } |
| 168 | |
| 169 | ASSERT_NOT_REACHED(); |
zimmermann | 1dab192 | 2007-01-10 11:40:53 +0000 | [diff] [blame] | 170 | } |
| 171 | |
antti@apple.com | 454418f | 2016-04-25 19:49:23 +0000 | [diff] [blame] | 172 | RenderPtr<RenderElement> SVGImageElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&) |
darin | b9481ed | 2006-03-20 02:57:59 +0000 | [diff] [blame] | 173 | { |
aestes@apple.com | 13aae08 | 2016-01-02 08:03:08 +0000 | [diff] [blame] | 174 | return createRenderer<RenderSVGImage>(*this, WTFMove(style)); |
darin | b9481ed | 2006-03-20 02:57:59 +0000 | [diff] [blame] | 175 | } |
| 176 | |
eseidel | eb0627e | 2006-08-15 06:12:39 +0000 | [diff] [blame] | 177 | bool SVGImageElement::haveLoadedRequiredResources() |
| 178 | { |
commit-queue@webkit.org | dbef5a5 | 2012-09-17 09:05:13 +0000 | [diff] [blame] | 179 | return !externalResourcesRequiredBaseValue() || !m_imageLoader.hasPendingActivity(); |
eseidel | eb0627e | 2006-08-15 06:12:39 +0000 | [diff] [blame] | 180 | } |
| 181 | |
antti@apple.com | 0f2ac5b | 2013-08-18 20:01:20 +0000 | [diff] [blame] | 182 | void SVGImageElement::didAttachRenderers() |
darin | b9481ed | 2006-03-20 02:57:59 +0000 | [diff] [blame] | 183 | { |
cdumez@apple.com | e162849 | 2014-10-18 00:21:40 +0000 | [diff] [blame] | 184 | if (auto* imageObj = downcast<RenderSVGImage>(renderer())) { |
zalan@apple.com | ee2f451 | 2017-05-12 03:55:57 +0000 | [diff] [blame] | 185 | if (imageObj->imageResource().cachedImage()) |
zimmermann@webkit.org | 953b744 | 2008-09-20 20:19:45 +0000 | [diff] [blame] | 186 | return; |
| 187 | |
akling@apple.com | dcf6c8f | 2014-01-20 17:27:08 +0000 | [diff] [blame] | 188 | imageObj->imageResource().setCachedImage(m_imageLoader.image()); |
zimmermann@webkit.org | 953b744 | 2008-09-20 20:19:45 +0000 | [diff] [blame] | 189 | } |
| 190 | } |
| 191 | |
akling@apple.com | 2e55ebf | 2013-10-04 18:51:32 +0000 | [diff] [blame] | 192 | Node::InsertionNotificationRequest SVGImageElement::insertedInto(ContainerNode& rootParent) |
zimmermann@webkit.org | 953b744 | 2008-09-20 20:19:45 +0000 | [diff] [blame] | 193 | { |
ch.dumez@sisa.samsung.com | a47b618 | 2013-06-28 15:58:03 +0000 | [diff] [blame] | 194 | SVGGraphicsElement::insertedInto(rootParent); |
cdumez@apple.com | 85cc262 | 2017-02-02 21:29:15 +0000 | [diff] [blame] | 195 | if (!rootParent.isConnected()) |
commit-queue@webkit.org | 9ea0080 | 2012-04-17 06:40:55 +0000 | [diff] [blame] | 196 | return InsertionDone; |
zimmermann@webkit.org | 953b744 | 2008-09-20 20:19:45 +0000 | [diff] [blame] | 197 | // Update image loader, as soon as we're living in the tree. |
| 198 | // We can only resolve base URIs properly, after that! |
| 199 | m_imageLoader.updateFromElement(); |
commit-queue@webkit.org | 9ea0080 | 2012-04-17 06:40:55 +0000 | [diff] [blame] | 200 | return InsertionDone; |
zimmermann@webkit.org | 953b744 | 2008-09-20 20:19:45 +0000 | [diff] [blame] | 201 | } |
| 202 | |
commit-queue@webkit.org | 25fd37e | 2013-03-13 21:16:50 +0000 | [diff] [blame] | 203 | const AtomicString& SVGImageElement::imageSourceURL() const |
zimmermann@webkit.org | 953b744 | 2008-09-20 20:19:45 +0000 | [diff] [blame] | 204 | { |
commit-queue@webkit.org | 25fd37e | 2013-03-13 21:16:50 +0000 | [diff] [blame] | 205 | return getAttribute(XLinkNames::hrefAttr); |
darin | b9481ed | 2006-03-20 02:57:59 +0000 | [diff] [blame] | 206 | } |
| 207 | |
darin@apple.com | 5ffbb5c | 2013-09-27 16:39:41 +0000 | [diff] [blame] | 208 | void SVGImageElement::addSubresourceAttributeURLs(ListHashSet<URL>& urls) const |
beidson@apple.com | a4fb38f | 2008-03-27 04:08:17 +0000 | [diff] [blame] | 209 | { |
ch.dumez@sisa.samsung.com | a47b618 | 2013-06-28 15:58:03 +0000 | [diff] [blame] | 210 | SVGGraphicsElement::addSubresourceAttributeURLs(urls); |
ddkilzer@apple.com | e9a5504 | 2008-12-23 00:00:14 +0000 | [diff] [blame] | 211 | |
akling@apple.com | 622b1a4 | 2013-08-30 14:30:12 +0000 | [diff] [blame] | 212 | addSubresourceURL(urls, document().completeURL(href())); |
beidson@apple.com | a4fb38f | 2008-03-27 04:08:17 +0000 | [diff] [blame] | 213 | } |
| 214 | |
rniwa@webkit.org | ca24089 | 2017-06-07 08:02:46 +0000 | [diff] [blame] | 215 | void SVGImageElement::didMoveToNewDocument(Document& oldDocument, Document& newDocument) |
darin@apple.com | 21e3cf9 | 2010-04-06 01:38:15 +0000 | [diff] [blame] | 216 | { |
commit-queue@webkit.org | 4b342506 | 2015-04-02 00:22:54 +0000 | [diff] [blame] | 217 | m_imageLoader.elementDidMoveToNewDocument(); |
rniwa@webkit.org | ca24089 | 2017-06-07 08:02:46 +0000 | [diff] [blame] | 218 | SVGGraphicsElement::didMoveToNewDocument(oldDocument, newDocument); |
darin@apple.com | 21e3cf9 | 2010-04-06 01:38:15 +0000 | [diff] [blame] | 219 | } |
| 220 | |
eseidel | 91574f4 | 2006-10-05 13:52:39 +0000 | [diff] [blame] | 221 | } |