| OLD | NEW |
| 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 18 matching lines...) Expand all Loading... |
| 29 | 29 |
| 30 #include "core/dom/Element.h" | 30 #include "core/dom/Element.h" |
| 31 #include "core/layout/LayoutImage.h" | 31 #include "core/layout/LayoutImage.h" |
| 32 #include "core/svg/graphics/SVGImageForContainer.h" | 32 #include "core/svg/graphics/SVGImageForContainer.h" |
| 33 | 33 |
| 34 namespace blink { | 34 namespace blink { |
| 35 | 35 |
| 36 LayoutImageResource::LayoutImageResource() | 36 LayoutImageResource::LayoutImageResource() |
| 37 : m_layoutObject(nullptr) | 37 : m_layoutObject(nullptr) |
| 38 , m_cachedImage(nullptr) | 38 , m_cachedImage(nullptr) |
| 39 , m_client(nullptr) | |
| 40 { | 39 { |
| 41 } | 40 } |
| 42 | 41 |
| 43 LayoutImageResource::~LayoutImageResource() | 42 LayoutImageResource::~LayoutImageResource() |
| 44 { | 43 { |
| 45 } | 44 } |
| 46 | 45 |
| 47 void LayoutImageResource::initialize(LayoutObject* layoutObject, ResourceClient*
client) | 46 void LayoutImageResource::initialize(LayoutObject* layoutObject) |
| 48 { | 47 { |
| 49 ASSERT(!m_layoutObject); | 48 ASSERT(!m_layoutObject); |
| 50 ASSERT(layoutObject); | 49 ASSERT(layoutObject); |
| 51 m_layoutObject = layoutObject; | 50 m_layoutObject = layoutObject; |
| 52 m_client = client; | |
| 53 } | 51 } |
| 54 | 52 |
| 55 void LayoutImageResource::shutdown() | 53 void LayoutImageResource::shutdown() |
| 56 { | 54 { |
| 57 ASSERT(m_layoutObject); | 55 ASSERT(m_layoutObject); |
| 58 | 56 |
| 59 if (!m_cachedImage) | 57 if (!m_cachedImage) |
| 60 return; | 58 return; |
| 61 if (m_client) | |
| 62 m_cachedImage->removeClient(m_client); | |
| 63 m_cachedImage->removeObserver(m_layoutObject); | 59 m_cachedImage->removeObserver(m_layoutObject); |
| 64 } | 60 } |
| 65 | 61 |
| 66 void LayoutImageResource::setImageResource(ImageResource* newImage) | 62 void LayoutImageResource::setImageResource(ImageResource* newImage) |
| 67 { | 63 { |
| 68 ASSERT(m_layoutObject); | 64 ASSERT(m_layoutObject); |
| 69 | 65 |
| 70 if (m_cachedImage == newImage) | 66 if (m_cachedImage == newImage) |
| 71 return; | 67 return; |
| 72 | 68 |
| 73 if (m_cachedImage) { | 69 if (m_cachedImage) { |
| 74 if (m_client) | |
| 75 m_cachedImage->removeClient(m_client); | |
| 76 m_cachedImage->removeObserver(m_layoutObject); | 70 m_cachedImage->removeObserver(m_layoutObject); |
| 77 } | 71 } |
| 78 m_cachedImage = newImage; | 72 m_cachedImage = newImage; |
| 79 if (m_cachedImage) { | 73 if (m_cachedImage) { |
| 80 if (m_client) | |
| 81 m_cachedImage->addClient(m_client); | |
| 82 m_cachedImage->addObserver(m_layoutObject); | 74 m_cachedImage->addObserver(m_layoutObject); |
| 83 if (m_cachedImage->errorOccurred()) | 75 if (m_cachedImage->errorOccurred()) |
| 84 m_layoutObject->imageChanged(m_cachedImage.get()); | 76 m_layoutObject->imageChanged(false, m_cachedImage.get()); |
| 85 } else { | 77 } else { |
| 86 m_layoutObject->imageChanged(m_cachedImage.get()); | 78 m_layoutObject->imageChanged(false, m_cachedImage.get()); |
| 87 } | 79 } |
| 88 } | 80 } |
| 89 | 81 |
| 90 void LayoutImageResource::resetAnimation() | 82 void LayoutImageResource::resetAnimation() |
| 91 { | 83 { |
| 92 ASSERT(m_layoutObject); | 84 ASSERT(m_layoutObject); |
| 93 | 85 |
| 94 if (!m_cachedImage) | 86 if (!m_cachedImage) |
| 95 return; | 87 return; |
| 96 | 88 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 127 return SVGImageForContainer::create(svgImage, containerSize, zoom, url); | 119 return SVGImageForContainer::create(svgImage, containerSize, zoom, url); |
| 128 } | 120 } |
| 129 | 121 |
| 130 bool LayoutImageResource::maybeAnimated() const | 122 bool LayoutImageResource::maybeAnimated() const |
| 131 { | 123 { |
| 132 Image* image = m_cachedImage ? m_cachedImage->image() : Image::nullImage(); | 124 Image* image = m_cachedImage ? m_cachedImage->image() : Image::nullImage(); |
| 133 return image->maybeAnimated(); | 125 return image->maybeAnimated(); |
| 134 } | 126 } |
| 135 | 127 |
| 136 } // namespace blink | 128 } // namespace blink |
| OLD | NEW |