Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(307)

Side by Side Diff: Source/core/rendering/RenderImageResource.cpp

Issue 20473002: Update RenderImage when the image src is cleared (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll <knoll@kde.org> 2 * Copyright (C) 1999 Lars Knoll <knoll@kde.org>
3 * Copyright (C) 1999 Antti Koivisto <koivisto@kde.org> 3 * Copyright (C) 1999 Antti Koivisto <koivisto@kde.org>
4 * Copyright (C) 2000 Dirk Mueller <mueller@kde.org> 4 * Copyright (C) 2000 Dirk Mueller <mueller@kde.org>
5 * Copyright (C) 2006 Allan Sandfeld Jensen <kde@carewolf.com> 5 * Copyright (C) 2006 Allan Sandfeld Jensen <kde@carewolf.com>
6 * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com> 6 * Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010 Apple Inc. All rights reserved. 7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010 Apple Inc. All rights reserved.
8 * Copyright (C) 2010 Google Inc. All rights reserved. 8 * Copyright (C) 2010 Google Inc. All rights reserved.
9 * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com> 9 * Copyright (C) 2010 Patrick Gansterer <paroga@paroga.com>
10 * 10 *
(...skipping 12 matching lines...) Expand all
23 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 23 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
24 * Boston, MA 02110-1301, USA. 24 * Boston, MA 02110-1301, USA.
25 * 25 *
26 */ 26 */
27 27
28 #include "config.h" 28 #include "config.h"
29 #include "core/rendering/RenderImageResource.h" 29 #include "core/rendering/RenderImageResource.h"
30 30
31 #include "core/loader/cache/CachedImage.h" 31 #include "core/loader/cache/CachedImage.h"
32 #include "core/platform/graphics/Image.h" 32 #include "core/platform/graphics/Image.h"
33 #include "core/rendering/RenderImage.h"
33 #include "core/rendering/RenderObject.h" 34 #include "core/rendering/RenderObject.h"
34 35
35 namespace WebCore { 36 namespace WebCore {
36 37
37 RenderImageResource::RenderImageResource() 38 RenderImageResource::RenderImageResource()
38 : m_renderer(0) 39 : m_renderer(0)
39 , m_cachedImage(0) 40 , m_cachedImage(0)
40 { 41 {
41 } 42 }
42 43
(...skipping 23 matching lines...) Expand all
66 if (m_cachedImage == newImage) 67 if (m_cachedImage == newImage)
67 return; 68 return;
68 69
69 if (m_cachedImage) 70 if (m_cachedImage)
70 m_cachedImage->removeClient(m_renderer); 71 m_cachedImage->removeClient(m_renderer);
71 m_cachedImage = newImage; 72 m_cachedImage = newImage;
72 if (m_cachedImage) { 73 if (m_cachedImage) {
73 m_cachedImage->addClient(m_renderer); 74 m_cachedImage->addClient(m_renderer);
74 if (m_cachedImage->errorOccurred()) 75 if (m_cachedImage->errorOccurred())
75 m_renderer->imageChanged(m_cachedImage.get()); 76 m_renderer->imageChanged(m_cachedImage.get());
77 } else if (m_renderer->isImage() && m_renderer->isRenderImage()) {
esprehn 2013/07/26 03:18:17 Checking isRenderImage() should be enough here.
78 // This is the case where the URL is empty.
79 // Clears old image content off the screen.
80 RenderImage* renderImage = toRenderImage(m_renderer);
81 renderImage->setImageSizeForAltText();
82 renderImage->setNeedsLayoutAndPrefWidthsRecalc();
83 renderImage->scheduleRelayout();
esprehn 2013/07/26 03:18:17 You don't manually need to call scheduleRelayout()
76 } 84 }
77 } 85 }
78 86
79 void RenderImageResource::resetAnimation() 87 void RenderImageResource::resetAnimation()
80 { 88 {
81 ASSERT(m_renderer); 89 ASSERT(m_renderer);
82 90
83 if (!m_cachedImage) 91 if (!m_cachedImage)
84 return; 92 return;
85 93
86 image()->resetAnimation(); 94 image()->resetAnimation();
87 95
88 if (!m_renderer->needsLayout()) 96 if (!m_renderer->needsLayout())
89 m_renderer->repaint(); 97 m_renderer->repaint();
90 } 98 }
91 99
92 void RenderImageResource::setContainerSizeForRenderer(const IntSize& imageContai nerSize) 100 void RenderImageResource::setContainerSizeForRenderer(const IntSize& imageContai nerSize)
93 { 101 {
94 ASSERT(m_renderer); 102 ASSERT(m_renderer);
95 if (m_cachedImage) 103 if (m_cachedImage)
96 m_cachedImage->setContainerSizeForRenderer(m_renderer, imageContainerSiz e, m_renderer->style()->effectiveZoom()); 104 m_cachedImage->setContainerSizeForRenderer(m_renderer, imageContainerSiz e, m_renderer->style()->effectiveZoom());
97 } 105 }
98 106
99 Image* RenderImageResource::nullImage() 107 Image* RenderImageResource::nullImage()
100 { 108 {
101 return Image::nullImage(); 109 return Image::nullImage();
102 } 110 }
103 111
104 } // namespace WebCore 112 } // namespace WebCore
OLDNEW
« Source/core/loader/ImageLoader.cpp ('K') | « Source/core/loader/ImageLoader.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698