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(m_cachedImage.get()); |
85 } else { | 77 } else { |
86 m_layoutObject->imageChanged(m_cachedImage.get()); | 78 m_layoutObject->imageChanged(m_cachedImage.get()); |
87 } | 79 } |
88 } | 80 } |
89 | 81 |
90 void LayoutImageResource::resetAnimation() | 82 void LayoutImageResource::resetAnimation() |
91 { | 83 { |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after 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->getImage() : Image::nullImage(
); | 124 Image* image = m_cachedImage ? m_cachedImage->getImage() : Image::nullImage(
); |
133 return image->maybeAnimated(); | 125 return image->maybeAnimated(); |
134 } | 126 } |
135 | 127 |
136 } // namespace blink | 128 } // namespace blink |
OLD | NEW |