| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) |
| 3 * (C) 2000 Antti Koivisto (koivisto@kde.org) | 3 * (C) 2000 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
| 5 * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 5 * Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 6 * | 6 * |
| 7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
| 8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
| 9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
| 10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 * | 21 * |
| 22 */ | 22 */ |
| 23 | 23 |
| 24 #include "config.h" | 24 #include "config.h" |
| 25 #include "core/style/StyleFetchedImage.h" | 25 #include "core/style/StyleFetchedImage.h" |
| 26 | 26 |
| 27 #include "core/css/CSSImageValue.h" | 27 #include "core/css/CSSImageValue.h" |
| 28 #include "core/fetch/ImageResource.h" | 28 #include "core/fetch/ImageResource.h" |
| 29 #include "core/layout/LayoutObject.h" | 29 #include "core/layout/LayoutObject.h" |
| 30 #include "core/svg/graphics/SVGImage.h" | 30 #include "core/svg/graphics/SVGImage.h" |
| 31 #include "core/svg/graphics/SVGImageForContainer.h" |
| 31 | 32 |
| 32 namespace blink { | 33 namespace blink { |
| 33 | 34 |
| 34 StyleFetchedImage::StyleFetchedImage(ImageResource* image, Document* document) | 35 StyleFetchedImage::StyleFetchedImage(ImageResource* image, Document* document, c
onst KURL& urlWithFragment) |
| 35 : m_image(image) | 36 : m_image(image) |
| 36 , m_document(document) | 37 , m_document(document) |
| 38 , m_urlWithFragment(urlWithFragment) |
| 37 { | 39 { |
| 38 m_isImageResource = true; | 40 m_isImageResource = true; |
| 39 m_image->addClient(this); | 41 m_image->addClient(this); |
| 40 } | 42 } |
| 41 | 43 |
| 42 StyleFetchedImage::~StyleFetchedImage() | 44 StyleFetchedImage::~StyleFetchedImage() |
| 43 { | 45 { |
| 44 m_image->removeClient(this); | 46 m_image->removeClient(this); |
| 45 } | 47 } |
| 46 | 48 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 void StyleFetchedImage::computeIntrinsicDimensions(const LayoutObject*, Length&
intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio) | 99 void StyleFetchedImage::computeIntrinsicDimensions(const LayoutObject*, Length&
intrinsicWidth, Length& intrinsicHeight, FloatSize& intrinsicRatio) |
| 98 { | 100 { |
| 99 m_image->computeIntrinsicDimensions(intrinsicWidth, intrinsicHeight, intrins
icRatio); | 101 m_image->computeIntrinsicDimensions(intrinsicWidth, intrinsicHeight, intrins
icRatio); |
| 100 } | 102 } |
| 101 | 103 |
| 102 bool StyleFetchedImage::usesImageContainerSize() const | 104 bool StyleFetchedImage::usesImageContainerSize() const |
| 103 { | 105 { |
| 104 return m_image->usesImageContainerSize(); | 106 return m_image->usesImageContainerSize(); |
| 105 } | 107 } |
| 106 | 108 |
| 107 void StyleFetchedImage::setContainerSizeForLayoutObject(const LayoutObject* layo
utObject, const IntSize& imageContainerSize, float imageContainerZoomFactor) | |
| 108 { | |
| 109 m_image->setContainerSizeForLayoutObject(layoutObject, imageContainerSize, i
mageContainerZoomFactor); | |
| 110 } | |
| 111 | |
| 112 void StyleFetchedImage::addClient(LayoutObject* layoutObject) | 109 void StyleFetchedImage::addClient(LayoutObject* layoutObject) |
| 113 { | 110 { |
| 114 m_image->addClient(layoutObject); | 111 m_image->addClient(layoutObject); |
| 115 } | 112 } |
| 116 | 113 |
| 117 void StyleFetchedImage::removeClient(LayoutObject* layoutObject) | 114 void StyleFetchedImage::removeClient(LayoutObject* layoutObject) |
| 118 { | 115 { |
| 119 m_image->removeClient(layoutObject); | 116 m_image->removeClient(layoutObject); |
| 120 } | 117 } |
| 121 | 118 |
| 122 void StyleFetchedImage::notifyFinished(Resource* resource) | 119 void StyleFetchedImage::notifyFinished(Resource* resource) |
| 123 { | 120 { |
| 124 if (m_document && m_image && m_image->image() && m_image->image()->isSVGImag
e()) | 121 if (m_document && m_image && m_image->image() && m_image->image()->isSVGImag
e()) |
| 125 toSVGImage(m_image->image())->updateUseCounters(*m_document); | 122 toSVGImage(m_image->image())->updateUseCounters(*m_document); |
| 126 // Oilpan: do not prolong the Document's lifetime. | 123 // Oilpan: do not prolong the Document's lifetime. |
| 127 m_document.clear(); | 124 m_document.clear(); |
| 128 } | 125 } |
| 129 | 126 |
| 130 PassRefPtr<Image> StyleFetchedImage::image(const LayoutObject* layoutObject, con
st IntSize&) const | 127 PassRefPtr<Image> StyleFetchedImage::image(const LayoutObject*, const IntSize& c
ontainerSize, float zoom, const KURL& url) const |
| 131 { | 128 { |
| 132 return m_image->imageForLayoutObject(layoutObject); | 129 RefPtr<Image> image = m_image->image(); |
| 130 if (image->isSVGImage()) |
| 131 return SVGImageForContainer::create(toSVGImage(image.get()), containerSi
ze, zoom, url); |
| 132 return image; |
| 133 } | 133 } |
| 134 | 134 |
| 135 bool StyleFetchedImage::knownToBeOpaque(const LayoutObject* layoutObject) const | 135 bool StyleFetchedImage::knownToBeOpaque(const LayoutObject* layoutObject) const |
| 136 { | 136 { |
| 137 return m_image->currentFrameKnownToBeOpaque(layoutObject); | 137 return m_image->currentFrameKnownToBeOpaque(layoutObject); |
| 138 } | 138 } |
| 139 | 139 |
| 140 DEFINE_TRACE(StyleFetchedImage) | 140 DEFINE_TRACE(StyleFetchedImage) |
| 141 { | 141 { |
| 142 visitor->trace(m_document); | 142 visitor->trace(m_document); |
| 143 StyleImage::trace(visitor); | 143 StyleImage::trace(visitor); |
| 144 } | 144 } |
| 145 | 145 |
| 146 } | 146 } |
| OLD | NEW |