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 * |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 | 127 |
128 LayoutImageResource* layoutImageResource(); | 128 LayoutImageResource* layoutImageResource(); |
129 void updateLayoutObject(); | 129 void updateLayoutObject(); |
130 | 130 |
131 void setImageWithoutConsideringPendingLoadEvent(ImageResource*); | 131 void setImageWithoutConsideringPendingLoadEvent(ImageResource*); |
132 void clearFailedLoadURL(); | 132 void clearFailedLoadURL(); |
133 void dispatchErrorEvent(); | 133 void dispatchErrorEvent(); |
134 void crossSiteOrCSPViolationOccurred(AtomicString); | 134 void crossSiteOrCSPViolationOccurred(AtomicString); |
135 void enqueueImageLoadingMicroTask(UpdateFromElementBehavior, ReferrerPolicy)
; | 135 void enqueueImageLoadingMicroTask(UpdateFromElementBehavior, ReferrerPolicy)
; |
136 | 136 |
137 void timerFired(TimerBase*); | |
138 | |
139 KURL imageSourceToKURL(AtomicString) const; | 137 KURL imageSourceToKURL(AtomicString) const; |
140 | 138 |
141 // Used to determine whether to immediately initiate the load | 139 // Used to determine whether to immediately initiate the load |
142 // or to schedule a microtask. | 140 // or to schedule a microtask. |
143 bool shouldLoadImmediately(const KURL&) const; | 141 bool shouldLoadImmediately(const KURL&) const; |
144 | 142 |
145 // For Oilpan, we must run dispose() as a prefinalizer and call | 143 // For Oilpan, we must run dispose() as a prefinalizer and call |
146 // m_image->removeClient(this) (and more.) Otherwise, the ImageResource can
invoke | 144 // m_image->removeClient(this) (and more.) Otherwise, the ImageResource can
invoke |
147 // didAddClient() for the ImageLoader that is about to die in the current | 145 // didAddClient() for the ImageLoader that is about to die in the current |
148 // lazy sweeping, and the didAddClient() can access on-heap objects that | 146 // lazy sweeping, and the didAddClient() can access on-heap objects that |
149 // have already been finalized in the current lazy sweeping. | 147 // have already been finalized in the current lazy sweeping. |
150 void dispose(); | 148 void dispose(); |
151 | 149 |
152 Member<Element> m_element; | 150 Member<Element> m_element; |
153 Member<ImageResource> m_image; | 151 Member<ImageResource> m_image; |
154 // FIXME: Oilpan: We might be able to remove this Persistent hack when | |
155 // ImageResourceClient is traceable. | |
156 GC_PLUGIN_IGNORE("http://crbug.com/383741") | |
157 Persistent<Element> m_keepAlive; | |
158 | 152 |
159 Timer<ImageLoader> m_derefElementTimer; | |
160 AtomicString m_failedLoadURL; | 153 AtomicString m_failedLoadURL; |
161 WeakPtr<Task> m_pendingTask; // owned by Microtask | 154 WeakPtr<Task> m_pendingTask; // owned by Microtask |
162 std::unique_ptr<IncrementLoadEventDelayCount> m_loadDelayCounter; | 155 std::unique_ptr<IncrementLoadEventDelayCount> m_loadDelayCounter; |
163 bool m_hasPendingLoadEvent : 1; | 156 bool m_hasPendingLoadEvent : 1; |
164 bool m_hasPendingErrorEvent : 1; | 157 bool m_hasPendingErrorEvent : 1; |
165 bool m_imageComplete : 1; | 158 bool m_imageComplete : 1; |
166 bool m_loadingImageDocument : 1; | 159 bool m_loadingImageDocument : 1; |
167 bool m_elementIsProtected : 1; | |
168 bool m_suppressErrorEvents : 1; | 160 bool m_suppressErrorEvents : 1; |
169 }; | 161 }; |
170 | 162 |
171 } // namespace blink | 163 } // namespace blink |
172 | 164 |
173 #endif | 165 #endif |
OLD | NEW |