| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> |
| 3 * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org> |
| 4 * Copyright (C) 2010 Dirk Schulze <krit@webkit.org> | 4 * Copyright (C) 2010 Dirk Schulze <krit@webkit.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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 FetchRequest request(ResourceRequest(ownerDocument()->completeURL(hrefString
())), localName()); | 84 FetchRequest request(ResourceRequest(ownerDocument()->completeURL(hrefString
())), localName()); |
| 85 m_cachedImage = ImageResource::fetch(request, document().fetcher()); | 85 m_cachedImage = ImageResource::fetch(request, document().fetcher()); |
| 86 | 86 |
| 87 if (m_cachedImage) | 87 if (m_cachedImage) |
| 88 m_cachedImage->addClient(this); | 88 m_cachedImage->addClient(this); |
| 89 } | 89 } |
| 90 | 90 |
| 91 void SVGFEImageElement::buildPendingResource() | 91 void SVGFEImageElement::buildPendingResource() |
| 92 { | 92 { |
| 93 clearResourceReferences(); | 93 clearResourceReferences(); |
| 94 if (!inDocument()) | 94 if (!inShadowIncludingDocument()) |
| 95 return; | 95 return; |
| 96 | 96 |
| 97 AtomicString id; | 97 AtomicString id; |
| 98 Element* target = SVGURIReference::targetElementFromIRIString(hrefString(),
treeScope(), &id); | 98 Element* target = SVGURIReference::targetElementFromIRIString(hrefString(),
treeScope(), &id); |
| 99 if (!target) { | 99 if (!target) { |
| 100 if (id.isEmpty()) { | 100 if (id.isEmpty()) { |
| 101 fetchImageResource(); | 101 fetchImageResource(); |
| 102 } else { | 102 } else { |
| 103 document().accessSVGExtensions().addPendingResource(id, this); | 103 document().accessSVGExtensions().addPendingResource(id, this); |
| 104 ASSERT(hasPendingResources()); | 104 ASSERT(hasPendingResources()); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 132 Node::InsertionNotificationRequest SVGFEImageElement::insertedInto(ContainerNode
* rootParent) | 132 Node::InsertionNotificationRequest SVGFEImageElement::insertedInto(ContainerNode
* rootParent) |
| 133 { | 133 { |
| 134 SVGFilterPrimitiveStandardAttributes::insertedInto(rootParent); | 134 SVGFilterPrimitiveStandardAttributes::insertedInto(rootParent); |
| 135 buildPendingResource(); | 135 buildPendingResource(); |
| 136 return InsertionDone; | 136 return InsertionDone; |
| 137 } | 137 } |
| 138 | 138 |
| 139 void SVGFEImageElement::removedFrom(ContainerNode* rootParent) | 139 void SVGFEImageElement::removedFrom(ContainerNode* rootParent) |
| 140 { | 140 { |
| 141 SVGFilterPrimitiveStandardAttributes::removedFrom(rootParent); | 141 SVGFilterPrimitiveStandardAttributes::removedFrom(rootParent); |
| 142 if (rootParent->inDocument()) | 142 if (rootParent->inShadowIncludingDocument()) |
| 143 clearResourceReferences(); | 143 clearResourceReferences(); |
| 144 } | 144 } |
| 145 | 145 |
| 146 void SVGFEImageElement::notifyFinished(Resource*) | 146 void SVGFEImageElement::notifyFinished(Resource*) |
| 147 { | 147 { |
| 148 if (!inDocument()) | 148 if (!inShadowIncludingDocument()) |
| 149 return; | 149 return; |
| 150 | 150 |
| 151 Element* parent = parentElement(); | 151 Element* parent = parentElement(); |
| 152 if (!parent || !isSVGFilterElement(parent) || !parent->layoutObject()) | 152 if (!parent || !isSVGFilterElement(parent) || !parent->layoutObject()) |
| 153 return; | 153 return; |
| 154 | 154 |
| 155 if (LayoutObject* layoutObject = this->layoutObject()) | 155 if (LayoutObject* layoutObject = this->layoutObject()) |
| 156 markForLayoutAndParentResourceInvalidation(layoutObject); | 156 markForLayoutAndParentResourceInvalidation(layoutObject); |
| 157 } | 157 } |
| 158 | 158 |
| 159 FilterEffect* SVGFEImageElement::build(SVGFilterBuilder*, Filter* filter) | 159 FilterEffect* SVGFEImageElement::build(SVGFilterBuilder*, Filter* filter) |
| 160 { | 160 { |
| 161 if (m_cachedImage) { | 161 if (m_cachedImage) { |
| 162 // Don't use the broken image icon on image loading errors. | 162 // Don't use the broken image icon on image loading errors. |
| 163 RefPtr<Image> image = m_cachedImage->errorOccurred() ? | 163 RefPtr<Image> image = m_cachedImage->errorOccurred() ? |
| 164 nullptr : m_cachedImage->getImage(); | 164 nullptr : m_cachedImage->getImage(); |
| 165 return FEImage::createWithImage(filter, image, m_preserveAspectRatio->cu
rrentValue()); | 165 return FEImage::createWithImage(filter, image, m_preserveAspectRatio->cu
rrentValue()); |
| 166 } | 166 } |
| 167 | 167 |
| 168 return FEImage::createWithIRIReference(filter, treeScope(), hrefString(), m_
preserveAspectRatio->currentValue()); | 168 return FEImage::createWithIRIReference(filter, treeScope(), hrefString(), m_
preserveAspectRatio->currentValue()); |
| 169 } | 169 } |
| 170 | 170 |
| 171 } // namespace blink | 171 } // namespace blink |
| OLD | NEW |