Chromium Code Reviews| 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 |