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 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
152 { | 152 { |
153 if (documentBeingDestroyed()) | 153 if (documentBeingDestroyed()) |
154 return; | 154 return; |
155 | 155 |
156 if (hasBoxDecorations() || hasMask()) | 156 if (hasBoxDecorations() || hasMask()) |
157 RenderReplaced::imageChanged(newImage, rect); | 157 RenderReplaced::imageChanged(newImage, rect); |
158 | 158 |
159 if (!m_imageResource) | 159 if (!m_imageResource) |
160 return; | 160 return; |
161 | 161 |
162 if (newImage != m_imageResource->imagePtr() || !newImage) | 162 if (newImage != m_imageResource->imagePtr()) |
163 return; | 163 return; |
164 | 164 |
165 if (!m_didIncrementVisuallyNonEmptyPixelCount) { | 165 if (!m_didIncrementVisuallyNonEmptyPixelCount) { |
166 // At a zoom level of 1 the image is guaranteed to have an integer size. | 166 // At a zoom level of 1 the image is guaranteed to have an integer size. |
167 view()->frameView()->incrementVisuallyNonEmptyPixelCount(flooredIntSize( m_imageResource->imageSize(1.0f))); | 167 view()->frameView()->incrementVisuallyNonEmptyPixelCount(flooredIntSize( m_imageResource->imageSize(1.0f))); |
168 m_didIncrementVisuallyNonEmptyPixelCount = true; | 168 m_didIncrementVisuallyNonEmptyPixelCount = true; |
169 } | 169 } |
170 | 170 |
171 bool imageSizeChanged = false; | 171 bool imageSizeChanged = false; |
172 | 172 |
173 // Set image dimensions, taking into account the size of the alt text. | 173 // Set image dimensions, taking into account the size of the alt text. |
174 if (m_imageResource->errorOccurred()) { | 174 if (m_imageResource->errorOccurred() || !newImage) { |
175 if (!m_altText.isEmpty() && document()->hasPendingStyleRecalc()) { | 175 if (!m_altText.isEmpty() && document()->hasPendingStyleRecalc()) { |
176 ASSERT(node()); | 176 ASSERT(node()); |
177 if (node()) { | 177 if (node()) { |
178 m_needsToSetSizeForAltText = true; | 178 m_needsToSetSizeForAltText = true; |
179 node()->setNeedsStyleRecalc(LocalStyleChange, StyleChangeFromRen derer); | 179 node()->setNeedsStyleRecalc(LocalStyleChange, StyleChangeFromRen derer); |
180 } | 180 } |
181 return; | 181 return; |
182 } | 182 } |
183 imageSizeChanged = setImageSizeForAltText(m_imageResource->cachedImage() ); | 183 imageSizeChanged = setImageSizeForAltText(m_imageResource->cachedImage() ); |
184 } | 184 } |
185 | 185 |
186 imageDimensionsChanged(imageSizeChanged, rect); | 186 imageDimensionsChanged(imageSizeChanged, rect); |
187 } | 187 } |
188 | 188 |
189 bool RenderImage::updateIntrinsicSizeIfNeeded(const LayoutSize& newSize, bool im ageSizeChanged) | 189 bool RenderImage::updateIntrinsicSizeIfNeeded(const LayoutSize& newSize, bool im ageSizeChanged) |
190 { | 190 { |
191 if (newSize == intrinsicSize() && !imageSizeChanged) | 191 if (newSize == intrinsicSize() && !imageSizeChanged) |
192 return false; | 192 return false; |
193 if (m_imageResource->errorOccurred()) | 193 if (m_imageResource->errorOccurred() || !m_imageResource->hasImage()) |
spartha
2013/07/31 09:58:07
This change was missed as the test case was defici
| |
194 return imageSizeChanged; | 194 return imageSizeChanged; |
195 setIntrinsicSize(newSize); | 195 setIntrinsicSize(newSize); |
196 return true; | 196 return true; |
197 } | 197 } |
198 | 198 |
199 void RenderImage::imageDimensionsChanged(bool imageSizeChanged, const IntRect* r ect) | 199 void RenderImage::imageDimensionsChanged(bool imageSizeChanged, const IntRect* r ect) |
200 { | 200 { |
201 bool intrinsicSizeChanged = updateIntrinsicSizeIfNeeded(m_imageResource->ima geSize(style()->effectiveZoom()), imageSizeChanged); | 201 bool intrinsicSizeChanged = updateIntrinsicSizeIfNeeded(m_imageResource->ima geSize(style()->effectiveZoom()), imageSizeChanged); |
202 | 202 |
203 // In the case of generated image content using :before/:after/content, we m ight not be | 203 // In the case of generated image content using :before/:after/content, we m ight not be |
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
586 return 0; | 586 return 0; |
587 | 587 |
588 CachedImage* cachedImage = m_imageResource->cachedImage(); | 588 CachedImage* cachedImage = m_imageResource->cachedImage(); |
589 if (cachedImage && cachedImage->image() && cachedImage->image()->isSVGImage( )) | 589 if (cachedImage && cachedImage->image() && cachedImage->image()->isSVGImage( )) |
590 return static_cast<SVGImage*>(cachedImage->image())->embeddedContentBox( ); | 590 return static_cast<SVGImage*>(cachedImage->image())->embeddedContentBox( ); |
591 | 591 |
592 return 0; | 592 return 0; |
593 } | 593 } |
594 | 594 |
595 } // namespace WebCore | 595 } // namespace WebCore |
OLD | NEW |