| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
| 5 * (C) 2006 Allan Sandfeld Jensen (kde@carewolf.com) | 5 * (C) 2006 Allan Sandfeld Jensen (kde@carewolf.com) |
| 6 * (C) 2006 Samuel Weinig (sam.weinig@gmail.com) | 6 * (C) 2006 Samuel Weinig (sam.weinig@gmail.com) |
| 7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. |
| 8 * Copyright (C) 2010 Google Inc. All rights reserved. | 8 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 9 * Copyright (C) Research In Motion Limited 2011-2012. All rights reserved. | 9 * Copyright (C) Research In Motion Limited 2011-2012. All rights reserved. |
| 10 * | 10 * |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 #include "platform/graphics/GraphicsContextStateSaver.h" | 50 #include "platform/graphics/GraphicsContextStateSaver.h" |
| 51 | 51 |
| 52 using namespace std; | 52 using namespace std; |
| 53 | 53 |
| 54 namespace WebCore { | 54 namespace WebCore { |
| 55 | 55 |
| 56 using namespace HTMLNames; | 56 using namespace HTMLNames; |
| 57 | 57 |
| 58 RenderImage::RenderImage(Element* element) | 58 RenderImage::RenderImage(Element* element) |
| 59 : RenderReplaced(element, IntSize()) | 59 : RenderReplaced(element, IntSize()) |
| 60 , m_needsToSetSizeForAltText(false) | |
| 61 , m_didIncrementVisuallyNonEmptyPixelCount(false) | 60 , m_didIncrementVisuallyNonEmptyPixelCount(false) |
| 62 , m_isGeneratedContent(false) | 61 , m_isGeneratedContent(false) |
| 63 , m_imageDevicePixelRatio(1.0f) | 62 , m_imageDevicePixelRatio(1.0f) |
| 64 { | 63 { |
| 65 updateAltText(); | 64 updateAltText(); |
| 66 } | 65 } |
| 67 | 66 |
| 68 RenderImage* RenderImage::createAnonymous(Document* document) | 67 RenderImage* RenderImage::createAnonymous(Document* document) |
| 69 { | 68 { |
| 70 RenderImage* image = new RenderImage(0); | 69 RenderImage* image = new RenderImage(0); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 if (imageSize == intrinsicSize()) | 136 if (imageSize == intrinsicSize()) |
| 138 return false; | 137 return false; |
| 139 | 138 |
| 140 setIntrinsicSize(imageSize); | 139 setIntrinsicSize(imageSize); |
| 141 return true; | 140 return true; |
| 142 } | 141 } |
| 143 | 142 |
| 144 void RenderImage::styleDidChange(StyleDifference diff, const RenderStyle* oldSty
le) | 143 void RenderImage::styleDidChange(StyleDifference diff, const RenderStyle* oldSty
le) |
| 145 { | 144 { |
| 146 RenderReplaced::styleDidChange(diff, oldStyle); | 145 RenderReplaced::styleDidChange(diff, oldStyle); |
| 147 if (m_needsToSetSizeForAltText) { | |
| 148 if (!m_altText.isEmpty() && setImageSizeForAltText(m_imageResource->cach
edImage())) | |
| 149 imageDimensionsChanged(true /* imageSizeChanged */); | |
| 150 m_needsToSetSizeForAltText = false; | |
| 151 } | |
| 152 } | 146 } |
| 153 | 147 |
| 154 void RenderImage::imageChanged(WrappedImagePtr newImage, const IntRect* rect) | 148 void RenderImage::imageChanged(WrappedImagePtr newImage, const IntRect* rect) |
| 155 { | 149 { |
| 156 if (documentBeingDestroyed()) | 150 if (documentBeingDestroyed()) |
| 157 return; | 151 return; |
| 158 | 152 |
| 159 if (hasBoxDecorations() || hasMask()) | 153 if (hasBoxDecorations() || hasMask()) |
| 160 RenderReplaced::imageChanged(newImage, rect); | 154 RenderReplaced::imageChanged(newImage, rect); |
| 161 | 155 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 176 | 170 |
| 177 if (!m_didIncrementVisuallyNonEmptyPixelCount) { | 171 if (!m_didIncrementVisuallyNonEmptyPixelCount) { |
| 178 // At a zoom level of 1 the image is guaranteed to have an integer size. | 172 // At a zoom level of 1 the image is guaranteed to have an integer size. |
| 179 view()->frameView()->incrementVisuallyNonEmptyPixelCount(flooredIntSize(
m_imageResource->imageSize(1.0f))); | 173 view()->frameView()->incrementVisuallyNonEmptyPixelCount(flooredIntSize(
m_imageResource->imageSize(1.0f))); |
| 180 m_didIncrementVisuallyNonEmptyPixelCount = true; | 174 m_didIncrementVisuallyNonEmptyPixelCount = true; |
| 181 } | 175 } |
| 182 | 176 |
| 183 bool imageSizeChanged = false; | 177 bool imageSizeChanged = false; |
| 184 | 178 |
| 185 // Set image dimensions, taking into account the size of the alt text. | 179 // Set image dimensions, taking into account the size of the alt text. |
| 186 if (m_imageResource->errorOccurred() || !newImage) { | 180 if (m_imageResource->errorOccurred() || !newImage) |
| 187 if (!m_altText.isEmpty() && document().hasPendingStyleRecalc()) { | |
| 188 ASSERT(node()); | |
| 189 if (node()) { | |
| 190 m_needsToSetSizeForAltText = true; | |
| 191 node()->setNeedsStyleRecalc(LocalStyleChange, StyleChangeFromRen
derer); | |
| 192 } | |
| 193 return; | |
| 194 } | |
| 195 imageSizeChanged = setImageSizeForAltText(m_imageResource->cachedImage()
); | 181 imageSizeChanged = setImageSizeForAltText(m_imageResource->cachedImage()
); |
| 196 } | |
| 197 | 182 |
| 198 imageDimensionsChanged(imageSizeChanged, rect); | 183 imageDimensionsChanged(imageSizeChanged, rect); |
| 199 } | 184 } |
| 200 | 185 |
| 201 bool RenderImage::updateIntrinsicSizeIfNeeded(const LayoutSize& newSize, bool im
ageSizeChanged) | 186 bool RenderImage::updateIntrinsicSizeIfNeeded(const LayoutSize& newSize, bool im
ageSizeChanged) |
| 202 { | 187 { |
| 203 if (newSize == intrinsicSize() && !imageSizeChanged) | 188 if (newSize == intrinsicSize() && !imageSizeChanged) |
| 204 return false; | 189 return false; |
| 205 if (m_imageResource->errorOccurred() || !m_imageResource->hasImage()) | 190 if (m_imageResource->errorOccurred() || !m_imageResource->hasImage()) |
| 206 return imageSizeChanged; | 191 return imageSizeChanged; |
| (...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 646 return 0; | 631 return 0; |
| 647 | 632 |
| 648 ImageResource* cachedImage = m_imageResource->cachedImage(); | 633 ImageResource* cachedImage = m_imageResource->cachedImage(); |
| 649 if (cachedImage && cachedImage->image() && cachedImage->image()->isSVGImage(
)) | 634 if (cachedImage && cachedImage->image() && cachedImage->image()->isSVGImage(
)) |
| 650 return toSVGImage(cachedImage->image())->embeddedContentBox(); | 635 return toSVGImage(cachedImage->image())->embeddedContentBox(); |
| 651 | 636 |
| 652 return 0; | 637 return 0; |
| 653 } | 638 } |
| 654 | 639 |
| 655 } // namespace WebCore | 640 } // namespace WebCore |
| OLD | NEW |