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 * Copyright (C) 2004, 2009 Apple Inc. All rights reserved. | 4 * Copyright (C) 2004, 2009 Apple Inc. All rights reserved. |
5 * | 5 * |
6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
10 * | 10 * |
11 * This library is distributed in the hope that it will be useful, | 11 * This library is distributed in the hope that it will be useful, |
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 * Library General Public License for more details. | 14 * Library General Public License for more details. |
15 * | 15 * |
16 * You should have received a copy of the GNU Library General Public License | 16 * You should have received a copy of the GNU Library General Public License |
17 * along with this library; see the file COPYING.LIB. If not, write to | 17 * along with this library; see the file COPYING.LIB. If not, write to |
18 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 18 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
19 * Boston, MA 02110-1301, USA. | 19 * Boston, MA 02110-1301, USA. |
20 * | 20 * |
21 */ | 21 */ |
22 | 22 |
23 #ifndef ImageLoader_h | 23 #ifndef ImageLoader_h |
24 #define ImageLoader_h | 24 #define ImageLoader_h |
25 | 25 |
26 #include "core/CoreExport.h" | 26 #include "core/CoreExport.h" |
27 #include "core/fetch/ImageResource.h" | 27 #include "core/fetch/ImageResource.h" |
28 #include "core/fetch/ImageResourceClient.h" | 28 #include "core/fetch/ImageResourceClient.h" |
29 #include "core/fetch/ResourcePtr.h" | |
30 #include "platform/heap/Handle.h" | 29 #include "platform/heap/Handle.h" |
31 #include "wtf/HashSet.h" | 30 #include "wtf/HashSet.h" |
32 #include "wtf/WeakPtr.h" | 31 #include "wtf/WeakPtr.h" |
33 #include "wtf/text/AtomicString.h" | 32 #include "wtf/text/AtomicString.h" |
34 | 33 |
35 namespace blink { | 34 namespace blink { |
36 | 35 |
37 class IncrementLoadEventDelayCount; | 36 class IncrementLoadEventDelayCount; |
38 class FetchRequest; | 37 class FetchRequest; |
39 class Document; | 38 class Document; |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 // didAddClient() for the ImageLoader that is about to die in the current | 161 // didAddClient() for the ImageLoader that is about to die in the current |
163 // lazy sweeping, and the didAddClient() can access on-heap objects that | 162 // lazy sweeping, and the didAddClient() can access on-heap objects that |
164 // have already been finalized in the current lazy sweeping. | 163 // have already been finalized in the current lazy sweeping. |
165 void dispose(); | 164 void dispose(); |
166 | 165 |
167 #if ENABLE(OILPAN) | 166 #if ENABLE(OILPAN) |
168 void clearWeakMembers(Visitor*); | 167 void clearWeakMembers(Visitor*); |
169 #endif | 168 #endif |
170 | 169 |
171 RawPtrWillBeMember<Element> m_element; | 170 RawPtrWillBeMember<Element> m_element; |
172 ResourcePtr<ImageResource> m_image; | 171 RefPtrWillBeMember<ImageResource> m_image; |
173 // FIXME: Oilpan: We might be able to remove this Persistent hack when | 172 // FIXME: Oilpan: We might be able to remove this Persistent hack when |
174 // ImageResourceClient is traceable. | 173 // ImageResourceClient is traceable. |
175 GC_PLUGIN_IGNORE("http://crbug.com/383741") | 174 GC_PLUGIN_IGNORE("http://crbug.com/383741") |
176 RefPtrWillBePersistent<Element> m_keepAlive; | 175 RefPtrWillBePersistent<Element> m_keepAlive; |
177 | 176 |
178 // Oilpan: the client references are weak, and managed as such via clearWeak
Members(); | 177 // Oilpan: the client references are weak, and managed as such via clearWeak
Members(); |
179 HashSet<RawPtrWillBeUntracedMember<ImageLoaderClient>> m_clients; | 178 HashSet<RawPtrWillBeUntracedMember<ImageLoaderClient>> m_clients; |
180 Timer<ImageLoader> m_derefElementTimer; | 179 Timer<ImageLoader> m_derefElementTimer; |
181 AtomicString m_failedLoadURL; | 180 AtomicString m_failedLoadURL; |
182 WeakPtr<Task> m_pendingTask; // owned by Microtask | 181 WeakPtr<Task> m_pendingTask; // owned by Microtask |
183 OwnPtr<IncrementLoadEventDelayCount> m_loadDelayCounter; | 182 OwnPtr<IncrementLoadEventDelayCount> m_loadDelayCounter; |
184 bool m_hasPendingLoadEvent : 1; | 183 bool m_hasPendingLoadEvent : 1; |
185 bool m_hasPendingErrorEvent : 1; | 184 bool m_hasPendingErrorEvent : 1; |
186 bool m_imageComplete : 1; | 185 bool m_imageComplete : 1; |
187 bool m_loadingImageDocument : 1; | 186 bool m_loadingImageDocument : 1; |
188 bool m_elementIsProtected : 1; | 187 bool m_elementIsProtected : 1; |
189 bool m_suppressErrorEvents : 1; | 188 bool m_suppressErrorEvents : 1; |
190 unsigned m_highPriorityClientCount; | 189 unsigned m_highPriorityClientCount; |
191 }; | 190 }; |
192 | 191 |
193 } // namespace blink | 192 } // namespace blink |
194 | 193 |
195 #endif | 194 #endif |
OLD | NEW |